PHP GD дает изображение на черном фоне - PullRequest
0 голосов
/ 28 июня 2019

Поэтому я пытаюсь использовать библиотеку php gd, чтобы обрезать края моего изображения, но у меня возникает проблема, когда фон становится черным при каждом сохранении изображения.

Я уже пробовал это:

$background = imagecolorallocate($cropped, 0, 0, 0);
imagecolortransparent($cropped, $background);
imagealphablending($cropped, false);
imagesavealpha($cropped, true);

и он отлично работает с исходным изображением, однако, когда я пробую этот код на обрезанном изображении, ничего не происходит.

Вот полный код:

// Handle image manipulation.
$testImage = imagecreatefrompng($filePath);
imagealphablending($testImage, false);
imagesavealpha($testImage, true);

$cropped = imagecropauto($testImage, IMG_CROP_SIDES);
$background = imagecolorallocate($cropped, 0, 0, 0);
imagecolortransparent($cropped, $background);
imagealphablending($cropped, false);
imagesavealpha($cropped, true);

//$scaled = imagescale($cropped, 512, 512);

imagepng($cropped, $newFilePath);

Всякий раз, когда я менял переменную изображения на $ testImage в функции imagepng, мое изображение сохранялось с прозрачным фоном, но стороны не обрезались, как хотелось бы, однако, если я изменяю переменную на $ cropped, фон становится черным. IMG_CROP_SIDES - единственный режим, который действительно работал для обрезки сторон моего изображения.

...