Этот вопрос уже задавался, но это не решает мою проблему.
Я хочу, чтобы combine
3 JPG
изображения располагались друг над другом, используя PHP
.
Я пробовал этов PNG
это нормально работает.Но когда я использовал JPG
изображение, я получил черный экран, подобный этому
Это мой код:
<?php
ini_set('max_execution_time', 300);
function get_file($file, $from) {
if (!file_exists(__DIR__ . "/" . $file)) { file_put_contents(__DIR__ . "/" . $file, file_get_contents($from)); }
}
get_file("background-layer-111.jpg", "https://img.youtube.com/vi/CQElIZzzlpc/hqdefault.jpg");
get_file("icon-layer-222.jpg", "https://img.youtube.com/vi/OK_JCtrrv-c&t=1732s/hqdefault.jpg");
get_file("stars-layer-333.jpg", "https://img.youtube.com/vi/1vYMqjNafww/hqdefault.jpg");
$bgFile = __DIR__ . "/background-layer-111.jpg";
$imageFile = __DIR__ . "/icon-layer-222.jpg";
$watermarkFile = __DIR__ . "/stars-layer-333.jpg";
$x = $y = 76;
$final_img = imagecreatetruecolor($x, $y);
$image_1 = imagecreatefromjpeg($bgFile);
$image_2 = imagecreatefromjpeg($imageFile);
$image_3 = imagecreatefromjpeg($watermarkFile);
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);
ob_start();
imagejpeg($final_img);
$watermarkedImg = ob_get_contents();
ob_end_clean();
header('Content-Type: image/jpeg');
echo $watermarkedImg;
Примечание. Мой код работает только для PNG
, я хочу работать со всеми форматами изображений, такими как JPG
.Я передаю этот URL Ссылка