Pomoc - Szukaj - Uytkownicy - Kalendarz
Pena wersja: [PHP] ptle do miniatur
Forum PHP.pl > Forum > Przedszkole
dr4g0n79
Witam

tworz sobie skrypcik genrujcy miniaturki ida polega na tym ze ma pobrac z katalogu zdjecia przeskalowac je i zapisac zmniejszone dodajac przedrostek po nawie pliku_male
mam jednak problem gdy zamiast zapisaywa te pliki to wyswietla mi pierwsze zdjecie z tego katalogu, pewnie co nie tak mam z ptl moecie rzuci na to okiem??

  1. <?php
  2. $katalog = "./";
  3. $tablica = array();
  4.  
  5. $dir = opendir($katalog);
  6.  
  7. while (false !== ($name = readdir($dir)))
  8. {
  9. if($name !== '..' && $name !== '.' && $name !== 'gd.php')
  10. $tablica[] = $name;
  11. }
  12.  
  13.  
  14. foreach($tablica as $klucz => $key)
  15. {
  16. $img = imagecreatefromjpeg($key);
  17. $width = imagesx($img);
  18. $height = imagesy($img);
  19.  
  20. $width_male = $width * 0.4;
  21. $height_male = $height * 0.4;
  22. $img_male = imagecreatetruecolor($width_male, $height_male);
  23. imagecopyresampled($img_male, $img, 0, 0, 0, 0, $width_male , $height_male, $width , $height);
  24.  
  25. imagejpeg($img_male, $key_male, 80);
  26.  
  27. }
  28. imagedestroy($img);
  29. imagedestroy($img_male);
  30.  
  31.  
  32. ?>
isso
mam na stronie skrypt to pomniejszania przy zapisywaniu plikw na serwer... wystarczy go lekko przerobi smile.gif - zobacz tam smile.gif
dr4g0n79
wole jednak od podstaw po swojemu, zawsze zostanie wiecej w glowie i nie tylko
sagittariuspl
chyba juz nigdy nie pojme dzialania 'potrojnych' opeatorow winksmiley.jpg

sprobuj
  1. <?php
  2. while (false != ($name = readdir($dir)))
  3. {
  4. if($name != '..' && $name != '.' && $name != 'gd.php')
  5. $tablica[] = $name;
  6. }
  7. ?>


a potem wywolaj
  1. <?php
  2. print_r($tablica);
  3. ?>
dr4g0n79
pocztkowo bylo bez potrojnych operatorow, ale efekt taki sam przy wypisaniu elementw tablicy mam same krzaczki bardzo dziwne, jednak to chyba nie jest istota problemu, tylko to e nie chce si zapisywa ze zmnienion nazw
sagittariuspl
prosilem o podanie wyniku print_r? pokaz co wyszlo - bedziemy wiedziec czy dobrze listuje katalog
dr4g0n79
takie dziwy wyszly:

Array ( [0] => 1.jpg [1] => 12.jpg [2] => 6.jpg [3] => 7.jpg ) Array ( [0] => 1.jpg [1] => 12.jpg [2] => 6.jpg [3] => 7.jpg ) Array ( [0] => 1.jpg [1] => 12.jpg [2] => 6.jpg [3] => 7.jpg ) Array ( [0] => 1.jpg [1] => 12.jpg [2] => 6.jpg [3] => 7.jpg ) JFIF;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80 C   %# , #&')*)-0-(0%()(C   (((((((((((((((((((((((((((((((((((((((((((((((((((y" &micro;}!1AQa"q2‘#B&plusmn;R$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz„…†‡‰’“”•–—™&brvbar;&copy;&micro;&para;&middot; &micro;w!1AQaq"2B‘&plusmn; #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚„…†‡‰’“”•–—™&brvbar;&copy;&micro;&para;&middot; ?I%u8‘0Χr7}OR†$q9s‚Dڰou&micro;X&middot;—$‚Z23‚:3u}R( ]&not; a]ss‰qH).™1o€$#V›{o3L Af<=&laquo;914™fN1n—O&para;&middot;gU—.•;› >™⵴ in57>&micro;ih€)m \rsI'‰.8R23@;>}i9&reg;Rp&micro;—”p!u&h*–J?ZLZU!†A &—b€'֮}iqXZΣ-&not;&plusmn;&reg;›4ϭG4 r~&copy;&not;$vs4FP[8ҸM‚gX  o‘‡ר v=-$8^] O—f–4pL`1‚?_|/w3jRy|!q&micro;mB ™fleA?=?–&laquo;K6wgMwg‘{7•8–Iy—…#fzzY3uyIa*C eb0@'•e[[[‚RP&micro;g’AkZ^&\€`nu%q8k<%&reg;Emoj4gnpAڧ߱&reg;GR›LݼjYn*SH&laquo;E&not;’Iyjq[Jb$g“АH"_M QG”&not;H4Qʺ8m&}N‚!!c1–; ܾ}+#‚~ʨe1€v”&middot; ~&laquo;v * —q-7g#?J&not;u8&reg;&not;&micro;,‘8b&para;tS^;Vat:6&micro;5“Gu 1‡ @$Z/&reg;)%&raquo;rv$ZG8Hs^:„"b†GIH&middot;? n&copy;IXfdx)H V7S$Ij&copy;LQ{n?MCa•,&raquo;6?.z%‰KX$!V1“﩯q9€ksRs‘W;n)HBH&middot;G|ƽ+KX,Y3yaB'I&micro;‘&not;&not;sZadx—6—9}9&brvbar;‘<=&raquo;@{•…$7&reg;‡*O 1&laquo;g"m}:U&laquo;\‘$1&7qb‹!8&middot;Zv+[&middot;6k)Vo“;}k4v:…’x•SPoa9#&micro;=+›EX8I#޿2™:)&para;k]&not;&raquo;fdU!Oq\(Io f„Jn2O‘&copy;"=֬ 1\ r&middot;~f\@${y?4’ k)̧‚L9[Eki0&plusmn;FlAp1€rZ&para;l›U qb“&plusmn;&laquo;&not;kQ•vV C34UDZH no,=觨]a9d`dO¾„UV•c&copy; #$q.”`‘]2if‹`8?j% <23(U&reg;-D‘&not;‰ZDf•gw&para;3T{}J׼&middot;Ql\K”Dp&plusmn;`1?: "1&micro;|ڭi6s&]Vr3mj(`6!L&middot;easӵi—q&not;*#‹o2Hojַ_A— r,Q,wH‹’Tzg&middot;zL33…Q‘3“&raquo;SM&para;&middot;™•TJ nF:q &not;ocOdڱϥOat=.R6=^3cKX“(mAR&brvbar;_qw<›“k6…N†;S~Ħ“:’ɫ‘pO_{]&copy;‚P"g‘_0`fNv&brvbar;+94p&copy;’qXM&para;F‹E?;d~5KA&t&brvbar;#™ IA r:̮wu9GqaW۴H PHǡsGp`yjg)hf;&raquo;y“N3= S%GR›&middot;j—!AhW“0s™0.A&para;hC,Fq驦H€ezzP&not;&not;e&para;“ECqf ~ڹA$Ok&Q :7CB# Y&plusmn;Z&plusmn;•&raquo;5( ‹zz&micro;– G]&copy;I T ܁L 7vH(F}&laquo;6K0U< nXa0y;P‘!‰D}GQ&laquo;Bkt#j&plusmn;8?™&laquo;$FqLKf ‚[&middot;F קȨ]4r{Mhh˾j.z&not;`CEEd&para;‘‰d’kzRYd0IJ, qnNI&not;[moF•:Gz6`G9BA&not;!™5[“A&reg;N{b”l‚‘x.k&not;‹Mwxm'5ﯯ›€dKu@‚„g&լ3<(Om.9•9G<O|&reg;{Gq>&micro;‡;&micro;Xd!&middot;@‡n›[}s\&brvbar; V= $VH&copy;$ zuҴ‹y&reg;GE&raquo;„ǧ^‹gAu q&plusmn;“~&micro;&not;fhlI'E&middot;l9%:##zO‡&not;Z}6&brvbar;v&not;qBsdT*60H–kyLsޱ?6{&K+)&”K&plusmn;—‹“1={ע խyu-y4#†v&middot;&laquo;‚NϯC&not;‹XQ2;H“_&micro;H`N=)W!x`N&raquo;&middot;’™•Y‡j4V G׽KI7)›‚„Q74‡8vu_fS#’q{‡&brvbar;Oji™|R@끩*@C€#Q@&not;& eh>vGXei6&copy;:үXi4‘$.wͻ7d"&copy;I 4Hb†4O'•78&copy;|~L†‚ ' "?8* diA3~81VKs]Ѿ J&raquo;A8&brvbar;1inL€3cEm9ys›bG&laquo; qL|Qg&copy;€&reg;&raquo;6s‘T3ңe‘–)Kͱ9\a@@&reg;I6A$WwVqB‹ʤk5&para;lܺabrq‚O>&micro;_n{&plusmn;‚\`4‰”{֧'6&para;k‰“!^S8„~'\k&middot;b 5nwJwn‡^4…‚‚{~ZI…“));|wfdw&raquo;–g›i gzֱ™X™aHXGl~&micro;‚W^&middot;o&middot;‰#R. “ih^д8 T0]N€ȧM&para;x…t;Vx2 {ثg9WE= Ht1}ؤO*ۥ•+g Z c\<zW1]m–xu’DHe ’+O&not;i‡ &brvbar;&laquo;•\C—P{:=j]>$) <&micro;͢[:U8c?r+–k‚`2)YT€y:OM8&raquo;,d3 ‡ ’~C:v&para;*L2^‡ҧ j‚do@&middot;N?J&copy;f}pѼt‰&brvbar;x37&raquo;֭]EH@ݳ^df$k,r’T*’o-‚Or}L&micro;oy&middot;‹a—'֩’6Yp©c;o츧–wmRS‰"‹鶐~u•E&copy;–;]Fw,[!2?‘‡4&micro;\BWYqPPS‹ո&para;&raquo;o2J 0Qq&micro;SB9%?pJ}9F8k%&micro;‹ː‹=*ץųp“YJ&reg; €=)tHX!iR`Y‚a~™,&reg;\n&middot;=™m-Ikx3&plusmn;W 3Mu&reg;l&middot;;!Ex:U&brvbar;jM&not;A'w&micro;$nc&para;h™cl…e#&brvbar;i”g‰&reg;l59"‚[Y‘J&middot;%~l||=k}2u[(’HU ‘$~rqۃx‹>jz,/4YUNW‡cR&raquo;Lͧq|&middot;&middot;osddg?*W&micro;3‘;s&middot;e&para;&micro;– _""“m w!V29&para;1*vHX,8zZ„66ԭ*1+^Skˈ,‚H5^&para;[H6DT€jY5"ȵǹ†™e„#UHdn&micro;„+’“s ]&para;MiӾ' ﴼj> &copy;A?”208 QI1Ih—<H?]f™n,|ȰV2 9LRq&y>nKI
isso
Nie mwie, e musisz przerobi... ale wystarczy, eby popatrzy jak to jest skonstuowane... i wtedy bdziesz rozumia zasad dziaania przez co twiej bdzie Ci stworzy wasny skrypt smile.gif

