3

我有一个页面,仅用于打印,其中的一些图像是通过我拥有的脚本上传的。它似乎总是将图像降低到 72 dpi,不管我设置什么imagejpeg()imagepng()质量。

我在 git hub 上使用过我自己的个人脚本和这个

https://github.com/maxim/smart_resize_image

我希望获得一些关于将 dpi 保留为原始 300dpi 的指导。

这是我自己的个人脚本

if (!empty($_FILES['image']['name'])) //checking if file upload box contains a value
    {   
        $saveDirectory = 'pics/';           //name of folder to upload to
        $tempName = $_FILES['image']['tmp_name'];   //getting the temp name on server
        $fileName1 = $_FILES['image']['name'];      //getting file name on users computer

        $count = 1;
        do{
        $location = $saveDirectory . $_GET['section'] . $count . $fileName1;
        $count++; 
        }while(is_file($location));

        if (move_uploaded_file($tempName, $location))   //Moves the temp file on server
            {                                                           //to directory with real name
                $image = $location;

                // Get new sizes
                list($width, $height, $type) = getimagesize($image);    //gets information about new server image

                $framewidth = 932;
                $frameheight = 354;

                $realwidth = $width;    //setting original width and height
                $realheight = $height;

                // Load
                $file1new = imagecreatetruecolor($framewidth, $frameheight);    //creates all black image with target w/h

                if($type == 2){
                    $source = imagecreatefromjpeg($image);
                    imagecopyresampled($file1new, $source , 0, 0, 0, 0, $framewidth, $frameheight, $realwidth, $realheight);
                }
                elseif($type == 3){
                    $source = imagecreatefrompng($image);    
                    imagecopyresampled($file1new, $source , 0, 0, 0, 0, $framewidth, $frameheight, $realwidth, $realheight);
                }
                else{
                    echo "Wrong file type";
                }

                if($type == 2){

                    //creates jpeg image from file1new for file1 (also retains quality)
                    imagejpeg($file1new, $image,100);
                    //frees space
                    imagedestroy($file1new);
                }
                elseif($type == 3){

                    //creates png image from file1new for file1 (also retains quality)
                    imagepng($file1new, $image,10);
                    //frees space
                    imagedestroy($file1new);
                }
                else{
                    echo "Wrong file type";
                } 
            } 
            else 
            {
                echo '<h1> There was an error while uploading the file.</h1>';
            }
        }
}

编辑:即使 dpi 不是答案,因为我看到 jpgs 具体不会保留该信息。我需要一些方法来保持这些图像非常清晰和清晰。

4

2 回答 2

3

如果生成图像并使用浏览器打开,浏览器会在渲染前将其缩小到 72dpi。如果您使用 gimp/phptoshop/whatever image editor 打开,它应该保持相同的 dpi 质量。虽然在屏幕上,但没有区别,因为您的屏幕是 72 dpi。

没有在新的浏览器上测试过,但在 netscape 和第一个 firefox 版本中就是这样,我认为从那以后它没有改变。

于 2012-05-03T23:23:38.790 回答
0

此处发布的功能lorezyra (at) lorezyra (dot) comhttp ://www.php.net/manual/es/function.imagejpeg.php#85712可能会成功。

于 2012-05-03T22:39:39.183 回答