Ole Moe <ojo@ofir.dk> skrev i
dk.edb.internet.webdesign.serverside.php:
>1. Er der nogen af jer der kender en eller flere (gode) tutorails
>der omhandler klasser og PHP.
Der er vist nogle på PHPBuilder:
http://www.phpbuilder.com/columns/index.php3?cat=6&subcat=38
Men ellers synes jeg ikke, at det er overvældende, hvad jeg har kunnet
finde om emnet.
>2. Jeg er gået i gang med at lave min første klasse, men den vil
>ikke helt som jeg synes den skal...!
Din fejl har så vidt jeg kan se ikke noget at gøre med, at den bruges
inde i en klasse.
>Jeg har følgende, der behandler et billede og gør det større
>eller mindre. Det virker hvis jeg bruger det direkte i filen:
>class galleri {
>var $prefix, $sti, $fil, $max_size;
>
> function make_image($sti, $fil, $max_size, $prefix) {
> $this->image = $sti . $fil;
> $image_out = $sti . $prefix . $fil;
> $size = getimagesize($image);
> $src_width = $size[0];
> $src_height = $size[1];
> $type = exif_imagetype($image);
> if($type==2){
> $src_img = imagecreatefromjpeg($image);
> } else if($type==3){
> $src_img = imagecreatefrompng($image);
> }
>
> if($src_height <= $max_size || $src_width <= $max_size){
> $dest_height = $src_height;
> $dest_width = $src_width;
> } else {
> $faktor = $src_height/$max_size;
> $faktor1 = $src_width/$max_size;
> if($faktor < $faktor1){
> $faktor = $faktor1;
> }
> $dest_width = $size[0]/$faktor;
> $dest_height = $size[1]/$faktor;
> }
> $dst_img = imagecreatetruecolor($dest_width,$dest_height);
Her glemmer du at teste om du får oprettet en gyldig image-ressouce,
som du anvender som første parameter i næste linie:
> imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_width,
>$dest_height, $src_width, $src_height);
Derfor fremkommer denne warning:
>Warning: imagecopyresampled(): supplied argument is not a valid
>Image resource in F:\root\nys\galleri.class.php on line 32
> imagejpeg($dst_img, $image_out, 100);
> imagedestroy($dst_img);
Her får du så
>Warning: imagecopyresampled(): supplied argument is not a valid
>Image resource in F:\root\nys\galleri.class.php on line 32
idet du stadig ikke har en gyldig ressource.
> imagedestroy($src_img);
> }
>}
Jeg kan ikke lige gennemskue, HVOR det præcis går galt i din kode, men
noget er i hvert fald galt i denne linie:
> $size = getimagesize($image);
Her henter du jo størrelsen på et billeder, der ikke eksisterer. Måske
du skulle skrive
$size = getimagesize($this->image);
i stedet.
--
Jens Tønnesen -
http://www.pressefoto.dk