Avatar billede zac Nybegynder
08. februar 2005 - 16:45 Der er 5 kommentarer og
1 løsning

Forstår ikke mekanikken i billed behandling - imagecreatefromjpeg

Der er upload af et billede via form, og herfra $enfil.
Update af database med filnavn og fil gemt i mappe går fint - copy($enfil, "path").

I en php bog har jeg følgende skript til billed resize. Men der kommer kun krims krams tekststreng...

$image erstattet med min $enfil

if (!$max_width)
  $max_width = 80;
if (!$max_height)
  $max_height = 60;

$size = GetImageSize($enfil);
$width = $size[0];
$height = $size[1];

$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;

if ( ($width <= $max_width) && ($height <= $max_height) ) {
  $tn_width = $width;
  $tn_height = $height;
}
else if (($x_ratio * $height) < $max_height) {
  $tn_height = ceil($x_ratio * $height);
  $tn_width = $max_width;
}
else {
  $tn_width = ceil($y_ratio * $width);
  $tn_height = $max_height;
}

$src = ImageCreateFromJpeg($enfil);
$dst = ImageCreate($tn_width,$tn_height);
ImageCopyResized($dst, $src, 0, 0, 0, 0,
    $tn_width,$tn_height,$width,$height);
// header("Content-type: image/jpeg"); // se nedenfor...
ImageJpeg($dst, null, -1);
ImageDestroy($src);
ImageDestroy($dst);

Header image/jpeg er sat øverst, men kan man det samtidig med text/html:
<META http-equiv=content-type content=text/html; content=image/jpeg; charset=iso-8859-1> ??

Og linien
ImageJpeg($dst, null, -1);
giver som sagt kun en tekststreng, ikke noget billede.
Hvad er der galt?
Avatar billede bojo Nybegynder
08. februar 2005 - 17:00 #1
Jeg er ikke en ørn til det heller ( har faktisk lige prøvet for 1. gang ) - dette ser ud til at virke:

ImageJpeg($dst, "nye_fil.jpg", 100);

manualen siger:

int imagejpeg ( resource image [, string filename [, int quality]] )
Avatar billede zac Nybegynder
08. februar 2005 - 17:11 #2
Forstår ikke, hvad string filename betyder - navn på nye, tilpassede fil?

Har prøvet med:
ImageJpeg($dst, $ny_enfil, 100);

Men får nu: (!!)

Warning: imagecopyresized(): supplied argument is not a valid Image resource in /home/www/uploads/upload_forside.php on line 82
ÿØÿàJFIFÿþ Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/www/uploads/upload_forside.php on line 86
Avatar billede kasperbn Nybegynder
08. februar 2005 - 17:34 #3
Hvis en attribut står mellem to [] må man selv vælge om man vil benytte det. Derfor kan du prøve med:

ImageJpeg($dst);
Avatar billede zac Nybegynder
08. februar 2005 - 17:43 #4
GD library er enablet, men:

php_gd skal være slået til i php.ini, det var den ikke (se http://www.onlinetools.org/articles/creating_thumbnails_all.php).

Prøver om det hjælper...
Avatar billede zac Nybegynder
10. februar 2005 - 16:05 #5
det gjorde det ikke...
Avatar billede zac Nybegynder
10. februar 2005 - 16:06 #6
lukker spm., er for løst formuleret, prøver måske mere præcist,,,
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester