Я использую этот код, чтобы перекрыть 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');
Каждое изображение было сжато до наложения и имеет размер 100 КБ. После наложения и сохранения final_img.png
, имеет размер 1,1MB. Большая разница. Как можно сохранить сжатие конечного изображения без дополнительного шага сжатия изображения снова? Какие методы или библиотеки я должен использовать?
Задача ещё не решена.
Других решений пока нет …