Zreszta zobacz:
  1. <?php
  2. ....
  3. function LoadJpeg($imgname, $new_height, $new_width)
  4. {
  5. /* Attempt to open */
  6. $img = @imagecreatefromjpeg($imgname);
  7. /* See if it failed */
  8. if(!$img)
  9. {
  10. /* Create a black image */
  11. $img_mini = imagecreatetruecolor(150, 30);
  12. $bgc = imagecolorallocate($img_mini, 255, 255, 255);
  13. $tc = imagecolorallocate($img_mini, 0, 0, 0);
  14.  
  15. imagefilledrectangle($img_mini, 0, 0, 150, 30, $bgc);
  16.  
  17. /* Output an error message */
  18. imagestring($img_mini, 1, 5, 5, 'Error loading ' . $imgname, $tc);
  19. }
  20. else{
  21. $width = imagesx($img);
  22. $height = imagesy($img);
  23. $width_mini = $width * $new_width;
  24. $height_mini = $height * $new_height;
  25. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  26. Imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width , $height);
  27. }
  28.  
  29. return $img_mini;
  30. }
  31. ...
  32.  
  33. $img = LoadJpeg($link, $height, $width);
  34. imagejpeg($img, $newimg, $quality);
  35. ?>


czyli pierw tworzysz funkcj przerabiania obrazka... i zapisujesz stworzony obrazek do zmiennej(to jest tylko kupa znaczkw) i funkcj imagejpeg zapisujesz go jako jaki plik... powodzenia
dr4g0n79
no ale przecie ja tak chc zrobi i niby idea jest dobra ale co mam nie tak, czy kto moe wiedzie gdzie tkwi bd w moim skrypcie??
sagittariuspl
o kolego winksmiley.jpg a gdzie masz funkcje zapisywania plikow na dysku? biggrin.gif

ten print_r co pokazales powinien Ci nasunac juz blad - zamiast zapisywac jpegi wyswietlasz je na stronie. a krzaki masz dlatego ze nie ustawiles headera odpowiedniego

nie chce tu dawac gotowca, ale powinienes juz wiedziec co jest do przepisania
dr4g0n79
nie wiem dalej, bo mi si wydaje e za pomoc tego: imagejpeg($img_male, $key_male, 80); zapisuje si ten obrazek do pliku jpg na serwerze by moe trzeba otworzy katalog do zapisu?questionmark.gif
isso
nie trzeba katalogu otwiera.
dr4g0n79
imagejpeg jest funkcj do zapisania obrazw do pliku i ja j mam uyt jeeli wiecie podpowiedzcie o ktry moment chodzi
webdevil
Cytat(dr4g0n79 @ 2.02.2009, 19:45:29 ) *
nie wiem dalej, bo mi si wydaje e za pomoc tego: imagejpeg($img_male, $key_male, 80); zapisuje si ten obrazek do pliku jpg na serwerze by moe trzeba otworzy katalog do zapisu? questionmark.gif


