Avatar billede nikped Nybegynder
03. august 2010 - 15:06

Beskære billede med php

Hej

Jeg har fundet følgende kode:

-----------------------
crop.php indeholder
-----------------------
<?
header ("Content-type: image/jpeg");
$file_name=$_GET['f'];
$crop_height=$_GET['h'];
$crop_width=$_GET['w'];
$file_type= explode('.', $file_name);
$file_type = $file_type[count($file_type) -1];
$file_type=strtolower($file_type);

$original_image_size = getimagesize($file_name);
$original_width = $original_image_size[0];
$original_height = $original_image_size[1];

if($file_type=='jpg')
{
$original_image_gd = imagecreatefromjpeg($file_name);
}

if($file_type=='gif')
{ $original_image_gd = imagecreatefromgif($file_name);
}

if($file_type=='png')
{
$original_image_gd = imagecreatefrompng($file_name);
}

$cropped_image_gd = imagecreatetruecolor($crop_width, $crop_height);
$wm = $original_width /$crop_width;
$hm = $original_height /$crop_height;
$h_height = $crop_height/2;
$w_height = $crop_width/2;

if($original_width > $original_height )
{
$adjusted_width =$original_width / $hm;
$half_width = $adjusted_width / 2;
$int_width = $half_width - $w_height;

imagecopyresampled($cropped_image_gd ,$original_image_gd ,-$int_width,0,0,0, $adjusted_width, $crop_height, $original_width , $original_height );
}
elseif(($original_width < $original_height ) || ($original_width == $original_height ))
{
$adjusted_height = $original_height / $wm;
$half_height = $adjusted_height / 2;
$int_height = $half_height - $h_height;

imagecopyresampled($cropped_image_gd , $original_image_gd ,0,-$int_height,0,0, $crop_width, $adjusted_height, $original_width , $original_height );
}
else {

imagecopyresampled($cropped_image_gd , $original_image_gd ,0,0,0,0, $crop_width, $crop_height, $original_width , $original_height );
}
imagejpeg($cropped_image_gd);

?>

------------------------------------
Output filen cropped.php indeholder
------------------------------------
Original <br>
<img src="bmw.jpg" />
<p></p>
Cropped 100x100 (Width x Height)<br>
<img src="crop.php?h=100&w=100&f=bmw.jpg" />
<p></p>
Cropped 100x80<br>
<img src="crop.php?h=80&w=100&f=bmw.jpg" />
<p></p>
Cropped 100x50<br>
<img src="crop.php?h=50&w=100&f=bmw.jpg" />
<p></p>
Cropped 80x100<br>
<img src="crop.php?h=100&w=80&f=bmw.jpg" />
<p></p>
Cropped 50x100<br>
<img src="crop.php?h=100&w=50&f=bmw.jpg" />

--------------------------
Mit problem er
--------------------------
At jeg gerne vil croppe den således at jeg får et billede der er bredt og ikke så højt eksempelvis 100 width x 50 height. Problemet er at det så ikke bliver beskåret (cropped) men istedet gjort mindre og får en sort baggrund - er der nogle der kan hjælpe mig med at ændre på scriptet - jeg har forsøgt mig på lidt af hvert men er ikke så god så det resulterer bare i fejl.

I kan se eksemplet her:

http://www.yardbirds.dk/NY/crop/cropped.php

Pft

Nikolaj
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
Kurser inden for grundlæggende programmering

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