Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Miniaturki-problem z innymi typami
Forum PHP.pl > Forum > Przedszkole
toni22
Witam! mam mały problem, chodzi o miniaturki tworze je "w locie" czyli bez zadnego zapisywania smile.gif slzuzy mi do tego specjalnei stworzony plik :
Kod
<?php



$y = 60;
$x = 80;
$ImgSize = getimagesize($img);
$a = $ImgSize[1];
$b = $ImgSize[0];
$SrcImg = imagecreatefromjpeg($img);

$thumb = imagecreatetruecolor($x,$y);
imagecopyresampled($thumb,$SrcImg,0,0,0,0,$x,$y,$b,$a);
imagejpeg($thumb);
return $thumb;


?>


wszystko działa ładnie i spełnia moje oczekiwania gdy jest to plik jpg,jpeg, ALE exclamation.gif gdy w formularzu uploaduje plik np. gif, bmp , skrypt niedziała sad.gif pewnie trzeba cos dopisac heh PROSZ o pomoc!!
mike
Nic dziwnego że nie działa.
1. Otwierasz gif'a albo png.
2. Zapisujesz go funkcją imagejpeg().
3. no i jest konflikt.

Może to ci pomoże rozwiązać problem http://forum.php.pl/index.php?showtopic=22304&hl=
Kuziu
Funkcje:
imagecreatefromgif()
imagegif()

co do bitmap to zdaje mi sie że GD jeszcze ich nie obsługuje ... przynajmniej tych zwykłych które tworzy Paint Windows'owy ...
toni22
hmmm..... niejestem jeszcze snitch.gif dobry wpisaniu skryptów (początki) ale chodzi mi o cos takiego:

  1. <?php 
  2.  
  3.  
  4.  
  5. $y = 60; 
  6. $x = 80; 
  7. $ImgSize = getimagesize($img); 
  8. $a = $ImgSize[1]; 
  9. $b = $ImgSize[0]; 
  10. $typzdjecia = imagegettypes($img);
  11.  
  12. if($typzdjecia=JPG) {
  13.  
  14. $SrcImg = imagecreatefromjpeg($img); 
  15. $thumb = imagecreatetruecolor($x,$y); 
  16. imagecopyresampled($thumb,$SrcImg,0,0,0,0,$x,$y,$b,$a); 
  17. imagejpeg($thumb); 
  18. return $thumb; 
  19. }
  20.  
  21.  
  22. if($typzdjecia=GIF) {
  23.  
  24. $SrcImg = imagecreatefromgif($img); 
  25. $thumb = imagecreatetruecolor($x,$y); 
  26. imagecopyresampled($thumb,$SrcImg,0,0,0,0,$x,$y,$b,$a); 
  27. imagegif($thumb); 
  28. return $thumb;
  29.  
  30. }
  31.  
  32.  
  33.  
  34.  
  35. if($typzdjecia=PNG) {
  36.  
  37. $SrcImg = imagecreatefrompng($img); 
  38. $thumb = imagecreatetruecolor($x,$y); 
  39. imagecopyresampled($thumb,$SrcImg,0,0,0,0,$x,$y,$b,$a); 
  40. imagepng($thumb); 
  41. return $thumb;
  42.  
  43. }
  44.  
  45.  
  46.  
  47. ?>


Heh wiem ze to moze teraz wygladać śmiesznie, ale wlasnie niewiem jeszcze jak to zapisać poprawie (siedze teraz nadtym i przegladam podstawy)
a także niewiem jak pobrać informacjeo zdjęciu że np. gdy uzytkownik wysłał zdjęcie w formacie GIF.
No nic hmm.. ide dalej przeglądać , jeżeli ktoś może pomóc to byłbym wdzięczny gdyż zaoszczędzi mi to dużo czasu.(już doszedłem do paru rzeczy sam ale trwało to cholernie długo smile.gif
tiraeth
  1. <?php
  2. $y = 60;
  3. $x = 80;
  4. $ImgSize = getimagesize($img);
  5. $a = $ImgSize[1];
  6. $b = $ImgSize[0];
  7.  
  8. $n = explode('.', $img);
  9. $m = count($n);
  10. $m--;
  11. $typzdjecia = $n[$m];
  12.  
  13. if($typzdjecia == &#092;"jpg\" || $typzdjecia == \"jpeg\")
  14. {
  15. $SrcImg = imagecreatefromjpeg($img);
  16. $thumb = imagecreatetruecolor($x,$y);
  17. imagecopyresampled($thumb,$SrcImg,0,0,0,0,$x,$y,$b,$a);
  18. header('Content-type: image/jpeg');
  19. }
  20.  
  21.  
  22. elseif($typzdjecia == &#092;"gif\")
  23. {
  24. $SrcImg = imagecreatefromgif($img);
  25. $thumb = imagecreatetruecolor($x,$y);
  26. imagecopyresampled($thumb,$SrcImg,0,0,0,0,$x,$y,$b,$a);
  27. header('Content-type: image/gif');
  28. }
  29.  
  30. elseif($typzdjecia = &#092;"png\")
  31. {
  32. $SrcImg = imagecreatefrompng($img);
  33. $thumb = imagecreatetruecolor($x,$y);
  34. imagecopyresampled($thumb,$SrcImg,0,0,0,0,$x,$y,$b,$a);
  35. header('Content-type: image/png');
  36. }
  37. else
  38. {
  39. echo 'Typ pliku nie prawidłowy. Poprawne rozszezenia: JPG, JPEG, GIF, PNG';
  40. die;
  41. }
  42.  
  43. imagejpeg($thumb);
  44. imagedestroy($thumb);
  45. ?>


Jeżeli obrazek nie będzie jpg, gif albo png to wywali błąd tongue.gif
Proszę bardzo smile.gif Jeżeli nei bedzie działać to pisz... robione na szybko... z Twojego tongue.gif
Kuziu
zdecydowanie lepiej skorzystać z typów MIME ...

Typ MIME poznaje format pliku po zawartości ... a nie po rozszeżeniu co jest zdecydowanie pewniejsze ... np. plik GIF o nazwie foto.jpg nie zadziała


gif => image/gif,
jpeg => image/jpeg,
jpg => image/jpeg,
jpe => image/jpeg,

  1. <?php
  2.  
  3. $file_type = $_FILES['nazwa_pola_w_formularzu']['type'];
  4.  
  5. if(file_type == &#092;"image/jpeg\" || file_type == \"image/pjpeg\" ..........){
  6.  
  7. }
  8.  
  9. ?>


Topic ze spisem typów MIME
-maciek-
dobrym rozwiązaniem jest
Cytat
getimagesize
Returns an array with 4 elements. Index 0 contains the width of the image in pixels. Index 1 contains
the height. Index 2 a flag indicating the type of the image. 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 =
PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order, 9 = JPC, 10 = JP2, 11 =
JPX, 12 = JB2, 13 = SWC, 14 = IFF. These values correspond to the IMAGETYPE constants that
were added in php 4.3. Index 3 is a text string with the correct height="yyy" width="xxx" string that
can be used directly in an IMG tag.

wiem ze lepiej byloby po polsku ale nie chcialo mi sie tluamccyc po prostu 2 index zwraca typ pliku
toni22
Niewiem jeszcze czy bedzie dzialal twój skrypt TIRAETH ponieważ musze niestety jeszcze sie cofnąć aby mógł zadziałąć do poprzedniego skryptu który wrzuca mi plik na serwer.

  1. <?php
  2.  
  3. if (strlen($zdjecie)>4) {
  4. $kat=&#092;"id$IDdom\";
  5.  
  6. if (mkdir(&#092;"zdjecia/\" . $kat, 0777)) {
  7. mysql_query(&#092;"Update Dom set zdjecie=1 where ID_dom=$IDdom\" ,$dbh); 
  8.  
  9.  
  10. if (strlen($zdjecie)>4) {
  11.  
  12.  $uploaddir=&#092;"zdjecia/\" . $kat . \"/\" . 'zdjecie.jpg' ;
  13.  move_uploaded_file($_FILES['zdjecie']['tmp_name'], $uploaddir ); 
  14.  
  15.  
  16.  }
  17.  
  18. }
  19. }
  20.  
  21. ?>


Skrypt dziala prawidłowo ale jak widac , sprawdza nastepnie tworzy katalog i wrzuca do niego zdjecie w postaci <b>'zdjecie.jpg'</b> no i tu ma problem bo jak wrzucam plik GIF to tez jest zapisywany jako 'zdjecie.jpg' i znó tu mi potrzebna jest komenda która wyciągałą by z pliku np nazwe+rozszerzenie i pod ta nazwa wrzucala na serwer.Aha ale ręcznie wrzucilem plik GIF z ciekawosci ale skrypt który napisales niewyswietlil mi go.Wiem ze zamiast 'zdjecie.jpg' wystarczy zmienna wstawic np $nazwa no ale nieznam polecenia które by mi zwracało nazwe i rozszerzeni .Prosze o pomoc!!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.