Avatar billede straszek Praktikant
13. juli 2005 - 17:11 Der er 1 løsning

image resize funktion

Jeg har gennem lang tid brugt nedenstående funktion til at resize billedere på mit site - funktionen virker som regel, men nogen gang går det ged i det, billederne får mærkelige farver osv.

Er der nogen der kender en anden mere upto date funktion jeg kan bruge?

<?php

if (!$max_width)
  $max_width = 130;
if (!$max_height)
  $max_height = 190;

$size = GetImageSize($image);
$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($image);
$dst = imagecreatetruecolor($tn_width,$tn_height);
ImageCopyResized($dst, $src, 0, 0, 0, 0,
    $tn_width,$tn_height,$width,$height);
header("Content-type: image/jpeg");
ImageJpeg($dst, null, -1);
ImageDestroy($src);
ImageDestroy($dst);

?>
Avatar billede myplacedk Nybegynder
13. juli 2005 - 18:29 #1
Det er nok en fejl i GD (som laver selve grafik-arbejdet), og ikke dit script. Tjek hvilken version af PHP og GD du bruger (det afslører phpinfo() med fornøjelse), måske er det tid til en opgradering.

Det kan måske også være input-filerne der er problemer med, du kan evt. uploade nogle stykker et sted, hvor vi kan se dem.
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