Tenho tentado cortar algumas imagens usando PHP e convertê-las para uma string base 64... Encontrei uma maneira que funciona, mas está preenchendo meu fundo transparente com preto!
Alguém sabe uma maneira melhor de fazer isso? Ou talvez alguma maneira de evitar que o fundo transparente do meu pngs
seja preenchido durante o processo. Obrigado antecipadamente!
$image = imagecreatefrompng('/path to my image');
$cropped_image = imagecrop($image, [
'x' => $temp->asset->offset->x,
'y' => $temp->asset->offset->y,
'width' => $temp->asset->width,
'height' => $temp->asset->height
]);
$stream = fopen('php://memory','r+');
imagepng($cropped_image, $stream);
rewind($stream);
$temp->asset->src = 'data:image/png;base64,'.base64_encode(stream_get_contents($stream));
imagedestroy($image);
Para definir se a
GdImage
deve preservar as informações do canal alfa (transparência) ao salvar, você pode usarimagesavealpha
. No seu caso, você pode adicionar o seguinte antes da chamada paraimagepng
:alterando seu exemplo para: