Черный фон при использовании imagecopy PHP
Нужно объединить изображения из массива в 2 колонки а дальше вниз сколько их там будет.
вроде все сделал, но блин при склеивании получается черный фон. Методом тыка установил что фон добавляет imagecopy.
Как можно это победить?
//определяем максимальные размеры ширины и высоты для составного фото
$imgWidthMax = 0;
$imgHeightMax = 0;
foreach ($imageArr as $imgSize) {
$src = imagecreatefrompng($imgSize);
$cropped2 = imagecropauto($src, IMG_CROP_WHITE);
if ($cropped2 !== false) {
imagedestroy($src);
$src = $cropped2;
}
imagepng($src, $dir . 'test.png');
$size = getimagesize($dir . 'test.png');
if ($size[0] > $imgWidthMax) {
$imgWidthMax = $size[0];
}
if ($size[1] > $imgHeightMax) {
$imgHeightMax = $size[1];
}
}
//нужная ширина и длина изображения
$imgWidth = $imgWidthMax;
$imgHeight = $imgHeightMax;
//колонки и ряды в скринлисте (кол-во images должно быть >= $rows*$cols)
$rows = 2;
$cols = ceil(count($imageArr) / 2);
//итоговая ширина-длина скринлиста
$bgWidth = $imgWidth * $cols;
$bgHeight = $imgHeight * $rows;
//создаём пустой скринлист нужного размера
$im = imagecreatetruecolor($bgWidth, $bgHeight);
//делаем подложку белой
$white = imagecolorallocate($im, 255, 255, 255);
imagefill($im, 0, 0, $white);
$f = 0; //первое изображение в images
//последовательно обрабатываем каждый ряд скринлиста, вставляя в нужном месте изображение
for ($j = 0; $j < $cols; $j++) {
for ($i = 0; $i < $rows; $i++) {
$src = imagecreatefrompng($imageArr[$f]);
//Обрезаем у каждого изображения белые края
$cropped2 = imagecropauto($src, IMG_CROP_WHITE);
if ($cropped2 !== false) { // в случае возврата нового объекта изображения
imagedestroy($src); // мы уничтожаем исходное изображение
$src = $cropped2; // и назначаем обрезанное изображение в $im
}
imagecopy($im, $src, $j * $imgWidth, $i * $imgHeight, 0, 0, $imgWidth, $imgHeight);
$f++; //следующее изображение в images
}
}
imagepng($im, $dir . $numModel . '.png');
imagedestroy($im);
imagedestroy($src);