我使用此代码将3个部分透明的图像重叠为1,也部分透明。
$x=3843;
$y=3402;
$final_img = imagecreatetruecolor($x, $y); // where x and y are the dimensions of the final image
imagesavealpha($final_img, true);
$trans_colour = imagecolorallocatealpha($final_img, 0, 0, 0, 127);
imagefill($final_img, 0, 0, $trans_colour);
$image_1 = imagecreatefrompng('1.png');
$image_2 = imagecreatefrompng('3.png');
$image_3 = imagecreatefrompng('6.png');
imagealphablending($final_img, true);
imagesavealpha($final_img, true);
imagecopy($final_img, $image_1, 0, 0, 0, 0, $x, $y);
imagecopy($final_img, $image_2, 0, 0, 0, 0, $x, $y);
imagecopy($final_img, $image_3, 0, 0, 0, 0, $x, $y);
imagepng($final_img, 'final_img.png');
每张图片在重叠前都已压缩,大小为100KB。重叠并保存后,final_img.png
的大小为1,1MB。很大的区别。如何在不再压缩图像的额外步骤的情况下保留最终图像的压缩效果?我应该使用哪些方法或库?