a co masz pod zmienna $key_male? bo wydaje mi si e chcesz uzyska $key.'_male.jpg' winksmiley.jpg
dr4g0n79
pod zmienn $key mam nazwy plikow jpg duzych a chce uzyskac male pliki takie nazwa_male.jpg ale to mi si nie robi
webdevil
Cytat(dr4g0n79 @ 2.02.2009, 19:59:39 ) *
pod zmienn $key mam nazwy plikow jpg duzych a chce uzyskac male pliki takie nazwa_male.jpg ale to mi si nie robi


musisz rozbi nazw pliku na nazw i rozszerzenie, wstawi pomidzy nie '_male' i umieci zamiast $key_male w imagejpeg
isso
juz? czy potrzebny gotowiec?
dr4g0n79
nie nie ju prbuje to zrozumie i nie moge :-( przecie mam zapis do pliku co jest nie tak?questionmark.gif
isso
Zauważ, że

$key_male nie jest nigdzie tworzone....

przed imagejpeg(); zrb:

Kod
$key_male = 'male_'.$key;

i powinno byc dobrze smile.gif
dr4g0n79
sprobowalem to dla jednego pliku o konkretnej nazwie i to dziaa zapisuje pod now nazw zmniejszony obrazek dalej si upieram, e mam co nie tak z ptl chyba, e kto mi woy palca w oko -)

jest ju lepiej ale nie doskonale miniaturka zrobia mi si tylko dla jednego pliku z tego katalogu a nie dla wszystkich



miniaturka robi mi si tylko dla ostatniego elemenu tablicy.

PS a jeeli chodzi o to "nie uycie" $key_male to myslaem e bdzie to tylko dopisanie wyrazu "male" do zmiennnej $key i nie trzeba tego jakos deklarowa
isso
taaa... nie trzeba

ale :

Kod
$key_male != $key.'_male'


...
poza tym... w $key masz np: image.jpg

to jak dodasz _male to bedzie image.jpg_male

a ma byc male_image.jpg

wiec:

albo tak jak wczesniej albo:

Kod
'male_'.$key
dr4g0n79
jeszcze jak ma wskazwk potrzebuj dlaczego to wykonuje si tylko dla ostatniego elemntu w tablicy a nie dla wszystkich??
isso
a jeste pewien, ze Twoja tablica nie jest jedno elementowa ... wypisz j winksmiley.jpg i zobacz czy jest tam wiecej elementw smile.gif
dr4g0n79
jak wyswietam $key to mam nazwy wszystkich plikw znajdujcych si w tym katalogu
isso
  1. <?php
  2. $katalog = "./";
  3. $tablica = array();
  4.  
  5. $skrypt = 'index.php';
  6.  
  7. $dir = opendir($katalog);
  8.  
  9. while (false !== ($name = readdir($dir)))
  10. {
  11. if($name !== '..' && $name !== '.' && $name !== $skrypt)
  12. $tablica[] = $name;
  13. }
  14.  
  15.  
  16. foreach($tablica as $klucz => $key)
  17. {
  18. echo $key.'<br />';
  19. $img = imagecreatefromjpeg($key);
  20. $width = imagesx($img);
  21. $height = imagesy($img);
  22.  
  23. $width_male = $width * 0.4;
  24. $height_male = $height * 0.4;
  25. $img_male = imagecreatetruecolor($width_male, $height_male);
  26. imagecopyresampled($img_male, $img, 0, 0, 0, 0, $width_male , $height_male, $width , $height);
  27.  
  28. imagejpeg($img_male, 'male_'.$key, 80);
  29.  
  30. }
  31. imagedestroy($img);
  32. imagedestroy($img_male);
  33.  
  34.  
  35. ?>


u mnie to dziaa tak jak powinno...
dr4g0n79
wielkie dziki dziaa bez problemw bo na pocztku tego tematu kto radzi mi zrobi tablic tak: foreach($tablica as $key) zamiast pierwotnego ($tablica as $klucz => $key) i tu by problem po zmianie tablicy wszystko jest OK jeszcze raz wielkie dziki
To jest wersja lo-fi gwnej zawartoci. Aby zobaczy pen wersj z wiksz zawartoci, obrazkami i formatowaniem prosz kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.