Zadejte hledaný výraz...

Jde uložit obrázek pomocí GD knihovny do formátu png8?

Marek Maťovka
verified
rating uzivatele
(30 hodnocení)
25. 10. 2007 13:56:38
Potřebuji nějak pomocí php (na serveru je GD knihovna 2.0.28) zmenšit obrázek a uložit ho jako png8 (256 barev). Zmenšit obrázek není problém, ale uložil se vždy jako png24 a tak má mnohem větší datovou velikost, což je nežádoucí.
Nevím jestli to vůbec jde nějak vyřešit, na serveru totiž nemám jinou grafickou knihovnu než GD.
25. 10. 2007 13:56:38
https://webtrh.cz/diskuse/jde-ulozit-obrazek-pomoci-gd-knihovny-do-formatu-png8/#reply25362
lukaspulda
verified
rating uzivatele
(24 hodnocení)
25. 10. 2007 14:01:36
z php.net
I had a problem with PNG files.
My source files were PNG-8 files and i wanted to add some drawings to the Image with alpha blending, but it was not possible only by doing imagecolorallocatealpha() and imagefilledellipse() for example.
I noticed that it was only working for PNG-24 images, but i don't want to use them, because they are to big for my website, but PNG-8 files would be much greater.
My result is that the image has to be converted to PNG-24 after loading and converted back to PNG-8 before saving/output.
This is the script:
// Load Image and get it's size
$size = getimagesize("png8image.png");
$im = imagecreatefrompng("png8image.png");
// Convert the Image to PNG-24
$im_tc = imagecreatetruecolor($size,$size);
imagecopy($im_tc,$im,0,0,0,0,$size,$size);
imagedestroy($im);
//Now do what ever you want, all alpha-operation do work
$color = imagecolorallocatealpha ($im_tc,255,255,255,75);
imagefilledellipse ($im_tc,10,10,6,4,$color);
//And now convert it back to PNG-8
$im_result = imagecreate($size,$size);
imagecopy($im_result,$im_tc,0,0,0,0,$size,$size);
imagedestroy($im_tc);
//And save it
imagepng($im_result,"png8image.png");
?>
nepomůže ti to?
25. 10. 2007 14:01:36
https://webtrh.cz/diskuse/jde-ulozit-obrazek-pomoci-gd-knihovny-do-formatu-png8/#reply25361
Marek Maťovka
verified
rating uzivatele
(30 hodnocení)
25. 10. 2007 17:57:05
Jestli jsem to dobře pochopil, tak tento skript obrázek uloží na FTP jako png24 a před výpisem stránky ho převede zpět do png8, což není moc efektivní řešení.
25. 10. 2007 17:57:05
https://webtrh.cz/diskuse/jde-ulozit-obrazek-pomoci-gd-knihovny-do-formatu-png8/#reply25360
lukaspulda
verified
rating uzivatele
(24 hodnocení)
25. 10. 2007 23:19:13
Ne .. ten obrazek se uklada jen jednou prikazem
imagepng($im_result,"png8image.png"); ty prevody -> 24 -> 8 probihaj vnitrne podivej se na php.net
25. 10. 2007 23:19:13
https://webtrh.cz/diskuse/jde-ulozit-obrazek-pomoci-gd-knihovny-do-formatu-png8/#reply25359
Ivan L.
verified
rating uzivatele
26. 10. 2007 08:16:44
Napsal PCMark;17698
Jestli jsem to dobře pochopil, tak tento skript obrázek uloží na FTP jako png24 a před výpisem stránky ho převede zpět do png8, což není moc efektivní řešení.
To jsi pochopil špatně :) V tom výše zmíněném příkladě má dotyčný obrázek v PNG8, ale potřebuje tam pracovat s alfakanály (průhlednost) což PNG8 asi neumí. Proto si jej převede do PNG24, zpracuje a pak zase převede zpět do PNG8. Pro tebe je z toho příkladu zajímavé v čem je rozdíl mezi vytvořením PNG8 a PNG24. Když si to pořádně přečteš tak zjistíš, že to není rozdíl při uložení, ale při otevření obrázku.
PNG24: imagecreatetruecolor()
PNG8: imagecreate()
26. 10. 2007 08:16:44
https://webtrh.cz/diskuse/jde-ulozit-obrazek-pomoci-gd-knihovny-do-formatu-png8/#reply25358
Pro odpověď se přihlašte.
Přihlásit