Autor | Zpráva | ||
---|---|---|---|
petr Profil * |
#1 · Zasláno: 4. 1. 2017, 13:59:51
Ahoj, řeším upload obrázků na server, kde uživatel může nahrát obrázky s příponou .jpg, .gif a .png a na serveru se uloží jako .png. Na server obrázek putuje jako Data URL. Chtěl bych také u .png a .gif zachovat průhlednost.
Narazil jsem na tenhle článek a zprovoznil si to: function dataurl_decode_file($dataurl) { $data = preg_replace("/data:.*;base64,/", "", $dataurl); $data = str_replace(' ', '+', $data); $data = base64_decode($data); return $data; } $image = imagecreatefromstring(dataurl_decode_file($_POST["image_dataurl"])); $width = imagesx($image); $height = imagesy($image); $newimage = imagecreate($width, $height); $color = imagecolorallocate($newimage, 255, 255, 255); imagefill($newimage, 0, 0, $color); if($transparent) { imagecolortransparent($newimage, $color); } imagecopyresampled($newimage, $image, 0, 0, 0, 0, $width, $height, $width, $height); imagepng($newimage, "uploads/obrazek.png"); Když se pokusím nahrát tenhle obrázek: na server se uloží tohle: Nevíte, čím by to mohlo být a jak to opravit? |
||
Časová prodleva: 5 dní
|
|||
Davex Profil |
#2 · Zasláno: 10. 1. 2017, 00:23:42
petr:
To bude asi způsobeno velkým počtem barev v obrázku, které se nevejdou do palety 256 barev. imagecreate -> imagecreatetruecolor
|
||
Časová prodleva: 7 let
|
0