2016-07-17 17 views
0

我使用PHP來調整大小和裁剪圖像。然而,裁剪後的圖像文件比原始文件大(在某些情況下要大得多)。我甚至嘗試不裁剪(複製原始圖像),但所得到的尺寸比原始圖像多。php複製圖像增加文件大小

$ImageName = '/IMAGES/testImage.jpg'; 

//Download the Image File 

$base_url = 'https://image.jimcdn.com/app/cms/image/transf/none/path/sa6549607c78f5c11/image/ia62ed3191fcc424f/version/1457278719/athens-european-best-destinations.jpg'; 
$image_size = getimagesize($base_url); 
$image_width = $image_size[0]; 
$image_height = $image_size[1]; 

$src_image = imagecreatefromjpeg($base_url); 

//Copy Image Object To File 
imagejpeg($src_image, $ImageName, 100); 

回答

0

技術上,轉換質量率不源自 JPEG數據,它只是告訴轉換器的大小和質量之間做出 其權衡。

某些轉換器將其存儲在JPEG標頭的EXIF數據中,但是,如果仍然存在,可以將其與exif_read_data一起使用, 並查看是否返回壓縮信息。

Source

0

儘量減少質量和設置80例。質量仍然可以,甚至高於默認質量,如果你什麼都不設置,質量應該是75。

所以,把這樣的:

imagejpeg($src_image, $ImageName, 80); 
+0

我覺得這不是OP的想法。他想問一下原始圖像有什麼不同的100%質量。 –

0

我認爲你可以在這種情況下,如果你想保持像原始圖像的每個像素試試這個ImageCopyResampled。它比imagejpeg更慢但更好。

關於使用imagejpeg的圖像質量,quaility屬性是指您要對保存或創建的輸出圖像應用多少jpeg壓縮。

0%質量意味着最大壓縮率和100%質量意味着最小壓縮率。

您應用的壓縮越多,輸出文件大小將相對於原始未壓縮文件大小越小。

0

就排除圖像質量參數:

imagejpeg($src_image, $ImageName); 

GD會自動創建一個較小的圖像爲您