Autor Zpráva
jannie
Profil *
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
To, že miniaturou přepisuješ původní obrázek (obojí ukládáš do $cesta), je zamýšlené chování?
Alphard
Profil
$width, $height berete kde?
jannie
Profil *
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
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 *
Díky moc.
jannie
Profil *
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 *
Našla jsem unlink() , zkusíme

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:

0