Ildflue Skrevet 13. november 2007 Del Skrevet 13. november 2007 (endret) Heisann jobber med å lage et galleri og der ønsker jeg at alle bildene skal vises med like høyde og like bredde hvor man kan trykke på hvert enkelt bilde for å åpne det. Problemet er jo at alle bilder har forskjellig størrelse og derfor så er dette litt vanskelig, det jeg leter etter er en måte å "crop"'e (kjenner bare dette navnet på dette) bildene til å vise akkurat 100px høyde og 150px bredde uannsett størrelsen på bilde. Dette uten at bilde "strekkes" ut av sin størrelsesratio. Så det blir jo på en måte en zoom for å kunne plassere alle bilder på akkurat 100px høyde og 150px bredde uannsett tidligere størrelse. Bruker dette nå: $filename = $_GET['image']; $ext = $_GET['type']; $width = 150; $height = 100; header('Content-type: image/jpeg'); list($width_orig, $height_orig) = getimagesize($filename); if ($width && ($width_orig > $width)) { $height = ($width / $width_orig) * $height_orig; } else if ($height_orig > $height ){ $width = ($height / $heigth_orig) * $width_orig; } else { $width = $width_orig; $height = $height_orig; } $image_p = imagecreatetruecolor($width, $height); if($ext == 'jpg') $image = imagecreatefromjpeg($filename); if($ext == 'gif') $image = imagecreatefromgif($filename); if($ext == 'png') $image = imagecreatefrompng($filename); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); imagejpeg($image_p, null, 100); imagedestroy($image_p); Endret 13. november 2007 av thomas_c24 Lenke til kommentar
Ildflue Skrevet 13. november 2007 Forfatter Del Skrevet 13. november 2007 (endret) Løste problemet på egenhånd, sydde sammen koden min med en crop-kode som jeg fant her på forumet, den som jeg fant bare crop'a til den størrelsen du ville ha, så om du hadde et stort bilde så fikk du bare en liten del av bildet. Mens det jeg nå har laget tilpasser først størrelsen slik at bredden eller høyden er riktig, så crop'er overskuddet. function crop_image($img){ $new_x = 150; //ønsket bredde $new_y = 100; //Ønsket høyde $allowed_filetypes = array('jpg', 'jpeg', 'png', 'gif'); $filetype = strtolower(substr(strrchr($img, '.'), 1)); //hent ut filtypen if(!in_array($filetype, $allowed_filetypes)){ echo $img . ' Er ikke en godkjent bildefil'; return false; } if($filetype == 'jpg') $filetype = 'jpeg'; $src = call_user_func('imagecreatefrom'.$filetype, $img); list($width_orig, $height_orig) = getimagesize($img); $width = 150; $height = 100; if ($width && ($width_orig > $width)) { $height = ($width / $width_orig) * $height_orig; } else if ($height_orig > $height ){ $width = ($height / $heigth_orig) * $width_orig; } else { $width = $width_orig; $height = $height_orig; } $temp_img = imagecreatetruecolor($width, $height) or die("En ukjent feil oppstod"); imagecopyresampled($temp_img, $src, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); $old_x = imagesx($temp_img); $old_y = imagesy($temp_img); $cpy_x = ($old_x / 2) - ($new_x / 2); $cpy_y = ($old_y / 2) - ($new_y / 2); $new_img = imagecreatetruecolor($new_x, $new_y) or die("En ukjent feil oppstod"); imagecopyresampled($new_img, $temp_img, 0, 0, $cpy_x, $cpy_y, $new_x, $new_y, $new_x, $new_y); imagepng($new_img); imagedestroy($temp_img); imagedestroy($new_img); imagedestroy($src); } $img = $_GET['image']; header("Content-type: image/png"); crop_image($img); Endret 13. november 2007 av thomas_c24 Lenke til kommentar
madompa Skrevet 14. november 2007 Del Skrevet 14. november 2007 (...) "crop"'e (kjenner bare dette navnet på dette)(...) Beskjære Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå