Gå til innhold

Får ikke til å "crop" et bilde med PHP og GD


Anbefalte innlegg

Halla.

 

Nå står jeg litt fast her..! Jeg har nemlig et bilde som jeg vil kutte sidene på, kalles crop på engelsk. Husker ikke hva det kalles på norsk.

 

Her er et eksempel om du ikke skjønner helt hva jeg mener:

t_343.jpg

 

og det som er markert her skal være det ferdige resultatet, alt rundt skal bort.

t_344.jpg

 

Hva jeg egentlig er ute etter er et script som bruker PHP, og GD.

Jeg ønsker at et bilde, uavhengig av størrelse, skal bli kuttet slik at jeg sitter igjen med den midterste delen av bildet. 80 x 110 px

 

Håper noen kan hjelpe meg,

på forhånd tusen takk,

Morten André

 

PS: Dette er faktisk min første post her på forumet :-)

Lenke til kommentar
Videoannonse
Annonse

Har laget en funksjon som gjør susen,

<?php
function crop_image($img){
$new_x = 80; //ønsket bredde
$new_y = 110; //Ø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)){
 //Ugyldig filtype, gi feilmelding og avslutt funksjonen
 echo $img . ' Er ikke en godkjent bildefil';
 return false;	
}

if($filetype == 'jpg') $filetype = 'jpeg';

//hent ut bildet og lagre i cache
$src = call_user_func('imagecreatefrom'.$filetype, $img);

$old_x = imagesx($src);
$old_y = imagesy($src);

//regn ut hjørnene av bildene
$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");
//Kopier midtre del av bildet
imagecopyresampled($new_img, $src, 0, 0, $cpy_x, $cpy_y, $new_x, $new_y, $new_x, $new_y);
//Send bildet
imagepng($new_img);

//Tøm cache
imagedestroy($new_img);
imagedestroy($src);  


}

$img = $_GET['img'];
header("Content-type: image/png");
crop_image($img);
?>

 

Som scriptet er satt opp nå trenger du bare å lagre hele scriptet som f.eks crop.php

 

bruk det da slik i html koden der bildet skal vises:

 

<img src="crop.php?img=et_bilde.php" />

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...