как обрезать изображение в php?
есть php код, который генерирует картинку.
Картинка получается из 1-й полупрозрачной картинки (бело-синяя картинка) , которая накладывается на фон(церковь).
Всё бы и ничего, НО есть проблема! картинка с церковью слишком большая, а все мои попытки добавить imagecrop и задать координаты ведут лишь к ошибкам.
Если проще, то сейчас картинка выглядет так (слева), а должно получиться так (справа) т.е. обрезаются лишние края, которые больше чем сине-белая полупрозрачная картинка.

вот сам код:
$img = imagecreatefrompng("res/bg.png");
$img_cover2 = imagecreatefrompng("res/im2.png");
$quality = 90;
$temp = "";
$img_cover = imagecreatetruecolor(1240, 750);
/*-----------------------------------------------------------------
| Накладываем полупрозрачный фон
------------------------------------------------------------------*/
imagealphablending($img, true);
imagesavealpha($img, true);
imagealphablending($img_cover2, true);
imagesavealpha($img_cover, true);
imagecopy($img, $img_cover2, 0, 0, 0, 0, imagesx($img_cover), imagesy($img_cover));
header('Content-Type: image/png');
# Save Image
$im=imagepng($img);
imagedestroy($img);
$img = imagecreate(800, 600);
помогите пожалуйста, уже пятые сутки мучаюсь...(((( плакать хочется
Ответы (1 шт):
в целом решение видится таким. Вы загружаете две картинки, фон и голубой оверлей
$bg = imagecreatefrompng(...);
$overlay = ....;
далее сразу обрезаете фон по размеру оверлея.
$res = imagecrop($bg, [
'x' => 0,
'y' => 0,
'width' => imagesx($overlay),
'height' => imagesy($overlay)
]);
потом устаналиваете все ваши прозрачности и на полученное изображенеи накладываете фон
imagecopy($res, $overlay, 0,0, 0, 0, imagesx($ovelay), imagesy($overlay));