Autor | Zpráva | ||
---|---|---|---|
Pavel Vodnář Profil * |
#1 · Zasláno: 1. 2. 2011, 14:27:36
Dobrý den, potřeboval by jsem poradit jak co nejjednodušeji vytvářet miniatury obrázků?
Miniatura se vytváří potom co byl obrázek nahrán na server? Děkuji Vám |
||
johnl Profil |
#2 · Zasláno: 1. 2. 2011, 14:46:03
Pavel Vodnář:
„jak co nejjednodušeji vytvářet miniatury obrázků?“ Třeba hledáním.. Hotový kód ti sem asi nikdo nepošle, leda že bys nabídnul nějakou odměnu, ovšem to patří do sekce Práce a zakázky.. Takže můj odkaz by ti mohl stačit.. ;-) |
||
Pavel Vodnář Profil * |
#3 · Zasláno: 1. 2. 2011, 14:57:49
No, chtěl by jsem to zkusit od začátku a dát nějak do kupy, potřebuji vědět kroky, které se musí udělat jak postupovat? děkuji
|
||
l564 Profil |
#4 · Zasláno: 1. 2. 2011, 15:09:14
Tak si vytvoř kopii fotek , a stáhni si free program ne změnu fotek a zmenši si fotky a nahraj je na web . Těžký ?
|
||
Pavel Vodnář Profil * |
#5 · Zasláno: 1. 2. 2011, 15:13:10
l564:
No celkem to je těžký, alespoň pro mě;) dalo by se stim nějak pomoct? Díky |
||
Pavel Vodnář Profil * |
#6 · Zasláno: 1. 2. 2011, 15:55:48
Zkloubil sem dohromady tenot kód:
// vytvoření miniatury 31 $typ = $_FILES['fupload']['type']; $jmeno = $_FILES["fupload"]["name"]; //nazev obrazku $velikost = $_FILES["fupload"]["size"]; echo $typ; echo $jmeno; echo $velikost; $adresa = "../images/miniature".$jmeno; //adresa do které se uloži miniatura $adresa_org = "./images/".$jmeno; //cesta k obrazku $velikost = getimagesize($adresa_org); // zjištění rozměrů obrázků $sirka = $velikost[0]; //přiřadí se šířka obrázku $vyska = $velikost[1]; //přiřadí se výška obrázku $tn_vyska = 80; //výška obrázku po zmenšení $tn_sirka = $sirka*(80/$vyska); //aby se zachoval poměr stran vypočte se nová šířka $org = ImageCreateFromJpeg($adresa_org); $tn = ImageCreateTrueColor($tn_sirka+3,$tn_vyska+3); //ke zmenšenému obrázku přidáme "stín" ImageCopyResampled($tn,$org,1,1,0,0,$tn_sirka,$tn_vyska,$sirka,$vyska); //zmešíme obrázek a uložíme do připravené složky ImageJpeg($tn,$adresa); ImageJpeg($tn); ImageDestroy($tn); ImageDestroy($org); Snažim se vytvořit ve scriptu upload, ale píše mi to tuto chybu: Warning: imagejpeg() [function.imagejpeg]: Unable to access ../images/miniatureObraz045.jpg in /var/www/web5/pridat-inzerat-upload.php on line 51 Warning: imagejpeg() [function.imagejpeg]: Invalid filename in /var/www/web5/pridat-inzerat-upload.php on line 51 Nevíte v čem můžu mít chybu? Děkuji Vám |
||
AM_ Profil |
#7 · Zasláno: 1. 2. 2011, 17:00:54
Pavel Vodnář:
zřejmě nějaká chyba v cestě. > $adresa = "../images/miniature".$jmeno; //adresa do které se uloži miniatura > $adresa_org = "./images/".$jmeno; //cesta k skoro to vypadá, že buď máš dvě složky ../images a ./images, nebo to máš popletené v kódu. |
||
Pavel Vodnář Profil * |
#8 · Zasláno: 1. 2. 2011, 17:06:31
mám složku images - ve které mám reálnou velikosti obrázku a v te složce images mám složku miniatury - mohlo by to být tím nebo něčím jiným? Děkuji Vám
|
||
AM_ Profil |
#9 · Zasláno: 1. 2. 2011, 17:11:17 · Upravil/a: AM_
Pavel Vodnář:
„mám složku images - ve které mám reálnou velikosti obrázku a v te složce images mám složku miniatury“ nic proti, ale ta věta moc nedává smysl. Máš jednu složku images nebo dvě? protože ./images a ../images není totéž. //edit: už tu větu asi chápu, tj že máš jednu složku images. Zřejmě místo ../images máš mít taky ./images, .. znamená o adresář výš. |
||
Pavel Vodnář Profil * |
#10 · Zasláno: 1. 2. 2011, 17:17:39
Ano mam jdenu složku s názvem images v a té složce složku s názvem miniatury. Může být chyba v tomto? nebo je v něčem jiném? Děkuji Vám
|
||
Legáček Profil |
#11 · Zasláno: 1. 2. 2011, 17:21:32
$adresa = "../images/miniature/".$jmeno; Takhle by to být nemělo? |
||
TomášK Profil |
#12 · Zasláno: 1. 2. 2011, 17:25:19
Legáček:
Ne, je tam pořád navíc ta tečka. $adresa = "./images/miniature/".$jmeno; |
||
Petr__ Profil * |
#13 · Zasláno: 1. 2. 2011, 17:59:12
[#13] TomášK
Legáček narážel na to, že mu tam chybí to poslední lomítko, takže místo toho aby se mu ty miniatury vytvářely v adresáři "miniature", tak vytvářel miniatury a prefixem "miniature" přímo v adresáři images. Jde to vidět i z výpisu té chybové hlášky. Navíc tam bude i chyba v cestě k tomu adresáři. Zatím nikdo neví, jak jsou vůči sobě umístěny ten soubor pro zpracování obrázku a samotný adresář "images"... |
||
Pavel Vodnář Profil * |
#14 · Zasláno: 1. 2. 2011, 18:45:33
Ano máte pravdu:
$adresa = "./images/miniature/".$jmeno; |
||
Pavel Vodnář Profil * |
#15 · Zasláno: 1. 2. 2011, 19:44:50
Rovněž by jsem potřeboval ošetřit proč když načtu stránku s uploadem mi to vypisuje tyto chyby:
1) Warning: Division by zero in /var/www/web5/pridat-inzerat-upload.php on line 47 2) Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: './images/' is not a valid JPEG file in 3) Warning: imagecopyresampled(): supplied argument is not a valid Image resource in 4) Warning: imagejpeg(): supplied argument is not a valid Image resource in co dané chyby znamenají? Děkuji |
||
xmark Profil |
#16 · Zasláno: 1. 2. 2011, 19:51:20
Pavel Vodnář:
Ty hlášky jsou v angličtině, http://translate.google.com je kamarád. Aby se někomu tady chtělo s tím zalamovat, chtělo by to aspoň upřesnit, kterých řádků se ty hlášky týkají. Tvůj kód má 28 řádků, první chybová hláška je z ř. 47. Přinejmenším moje ochota s něčím radit klesá k nule. |
||
Pavel Vodnář Profil * |
#17 · Zasláno: 1. 2. 2011, 20:03:12
Nevím si rady s těmito chybovýma hláškama, které se načtou při načtení stránky - jak je odstranit? děkuji
1)Warning: Division by zero in /var/www/web5/pridat-inzerat-upload.php on line 43 2)Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: './images/' is not a valid JPEG file in /var/www/web5/pridat-inzerat-upload.php on line 45 3)Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /var/www/web5/pridat-inzerat-upload.php on line 46 4)Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /var/www/web5/pridat-inzerat-upload.php on line 47 5)Warning: imagejpeg(): supplied argument is not a valid Image resource in /var/www/web5/pridat-inzerat-upload.php on line 48 6)Warning: imagejpeg(): supplied argument is not a valid Image resource in /var/www/web5/pridat-inzerat-upload.php on line 49 7)Warning: imagedestroy(): supplied argument is not a valid Image resource in /var/www/web5/pridat-inzerat-upload.php on line 51 8)Warning: imagedestroy(): supplied argument is not a valid Image resource in /var/www/web5/pridat-inzerat-upload.php on line 52 <?php if (isset($_FILES["fupload"]["name"])) { if ((is_uploaded_file($_FILES["fupload"]["tmp_name"])) && ($_FILES['fupload']['type']=="image/png" || $_FILES['fupload']['type']=="image/jpeg" || $_FILES['fupload']['type']=="image/jpg" || $_FILES['fupload']['type']=="image/gif" )) { $name = $_FILES["fupload"]["name"]; if (@move_uploaded_file($_FILES["fupload"]["tmp_name"], "./images/$name")) echo 'Soubor '.$name.' byl úspěšně nahrán'; else echo 'Nastala chyba'; } else echo "Obrázek musí být typu .jpg, .jpeg, .gif, .png"; echo $_FILES['fupload']['type']; echo $_FILES["fupload"]["name"]; } // vytvoření miniatury 30 $typ = $_FILES['fupload']['type']; $jmeno = $_FILES["fupload"]["name"]; //nazev obrazku $velikost = $_FILES["fupload"]["size"]; echo $typ; echo $jmeno; echo $velikost; $adresa = "./images/miniature/".$jmeno; //adresa do které se uloži miniatura $adresa_org = "./images/".$jmeno; //cesta k obrazku $velikost = getimagesize($adresa_org); // zjištění rozměrů obrázků $sirka = $velikost[0]; //přiřadí se šířka obrázku $vyska = $velikost[1]; //přiřadí se výška obrázku $tn_vyska = 150; //výška obrázku po zmenšení $tn_sirka = $sirka*(150/$vyska); //aby se zachoval poměr stran vypočte se nová šířka $org = ImageCreateFromJpeg($adresa_org); $tn = ImageCreateTrueColor($tn_sirka+0,$tn_vyska+0); //ke zmenšenému obrázku přidáme "stín" ImageCopyResampled($tn,$org,0,0,0,0,$tn_sirka,$tn_vyska,$sirka,$vyska); //zmešíme obrázek a uložíme do připravené složky ImageJpeg($tn,$adresa); ImageJpeg($tn); ImageDestroy($tn); ImageDestroy($org); ?> |
||
xmark Profil |
#18 · Zasláno: 1. 2. 2011, 20:07:57
Pavel Vodnář:
Ta první hláška znamená, že se snažíš dělit nulou, což v oboru reálných čísel nelze. Všechny další se odvíjí od toho. |
||
Pavel Vodnář Profil * |
#19 · Zasláno: 1. 2. 2011, 20:20:29
Aha, děkuji Vám - jak jí zabráním respektive pomůže nějaká podmínka?
|
||
Pavel Vodnář Profil * |
#20 · Zasláno: 1. 2. 2011, 20:34:59
když opravím řádek 43 takto:
$tn_sirka = 120; pak nedělím nulou a vypíše mi to tyto chyby při načtení stránky: Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: './images/' is not a valid JPEG file in /var/www/web5/pridat-inzerat-upload.php on line 45 Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /var/www/web5/pridat-inzerat-upload.php on line 47 Warning: imagejpeg() [function.imagejpeg]: Unable to open './images/miniature/' for writing: Is a directory in /var/www/web5/pridat-inzerat-upload.php on line 48 ˙Ř˙ŕ�JFIF������˙ţ�>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ˙Ű�C� $.' ",#(7),01444'9=82<.342˙Ű�C 2!!22222222222222222222222222222222222222222222222222˙Ŕ��d�x"�˙Ä����������� ˙Ä�µ���}�!1AQa"q2�‘ˇ#B±ÁRŃđ$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�„…†‡�‰Š’“”•–—�™š˘Ł¤Ą¦§¨©Ş˛ł´µ¶·¸ąşÂĂÄĹĆÇČÉĘŇÓÔŐÖ×ŘŮÚáâăäĺćçčéęńňóôőö÷řůú˙Ä�������� ˙Ä�µ��w�!1AQaq"2�B‘ˇ±Á #3RđbrŃ $4á%ń&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚�„…†‡�‰Š’“”•–—�™š˘Ł¤Ą¦§¨©Ş˛ł´µ¶·¸ąşÂĂÄĹĆÇČÉĘŇÓÔŐÖ×ŘŮÚâăäĺćçčéęňóôőö÷řůú˙Ú���?�ůţŠ( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ˙Ů Warning: imagedestroy(): supplied argument is not a valid Image resource in /var/www/web5/pridat-inzerat-upload.php on line 52 Jak odstraním tyto chyby? Děkuji Vám |
||
xmark Profil |
#21 · Zasláno: 1. 2. 2011, 20:37:45
Pavel Vodnář:
Na řádku 43 dělíš nulou. Zamysli se, co z toho vyplývá. |
||
Pavel Vodnář Profil * |
#22 · Zasláno: 1. 2. 2011, 20:40:57
xmark:
Ano rozumím ale když ten řádek opravím takto řádek 43 = $tn_sirka = 120; Co by ješte mohlo být špatně? Děkuji Vám |
||
Tori Profil |
#23 · Zasláno: 1. 2. 2011, 20:45:37
Pavel Vodnář:
Zkuste změnit postup, kterým hledáte chybu :) Tady by se dalo použít např.: Kouknu na řádek, kde se dělí nulou. Nula je tedy hodnota proměnné $vyska. (Tady jste se dostal na scestí.) Kouknu, kde je definovaná $vyska - čte se z nějakého pole. To pole vytváří funkce getimagesize(). Jelikož je to standardní funkce PHP (a ne moje vlastní), nebude chyba ve funkci, ale v tom, co dostane ke zpracování. Má dostat cestu k obrázku, takže to zkontroluji. Zkusím si vypsat proměnnou $adresa_org: pokud neobsahuje jméno souboru, je chyba tam, kde se definuje proměnná $jmeno. Pokud obsahuje jméno souboru, zkusím použít absolutní cestu místo relativní. |
||
Pavel Vodnář Profil * |
#24 · Zasláno: 1. 2. 2011, 20:54:03
Tori:
Když zadám vypsat $adresa_org vypíše mi to: pouze ./images/ - to tedy znamená že chyba je tam kde se definuje $jmeno? |
||
Darker Profil |
#25 · Zasláno: 1. 2. 2011, 21:00:56 · Upravil/a: Darker
Pavel Vodnář:
Hmm. Tori má recht kámo. Programování vyžaduje určitý analitický schopnosti. Teď k tomu, cos zatím spáchal. Nemám nejmenší ponětí, proč soubor ukládáš (ř. 12) a pak znovu nahráváš... (ř. 39). Změna stran v poměru: $width=/*SIRKA*/; $height=/*VYSKA*/; $max_rozmer=270; if($width>$max_rozmer){ $height=$height/($width/$max_rozmer); $width=$max_rozmer; } if($height>$max_rozmer){ $width=$width/($height/$max_rozmer); $height=$max_rozmer; } Začal jsem psát dřív než vodnář napsal [#25] |
||
Pavel Vodnář Profil * |
Dobrá děkuji za informace - teď mi to už při načtení stránky nevypisuje nic, ale dělá mi to chybku když se mi obrázek nahraje
pak mi to vypíše: Ř˙ŕ�JFIF������˙ţ�>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ˙Ű�C�•••• $.' ",#(7),01444'9=82<.342˙Ű�C 2!! Moderátor Alphard: Zkráceno.
Co znamená tato chyba? Děkuji Vám |
||
Alphard Profil |
#27 · Zasláno: 1. 2. 2011, 21:23:06
Když ten obrázek vypisujete (ImageJpeg($tn);), musíte poslat správné hlavičky. Ty lze najít např. v manuálu u této funkce.
|
||
Pavel Vodnář Profil * |
#28 · Zasláno: 1. 2. 2011, 21:36:20
Ano máte pravdu, už to ukládá miniatury jak má a pracuje "správně" ,
potřeboval by jsem poradit jak připravit na tyto uploadované obrázky DB co by měla tato DB obsahovat ? děkuji Vám |
||
Pavel Vodnář Profil * |
#29 · Zasláno: 1. 2. 2011, 21:50:45
Ještě sem se chtěl zeptat jak ošetřit když uživatel bude chtít nahrát obrázek ze stejným názvem? Děkuji Vám
|
||
Alphard Profil |
#30 · Zasláno: 1. 2. 2011, 21:56:55
Pavel Vodnář:
Posledních pár dní se mi zdá, že je toto fórum prostředek k řešení veškerých vašich problémů. Několikrát vám byly doporučovány návody i manuály. Musíte si o PHP něco přečíst, když s ním chcete pracovat. Když chcete ukládat obrázky do databáze, doporučuji http://www.linuxsoft.cz/article.php?id_article=420 Když se vyskytne nějaký problém, zkuste ho nejdříve vyřešit sám [#23] [#29] Neměl by nastat problém, když budete ukládat do databáze, nabízí se identifikace podle id. Pro úplnost dodávám, že časté řešení je ukládat obrázky jako soubory a v db mít jen údaje o nich. |
||
Časová prodleva: 13 let
|
0