3

印刷専用のページがあり、そこにある画像の一部は、私が持っているスクリプトを介してアップロードされています。imagejpeg()私が設定したものと品質に関係なく、常に画像を72 dpiに縮小しているようimagepng()です。

私は自分の個人的なスクリプトとこれをgitハブで使用しました

https://github.com/maxim/smart_resize_image

元の 300 dpi で dpi を維持するための少しのガイダンスを期待していました。

ここに私自身の個人的なスクリプトがあります

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 が答えでなくても、具体的には jpg がその情報を保持していないことがわかります。これらの画像を非常に鮮明で鮮明に保つ方法が必要です。

4

2 に答える 2

3

画像を生成してブラウザで開くと、ブラウザはレンダリング前に画像を72dpiに減らします。gimp / phptoshop /その他の画像エディタで開くと、同じdpi品質が維持されます。画面上でも72dpiなので違いはありません。

新しいブラウザではテストされていませんが、netscapeと最初のFirefoxバージョンではこのようになっており、それ以降は変更されていないと思います。

于 2012-05-03T23:23:38.790 に答える
0

ここに投稿された関数lorezyra (at) lorezyra (dot) com: http://www.php.net/manual/es/function.imagejpeg.php#85712がうまくいくかもしれません。

于 2012-05-03T22:39:39.183 に答える