Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Miniaturki PHP
northwest
post
Post #1





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


Witam serdecznie,
Potrzebuję zrobić generator miniaturek w PHP. chciałbym skryptem nakładać zrobioną już miniaturkę na pusty kwadrat i łączysz w jeden obrazek. (chce uzyskać w galerii jednakową wielkość miniaturek)

Wie ktoś może jak to ugryźć?

Łukasz
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
podgur
post
Post #2





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 6.04.2009

Ostrzeżenie: (0%)
-----


Kod
<?php
//Autor: Podgur

class ImageException extends Exception {
        public function __toString() {

            $ret = 'Powstal blad<br />
                    Komunikat: '.$this->getMessage().'<br />Plik: '.$this->getFile().'<br />Wiersz: '.$this->getLine();
            return $ret;
        }
    }
    
    class ImageClass
    {
        
        public $image;

        
        //konstruktor pobierający obrazek
        function __construct($url)
            {    
                //Sprawdzanie czy istnieje plik graficzny podany w konstruktorze
                if(!file_exists($url))
                    {
                            //W przypadku nie istnienia pliku
                            throw new ImageException('Podany plik nie istnieje');
                        }else{
                                
                                $this->image=$url;

                                }
                
                
                
                }

        public function resize($height,$width,$quality=60)
            {
                //Brak obsługi formatu png i bmp
                //Pobranie nazwy pliku
                $namefile = $this->image;
                //Wycięcie rozszerzenia
                $type = substr(strstr($namefile,'.'),1);
                //Tablica z formatami
                $rozszerzenia=array("jpg","jpeg","gif");
                
                if(!in_array($type,$rozszerzenia))
                {
                    throw new ImageException('Zly format pliku');
                    }
                //Nagłówek
                header("Content-Type: image/$type");
                
                switch($type){
                
                //Rozszerzenie *.jpg/jpeg
                case "jpg":
                $img = imagecreatefromjpeg($this->image);    
                break;
                
                //Rozszerzenie *.gif
                case "gif":
                $img = imagecreatefromgif($this->image);
                break;
                
                }
                
                $mini = imagecreatetruecolor($width,$height);
                
                //Stworzenie miniatury
                imagecopyresized($mini,$img,0,0,0,0,$width,$height,imagesx($img),imagesy($img));          
                
                
                switch($type){
                
                //Rozszerzenie *.jpg/jpeg
                case "jpg":
                imagejpeg($mini, "mini".rand(1,100)."_$namefile", 70);        
                break;
                
                //Rozszerzenie *.gif
                case "gif":
                imagegif($mini, "mini".rand(1,100)."_$namefile", 70);
                break;
                
                }
                
            }
    }

    try
        {
            //wywolanie obiektu klasy. Jako parametr dajemy scieżke, bądź nazwę pliku
            $photo = new ImageClass('a.jpg');
            
            //wywolanie metody resize()
            $photo->resize(1000,1000); //Przyjmuje 3 parametry: wysokosc,szerokosc i jakość miniatury
            }
    
    catch(ImageException $error)
        {
            echo $error;
            }
?>


Trochę sobie zmodyfikujesz i będzie dobrze.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 21:39