web-dev-qa-db-ja.com

これは最良のPHP品質を損なうことなく画像サイズを縮小する方法です

画像ベースのWebサイトを開発しようとしています。画像の種類と圧縮技術について本当に混乱しています。画像サイズを圧縮する最良の方法を教えてください。

31
user1431849

jpegに行きます。読み取り この投稿 画像サイズの縮小に関して、テクニックを決定した後、 ImageMagick を使用します

お役に立てれば

6

コーディング自体を使用してサイズを小さくしたい場合は、phpでこのコードに従うことができます。

_<?php 
function compress($source, $destination, $quality) {

    $info = getimagesize($source);

    if ($info['mime'] == 'image/jpeg') 
        $image = imagecreatefromjpeg($source);

    elseif ($info['mime'] == 'image/gif') 
        $image = imagecreatefromgif($source);

    elseif ($info['mime'] == 'image/png') 
        $image = imagecreatefrompng($source);

    imagejpeg($image, $destination, $quality);

    return $destination;
}

$source_img = 'source.jpg';
$destination_img = 'destination .jpg';

$d = compress($source_img, $destination_img, 90);
?>
_

_$d = compress($source_img, $destination_img, 90);
_

これは、ソース画像(_$source_img_)、宛先画像(_$destination_img_)、および圧縮に要する画像の品質(90など)を渡す単なるphp関数です。

_$info = getimagesize($source);
_

getimagesize()関数は、特定の画像ファイルのサイズを検索し、ファイルの種類とともに寸法を返すために使用されます。

79
Vengat Owen

サイズを変更してからimagejpeg()を使用できます

Imagejpeg()の品質として100を渡さないでください。90を超えるものは一般に過剰であり、より大きなJPEGを取得します。サムネイルについては、75を試して、品質/サイズのトレードオフが許容されるまで下に向かって作業してください。

imagejpeg($tn, $save, 75);
4
maxhud

まあ私はあなたのために何か面白いものがあると思う... https://github.com/whizzzkid/phpimageresize 。私はまったく同じ目的でそれを書きました。高度にカスタマイズ可能で、素晴らしい方法でそれを行います。

3
whizzzkid