Autor | Zpráva | ||
---|---|---|---|
jannie Profil * |
#1 · Zasláno: 4. 7. 2011, 14:56:22
Ahoj všichni.
Potřebuji pomoci s nahráváním obrázků. Kod pro zpracování uploadu vypadá takto: Cílem je z nahraného obrázku udělat miniaturu. $image = imagecreatefromjpeg($_FILES['uploadedfile']['tmp_name']); if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $cesta)) { $thumbWidth = 250; $thumbHeight = 110; $thumb = imagecreatetruecolor($thumbWidth,$thumbHeight); imagecopyresampled($thumb,$image,0,0,0,0, $thumbWidth,$thumbHeight,$width,$height); imagejpeg($thumb,$cesta,100); imagedestroy($image); imagedestroy($thumb); Vždy ale při prvním nahrání je obrázek celý černý. Pokud ho nahraji znovu, buď se napodruhé nahraje v pořádku a nebo také zůstane kus černý. Neví někdo zkušenější co s tím? Děkuji |
||
DJ Miky Profil |
#2 · Zasláno: 4. 7. 2011, 16:30:18
To, že miniaturou přepisuješ původní obrázek (obojí ukládáš do $cesta), je zamýšlené chování?
|
||
Alphard Profil |
#3 · Zasláno: 4. 7. 2011, 17:51:42
$width, $height berete kde?
|
||
Časová prodleva: 4 dny
|
|||
jannie Profil * |
#4 · Zasláno: 8. 7. 2011, 11:44:39
Půjdu na to naknec úplně jinak. Já vlastně potřebuji jen miniaturu, velký obrázek mohu klidně zahodit.
Ale není mi uplně jasné z manuálu, jaký je rozdíl mezi funkcí imagejpeg(); a imagecreatefromjpeg(); ? |
||
Alphard Profil |
#5 · Zasláno: 8. 7. 2011, 12:13:52
imagejpeg() vytváří obrázek jakou soubor daného typu (png, jpeg, ...) z určité struktury (prakticky myslím dekomprimovaná bitmapa), se kterou umí pracovat knihovna GD. imagecreatefromjpeg() naopak tuto strukturu vytváří ze souboru.
Takže postup je imagecreatefromjpeg(), další funkce, které upravují obrázek, na konec imagejpeg(). Zkopírujte si funkce z http://php.vrana.cz/zmensovani-obrazku.php, na konci je příklad použití $filename = 'vase_jmeno.jpeg'; list($width, $height) = image_shrink_size($_FILES["uploadedfile"]["tmp_name"], 250, 110); image_resize($_FILES["uploadedfile"]["tmp_name"], $filename, $width, $height); Rozdíl oproti vaší funkci je, že tato zachová poměr stran. Na druhou stranu, má mnoho výhod, např. si sama zjistí, jakého typu je obrázek. Dávat u jpeg kompresní kvalitu 100 je neužitečné. Datová velikost je podstatně věřší než např. u 85, ale rozdíl nepoznáte. |
||
jannie Profil * |
#6 · Zasláno: 8. 7. 2011, 12:23:59
Díky moc.
|
||
jannie Profil * |
#7 · Zasláno: 8. 7. 2011, 12:57:31
ještě se zeptám...jde nějakou funkcí obrázek fyzicky smazat? Nikoliv jen odstranit z paměti, ale přímo ze serveru?
|
||
jannie Profil * |
#8 · Zasláno: 8. 7. 2011, 12:58:20
Našla jsem unlink() , zkusíme
|
||
Časová prodleva: 13 let
|
0