[PHP] Gify i Png

Dział poświęcony programowaniu w każdym języku.

[PHP] Gify i Png

Postprzez tbfa » 2007-08-20, 15:25:13

Prosze o szybka odpowiedz poniewaz zalezy mi na tym:
Mam sobie galerie skladajaca sie z 2 plików php.:
indexgalerii.php
Kod: Zaznacz cały
<?php

    define('KATALOG_ZDJEC','./img/');
    define('WIERSZY',6);
    define('KOLUMN',6);

    $x=0;
    foreach (glob(KATALOG_ZDJEC."*.jpg") as $zdjecie) $album[$x++]=$zdjecie;
    $na_stronie=WIERSZY*KOLUMN; $razem=count($album);
    $stron=floor($razem/$na_stronie); $stron+=$razem % $na_stronie ? 1:0;
    $pokaz_strone=$_GET['pokaz_strone']; if (!isset($pokaz_strone)) $pokaz_strone=1;
    $start=($pokaz_strone-1) * $na_stronie;
    $stop=($pokaz_strone==$stron) ? $razem % $na_stronie: $na_stronie; $stop+=$start;
    echo "<table style='border: none'><tr>";
    for ($x=$start;$x<$stop;$x++){
        if (!($x % KOLUMN)) echo "</tr><tr>";
    echo "<td><a href=\"".$album[$x]."\" target=\"_blank\"><img src=\"../mini.php?fotka="."{$album[$x]}\"></a>";
        list($info)=explode('.',basename($album[$x]));
    if(file_exists(KATALOG_ZDJEC.$info.".txt")){
        $plik=fopen(KATALOG_ZDJEC.$info.".txt","r");
        $opis=fgets($plik);
        fclose($plik);
        echo "<br>$opis";
    }
    echo "</td>";
    }
    echo "</tr><table>";
    if ($stron>1){
    echo "<br>";
    echo "Strona: "; for($x=1;$x<=$stron;$x++) {
        if ($pokaz_strone==$x){echo "<b> $x </b>";} else {echo "<a href=\"indexgalerii.php?pokaz_strone=$x\"> $x </a>";}
    }
    }
       
?>


oraz mini.php ktory jest odpowiedzialny za miniaturyzowanie obrazkow
Kod: Zaznacz cały
<?php
   
    /*
   Ten plik jako wynik swojego dzialania bedzie generowal miniaturke
   zdjecia przekazanego jako parametr wywolania skryptu
   (np. http://sliwek.one.pl/mini.php?fotka=obrazek.jpg), dlatego tez
   musimy poinformowac przegladarde aby traktowal go jak plik graficzny.
    */
    header('Content-type: image/jpeg');
   
    /* Definiujemy wymiary miniaturki */
    define ('SZEROKOSC',80);
    define ('WYSOKOSC',80);
   
    /* Otwieramy orginalne zdjecie przekazane w adresie strony */
    $orginal=imagecreatefromjpeg($_GET['fotka']);
   
    /*
       Pobieramy wymiary orginalnego zdjecia, sa one potrzebne dla
       dla wygenerowania pomniejszonej wersji.
    */
    list($org_szer,$org_wys)=getimagesize($_GET['fotka']);
   
    /* Tworzymy nowy obraz o ustalonych wczesniej wymiarach miniaturki */
    $minitaturka=imagecreatetruecolor(SZEROKOSC,WYSOKOSC);
   
    /*
   Przy pomocy tej funkcji tworzymy miniature pliki graficznego.
   Jesli dysponujemy odpowiednio szybka maszyna, lepszy efekt uzyskamy
   zamieniajac ja na:
   
   imagecopyresampled($minitaturka,$orginal,0,0,0,0,SZEROKOSC,WYSOKOSC,$org_szer,$org_wys);
   
   ktora oprocz zmniejszenia fizycznych rozmiarow, wygladza krawedzie oraz poprawia ostrosc.
    */
    imagecopyresized($minitaturka,$orginal,0,0,0,0,SZEROKOSC,WYSOKOSC,$org_szer,$org_wys);
   
    /* Gotowa miniature wysylamy do przegladarki  */
    imagejpeg($minitaturka,NULL,100);   
?>


Niestety galeria wyświetla mi tylko pliki jpg, a chcialbym dodatkowo zeby wyswietlala pliki Gif i png. Jak mam wiec edytowac kod zeby dzialo to rowniez z gifami i png?
Moja stronka z około 31 000 avatarami, zapraszam ;]
Obrazek
Avatar użytkownika
tbfaNone specified
Stały bywalec
Stały bywalec
 
Posty: 82
Dołączył(a): 2007-08-16, 20:39:01
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [PHP] Gify i Png

Postprzez BlueMan » 2007-08-26, 20:00:55

Nie możesz zmniejszać animowanych gifów w locie, tak jak to robi ten skrypt.
Statyczne gify - jak najbardziej.

Kod: Zaznacz cały
    header('Content-type: image/jpeg');

To daj w jakimś warunku if() którym będziesz rozróżniać rozszerzenie pliku z $_GET['fotka'] i wstawiał odpowiednie typy plików (image/gif, image/png - jak się nie mylę)

A potem na końcu ten sam podział if() robisz dla
tbfa napisał(a): imagejpeg($minitaturka,NULL,100);

I powinno działać... .
Czytaj regulamin - unikniesz wielu problemów.
Korzystajcie z załączników na forum aby pliki nie ginęły w przyszłości w zewnętrznych serwisach.
Avatar użytkownika
BlueManMale
Administrator
Administrator
 
Posty: 19105
Dołączył(a): 2004-05-26, 17:34:59
Lokalizacja: Dabrowa Górn.
Podziękował : 6 razy
Otrzymał podziękowań: 5 razy
Imię: Szymon


  • Inne

Powrót do Programowanie

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 75 gości

cron