Jak na náhled obrázku?
14 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Chtěl bych při uploadu hned s nahrávaným obrázkem vytvořit i jeho náhled. ALE pokud použiju skripty končící funkcí např. ImageGIF nebo ImageJPEG píše to Call to undefined function. Tak jsem přidal řádek k otevření DLL knihovny pro práci s obrázky, ale ta je pro změnu zakázána - dl(); Poraďte pls třeba i nějakou funkci, která vytvoří náhled obrázku pouze do vyrovnávací paměti automaticky, jestli něco takovýho existuje. Díky za odpověď...
-
Takto zmenšíš a zároveň uložíš obrázek ve formátu JPEG: $in_name = $absolutniCesta."obrazky_full/".$nazevObrazku; $out_name = $absolutniCesta."obrazky_small/".$novyNazevObrazku; $in_size = getimagesize($in_name); $out_size[0] = 60; // sirka $out_size[1] = 45; // vyska $in = ImageCreateFromJpeg($in_name); $out = ImageCreateTrueColor($out_size[0],$out_size[1]); ImageCopyResampled($out,$in,0,0,0,0,$out_size[0],$out_size[1],$in_size[0],$in_size[1]); ImageJpeg($out,$out_name,100); ImageDestroy($in); ImageDestroy($out); Hodnoty proměnných si snad doplníš.
-
Zas tak blbej nejsem, abych si nezměnil proměnný. Ale uctivě děkuji, protože to funguje. Jen ještě jeden dotaz: Co určuje třetí parametr funkce ImageJpeg($out,$out_name,100); Kvalitu?
-
jo. standardni hodnota je 70 nebo 75, ta vetsinou postacuje.
-
kdyz probehne tenhle script tak mi to ulozzi na $absolutniCesta."obrazky_small/".$novyNazevObrazku; move_uploaded_file() ?
-
DAwid: ne
-
ja to mam takhle.. na localu mi to chodi .. ale na wz ne... adresare mam na 777 function image_resize($obr_puvodni, $obr_zmenseny) { global $image_info ; $image_info = getimagesize($obr_puvodni); switch ($image_info[2]) { case 1: $img = imagecreatefromgif($obr_puvodni); break; case 2: $img = imagecreatefromjpeg($obr_puvodni); break; case 3: $img = imagecreatefrompng($obr_puvodni); break; default: return false; } $width = $_POST[width]; $height = $_POST[height]; $img_2 = imagecreatetruecolor($width, $height); imagecopyresampled($img_2, $img, 0, 0, 0, 0, $width, $height, $image_info[0], $image_info[1]); if ($image_info[2] == 2) { return imagejpeg($img_2, $obr_zmenseny, $_POST[q]); } } $nahled = "prijato/ahoj." . pathinfo($_FILES["obr"]["name"], PATHINFO_EXTENSION); image_resize($_FILES["obr"]["tmp_name"], $nahled); if (isset( $chyba_resize )) echo $chyba_resize; ?> <form enctype="multipart/form-data" action="obr.php" method="post"> <p><b>Soubor:</b> <input type="file" name="obr" /></p> h<input type="text" name="height" />w<input type="text" name="width" />q max 100<input type="text" name="q" /> <input type="submit" name="odeslat_bal" value="Odeslat" /> <br /><br /> </form><!-- Konec formuláře -->
-
error_reporting(E_ALL); jako uplne prvni radek PHP a ECHO vsechny promenne, treba $width
-
NEvypsalo mi to nic... pls.. poradte nekdo co mam spatne... uz jsem prosel mraky prizpevku.. a porad nic..
-
Notice: Undefined variable: img in /3w/wz.cz/h/hokejparta/zkousky/obr.php on line 6 Notice: Undefined variable: nahled in /3w/wz.cz/h/hokejparta/zkousky/obr.php on line 7 Notice: Undefined variable: obr_puvodni in /3w/wz.cz/h/hokejparta/zkousky/obr.php on line 8 Notice: Undefined variable: obr_zmenseny in /3w/wz.cz/h/hokejparta/zkousky/obr.php on line 9 Notice: Undefined variable: image_info in /3w/wz.cz/h/hokejparta/zkousky/obr.php on line 10 Notice: Undefined variable: img_2 in /3w/wz.cz/h/hokejparta/zkousky/obr.php on line 11 Notice: Undefined variable: widht in /3w/wz.cz/h/hokejparta/zkousky/obr.php on line 12
-
Ono ten skript taky není nic moc. Zkusil jsem ti sepsat jinej, ale neměl jsem čas ho otestovat: <?php if(!empty($_FILES)) { if(!$_FILES['image']['error']) { if(upload_image($_FILES)) echo '<span style="color: green;">Soubor uložen</span>'; else echo '<span style="color: red;">CHYBA při uploadu souboru</span>'; } else { echo '<span style="color: red;">CHYBA při uploadu souboru</span>'; } } function upload_image($_FILES) { switch(strtolower($_FILES['image']{'type'})) { case "image/png": $source = imagecreatefrompng($_FILES['image']{'tmp_name'}); break; case "image/jpg": $source = imagecreatefromjpeg($_FILES['image']{'tmp_name'}); break; case "image/jpeg": $source = imagecreatefromjpeg($_FILES['image']{'tmp_name'}); break; case "image/gif": $source = imagecreatefromgif($_FILES['image']{'tmp_name'}); break; } if(@!$source) echo '<span style="color: red;">Typ souboru není podporován!</span>'; else { $newX = 100; // výška \ // > nového obrázku $newY = 100; // šířka / $target = './images'; // složka pro nový obrázek list($origX, $origY) = getimagesize($_FILES['image']{'tmp_name'}); $thumb = imagecreatetruecolor($newX, $newY); imagecopyresized($thumb, $source, 0, 0, 0, 0, $newX, $newY, $origX, $origY); if(imagepng($thumb, $target . DIRECTORY_SEPARATOR . $_FILES['image']{'name'} . '.png')) return true; else return false; } } ?> <form enctype="multipart/form-data" method="post"><p><b>Soubor:</b> <input type="file" name="image"></p><input type="submit" value="Odeslat"></form> Možná že to bude fungovat hned napoprvý ;) PS: zbytečně nezdvojuj proměnný, zvyšuje se riziko, že někde uděláš botu, nebo že se ti do toho začne navážet register_globals.
-
Dodatek: tak jsem to tak zběžně vyzkoušel a dokonce to i funguje :) BTW: JPEG není jedniný (a ani zdaleka nejlepší) grafický formát pro použití na webu
-
--BTW: JPEG není jedniný (a ani zdaleka nejlepší) grafický formát pro použití na webu jj.. tohle byl zacatek rozpracovaneho scriptu na kterem jsem se trocu ucil ...:-) Jinak kazdopane diky... diky tvemu scriptu jsem si dokazal svuj upravit na fachcici vec... tak jeste jednou dik
-
DAwid (hokejparta.wz.cz) tak to vidis sam, 7 chyb a vsechno nedefinovane promenne. Tj., kdyz mas treba $img=-1 || $img=undefined, tak z toho ti ten script moc nevykouzli, ze?