[ Marko Medojević @ 20.10.2008. 15:01 ] @
Ćao!

Kreirao sam funkciju koja priam putanju do fajla i kreira image objekat.
Kod funkcije:
Code:

public function imgLoad($filePath)
{
    $image = @imagecreatefrompng($filePath);
    if(!$image)
    {
        $image = @imagecreatefromgif($filePath);
        if(!$image)
        {
            $image = @imagecreatefromjpeg($filePath);
            if(!$image)
            {
                throw new Exception('NEUSPELO CITANJE');
            }
        }
    }
    imagedestroy($image);
}

Znači korisnik uploaduje sliku, a funkcija redom pokušava da kreira odbjekat(png, jpg, gif), a ako ništa ne uspe baca exception! Da li postoji prostiji način da se ovako nešto uradi, tipa neka funkcija koja kreira objekat nezavisno od tipa slike, ili mora ovako?

Unapred hvala!
[ dakipro @ 20.10.2008. 15:18 ] @
Za tvoju informaciju, imagecreatefrompng (a i ove druge) ne vraca objekat ;)
Mozda bolje da napises sta imas u planu dalje da radis sa slikom i zasto ti je ovo potrebno, mozda ti ovo uopste i ne treba.
[ Marko Medojević @ 20.10.2008. 16:02 ] @
Treba mi za promenu velicine slika. Slike se uploaduju preko forme i mogu biti bilo kojih velicina i formata, ali izlazna slika mora biti tačne veličine(npr. 200x300) i samo jpg.
[ Marko Medojević @ 20.10.2008. 16:53 ] @
Evo da budem još bliži!
Ovo je funkcija za resize:
Code:
<?php

// This is the temporary file created by PHP
$uploadedfile = $_FILES['uploadfile']['tmp_name'];

// Create an Image from it so we can do the resize
$src = imagecreatefromjpeg($uploadedfile);

// Capture the original size of the uploaded image
list($width,$height)=getimagesize($uploadedfile);

// For our purposes, I have resized the image to be
// 600 pixels wide, and maintain the original aspect
// ratio. This prevents the image from being "stretched"
// or "squashed". If you prefer some max width other than
// 600, simply change the $newwidth variable
$newwidth=600;
$newheight=($height/$width)*600;
$tmp=imagecreatetruecolor($newwidth,$newheight);

// this line actually does the image resizing, copying from the original
// image into the $tmp image
imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);

// now write the resized image to disk. I have assumed that you want the
// resized, uploaded image file to reside in the ./images subdirectory.
$filename = "images/". $_FILES['uploadfile']['name'];
imagejpeg($tmp,$filename,100);

imagedestroy($src);
imagedestroy($tmp); // NOTE: PHP will clean up the temp file it created when the request
// has completed.
?> 


Kao što se i vidi, ona kreira resurs preko imagecreatefromjpeg funkcije, što znači da se podrazumeva da korisnik uploaduje JPG fajl(skripta puca sa PNG i GIF).
Ja sam red "$src = imagecreatefromjpeg($uploadedfile);" zamenio sa kodom iz prve poruke, pa me zanima da li je to ok rešenje ili ima neko kraće(tipa neki univerzalni imagecreatefrom)?

Nadam se da sam sada bio jasan. ;)
[ Nemanja Avramović @ 20.10.2008. 19:58 ] @
Ja koristim funkciju sličnu onoj koju si napisao u prvoj poruci ove teme. Ne verujem da postoji neka ugrađena funkcija koja kreira sliku od bilo kog tipa fajla (naravno, postoji mogućnost da grešim...)
[ Marko Medojević @ 20.10.2008. 21:59 ] @
@Nemanja Avramović:

Hvala!