差異似乎相當大;當幾年前我做了一些測試時,IM的文件大小約爲GD的5倍。 看到您使用的實際代碼會很有趣。
我在此刻的工作,但有照片調整爲592 X 592以及文件大小爲50.3KB我知道這是不是大小相同的你,但它被保存在質量100
您可以運行這一點,看看IM說對輸出文件: 轉換圖像-verbose -identify
編輯:
你必須做一些錯事,但我剛剛運行測試和結果如下 - 出於某種原因,縮略圖大小與調整大小相同!也許是一個錯誤。
原始文件大小:4700 X 3178 2.31MB
調整大小尺寸= 1021 X 680 186KB
-thumbnail尺寸= 1021 X 680 186KB
GD尺寸= 1024×682 100KB
$original = 'IMG_4979_1.CR2';
// Convert to jpg as GD will not work with CR2 files
exec("convert $original image.jpg");
$image = "image.jpg";
exec("convert $image -resize 1024x680 output1.jpg");
exec("convert $image -thumbnail 1024x680 -strip output2.jpg");
// Set the path to the image to resize
$input_image = 'image.jpg';
// Get the size of the original image into an array
$size = getimagesize($input_image);
// Set the new width of the image
$thumb_width = "1024";
// Calculate the height of the new image to keep the aspect ratio
$thumb_height = (int)(($thumb_width/$size[0])*$size[1]);
// Create a new true color image in the memory
$thumbnail = ImageCreateTrueColor($thumb_width, $thumb_height);
// Create a new image from file
$src_img = ImageCreateFromJPEG($input_image);
// Create the resized image
ImageCopyResampled($thumbnail, $src_img, 0, 0, 0, 0, $thumb_width, $thumb_height, $size[0], $size[1]);
// Save the image as resized.jpg
ImageJPEG($thumbnail, "output3.jpg");
// Clear the memory of the tempory image
ImageDestroy($thumbnail);
由於JPEG算法是標準化的,唯一的差異可能是存儲類型:逐行掃描/隔行掃描。如果您完全確定,所有其他設置(質量!)都是平等的。 – jimpic
嗨,我試圖做$ image-> setInterlaceScheme(Imagick :: INTERLACE_JPEG); ,它縮小了40KB左右,但仍創建的圖像爲711KB,與GD庫創建的圖像相比,它看起來相當大。 – Chetan