Autor Zpráva
Ejcej
Profil *
Dobrý den.

Nejsem moc znalý PHP ale potřebuji jednoduchou funkci. Mám obrázek (můžu ho mít jak jpg tak png) kde je bílé pozadí, potřebuji ho přes PHP změnit na transparentní. Tři hodiny testuji různé návody a výsledek se ne a ne dostavit.
Kde dělám chybu.

<?php
$input_file = "test.png";
$output_file = "test.jpg";

$input = imagecreatefrompng($input_file);
list($width, $height) = getimagesize($input_file);
$output = imagecreatetruecolor($width, $height);
$white = imagecolorallocate($output,  255, 255, 255);
imagefilledrectangle($output, 0, 0, $width, $height, $white);
imagecopy($output, $input, 0, 0, 0, 0, $width, $height);
imagejpeg($output, $output_file); ?>

Toto jsem použil za vzor ale výsledek není průhledný :(.

Co je tam špatně? Děkuji zaodpověď.


Ejcej:

Doplnění. Originál kód jsem upravil. Ale výsledkem je stejný obrázek jako předchozí.
<?php

$input_file = "bila.png";
$output_file = "test.jpg";

$input = imagecreatefrompng($input_file);
list($width, $height) = getimagesize($input_file);
$output = imagecreatetruecolor($width, $height);
$transparent = imagecolorallocatealpha($image, 255, 255, 255, 127);
imagefilledrectangle($output, 0, 0, $width, $height, $transparent);
imagecopy($output, $input, 0, 0, 0, 0, $width, $height);
imagejpeg($output, $output_file);

?>
juriad
Profil
prvních 8 řádech zachovej, zbytek nahráď tímto:
imagecolortransparent($output, $white);
imagealphablending($output, false);
imagecopy($output, $input, 0, 0, 0, 0, $width, $height); // stejne
imagepng($img, "test_out.png"); // jpg neumi byt pruhledne
Ejcej
Profil *
Děkuji moc za pomoc, funguje perfektně. Ještě jednu díky.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: