Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: getimagesize
Forum PHP.pl > Forum > Przedszkole
zielonytyp
jak w temacie.. kompletnie nie rozumiem o co chodzi w getimagesize" title="Zobacz w manualu php" target="_manual .. zagladalem do manuala i tak nic z tego nie rozumiem ;/ pomoze mi ktos i wytlumaczy krok po kroku co i jak?
skowron-line
  1. <?php
  2. list($width, $height, $type, $attr) = getimagesize("$foto");
  3. ?>

i wszystko jasne pobierasz liste zmiennych takich jak sa napisane
lukir
Ta funkcja zwraca 4 elementową tablicę:
1) Index 0 zawiera szerokość obrazka w pikselach;
2) Index 1 zawiera wysokość obrazka w pikselach;
3) Index 2 ma następujące wartości (w zależności od tego, jakie jest rozszerzenie pliku):
  • 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,
  • 15 = WBMP,
  • 16 = XBM.
Te wartości są analogiczne do stałej IMAGETYPE dodanej w php 4.3.0.

4) Index 3 jest to ciąg tekstu: height="yyy" width="xxx" , który może być bezpośrednio użyty do wstawienia w tagu IMG.

Oto przykład tych właściwości:
  1. <?php
  2. //ścieżka do pliku obrazka o wymiarach 200x300 pikseli:
  3. $img = "/path/grafika.gif";
  4. $info = getimagesize($img);
  5.  
  6. echo "1)".$info[0]." pikseli<br>";
  7. echo "2)".$info[1]." pikseli<br>";
  8. echo "3)rozszerzenie ".$info[2]."<br>";
  9. echo "4) <img src="".$img." ".$info[3]."><br>";
  10. ?>

Wynikiem tego skryptu będzie taki HTML:
  1. 1)200 pikseli<br>
  2. 2)300 pikseli<br>
  3. 3)rozszerzenie GIF<br>
  4. 4) <img src="/path/grafika.gif" height="300" width="200"><br>

To tyle smile.gif
zielonytyp
dziekuje slicznie smile.gif
Gość
lukir .. wytestowalem Twoj przykladowy skrypt aby sprawdzic co i jak
  1. 1)2608 pikseli<br>
  2. 2)1952 pikseli<br>
  3. 3)rozszerzenie 2<br>
  4. 4) <img src="../duze.jpg" height="2608 " width="1952 "><br>


moje pytanie.. dlaczego pokazalo sie tekst "rozszerzenie 2" a nie "rozszerzenie JPG" jak to zmienic aby bylo JPG a nie 2 ?snitch.gif
lukir
A no tak - sorki... Tak będzie OK:
  1. <?php
  2. //ścieżka do pliku obrazka o wymiarach 200x300 pikseli:
  3. $img = "/path/grafika.gif";
  4. $info = getimagesize($img);
  5.  
  6. if(strlen($info[2])==1) 
  7. $info[2] = '0'.$info[2];
  8.  
  9. $numbers = array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16');
  10. $extensions = array('GIF', 'JPG', 'PNG', 'SWF', 'PSD', 'BMP', 'TIFF(intel byte order)', 
  11. 'TIFF(motorola byte order)', 'JPC', 'JP2', 'JPX', 'JB2', 'SWC', 'IFF', 'WBMP', 'XBM');
  12.  
  13. $info[2] = str_replace($numbers, $extensions, $info[2]);
  14.  
  15. echo "1)".$info[0]." pikseli<br>";
  16. echo "2)".$info[1]." pikseli<br>";
  17. echo "3)rozszerzenie ".$info[2]."<br>";
  18. echo "4) <img src="".$img." ".$info[3]."><br>";
  19. ?>
Gość
teraz wyswietla sie JPG smile.gif ale.. jest problem z obrazkiem.. nie pokazuje sie.. hym.. klikam na jego wlasciwosci a tam pokazuje link do obrazka taki: "http://mojserwer/duze.jpg%20width=" dlaczego?
lukir
To kod php, który na pewno działa (testowałem):

  1. <?php
  2. //ścieżka do pliku obrazka o wymiarach 200x300 pikseli:
  3. $img = "sklepmetro/images/bad.gif";
  4. $info = getimagesize($img);
  5.  
  6. if(strlen($info[2])==1)
  7.  $info[2] = '0'.$info[2]; 
  8.  
  9. $numbers = array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16');
  10. $extensions = array('GIF', 'JPG', 'PNG', 'SWF', 'PSD', 'BMP', 'TIFF(intel byte order)', 'TIFF(motorola byte order)', 
  11. 'JPC', 'JP2', 'JPX', 'JB2', 'SWC', 'IFF', 'WBMP', 'XBM');
  12.  
  13. $info[2] = str_replace($numbers, $extensions, $info[2]);
  14.  
  15. echo "1)".$info[0]." pikseli<br>";
  16. echo "2)".$info[1]." pikseli<br>";
  17. echo "3)rozszerzenie ".$info[2]."<br>";
  18. echo "4) <img src="".$img."" ".$info[3]."><br>";//tutaj był błąd ;)
  19. ?>
Gość
o teraz dziala smile.gif .. w przedostatniej linijce bylo:
  1. echo "4) <img src=\"".$img." ".$info[3]."><br>";

a powinno byc
  1. echo "4) <img src=\"".$img."\" ".$info[3]."><br>";


dziekuje smile.gif
musiek86
Przepraszam ze odkopuje temat ale mam problem powiązany z tematem. Mam skrypt uploadu obrazków i jako jedno z założeń chcę by plik dodawany miał max 100px wysokości i max 300px szerokości. Z tego co to przeczytałem powinno zadziałać to:
  1. $img = "path/to/blank.gif";
  2. $info = getimagesize($img);
  3. if (isset($_POST['submit'])) {
  4. if ($info[0] > 300) $error .= "Obrazek za szeroki!<br />"; //szerokosc
  5. if ($info[1] > 100) $error .= "Obrazek jest za wysoki!<br />"; //wysokosc
  6. if (!$error) {
  7. echo "Obrazek dodano";
  8. }
  9. else
  10. {
  11. echo "<b>Wystapiły następujace błędy:</b><br />
  12. ".$error."
  13. <b>Obrazek nie mógł zostać dodany</b><br />
  14. <br />";
  15. }
  16.  

Niestety pomimo iż dodaje obrazek wiekszy niż szer = 300 bo moj ma 350 to i tak dodaje. Co jest nei tak?
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.