Avatar billede cortx Nybegynder
24. marts 2008 - 05:44 Der er 7 kommentarer og
1 løsning

Skalering af billeder

Hej Eksperter!

Findes der et script der kan skalere og beskære billeder så de får den rigtigt størrelse og ikke bliver trykket sammen, men ALLE bliver fx 200x150?

Det er fordi at jeg skal uploade billeder og samtidig skal den lave thumbnails .. men da nogle billeder "står på højkant" og andre "ligger ned", kan jeg jo ikke bare sætte alle thumbnails til at blive resized til 200x150, fordi så bliver nogen trykket sammen og det er ikke pænt..

Men alle SKAL være 200x150 - så er der et script der kan sørge for at resize billedet og samtidig beskære det så alle er samme størrelse og ikke trykket sammen.

På forhånd tak,
Rasmus Henriksen
Avatar billede jakobdo Ekspert
24. marts 2008 - 08:34 #1
Jeg tror du kan genbruge dette eksempel:
http://www.codebreaker.dk/exp/820952exp.php

Og her er koden:

<?php
//http://www.eksperten.dk/spm/820952

function resizeCenter( $filename, $newfilename, $max_width_or_height, $quality=8                                                                                                                    5 )
{
  $ext = strtolower( pathinfo( $filename, PATHINFO_EXTENSION ) );
  switch($ext)
  {
    case 'jpeg':
    case 'jpe':
    case 'jpg':
      $srcim = imagecreatefromjpeg( $filename );
      break;
    case 'gif':
      $srcim = imagecreatefromgif( $filename );
      break;
    case 'png':
      $srcim = imagecreatefrompng( $filename );
      break;
    default:
      return false;
  }
  $ow = imagesx( $srcim );
  $oh = imagesy( $srcim );

        $original_min_width_or_height = min($ow,$oh);

  $crop_width  = floor(($ow - $original_min_width_or_height)/2);
  $crop_height = floor(($oh - $original_min_width_or_height)/2);

  $dstim = imagecreatetruecolor( $max_width_or_height, $max_width_or_height );
  imagecopyresampled( $dstim, $srcim, 0, 0, (0+$crop_width), (0+$crop_height), $                                                                                                                    max_width_or_height, $max_width_or_height, ($ow-($crop_width*2)), ($oh-($crop_he                                                                                                                    ight*2)) );

  switch($ext)
  {
    case 'jpeg':
    case 'jpe':
    case 'jpg':
      imagejpeg( $dstim, $newfilename, $quality );
      break;
    case 'gif':
      imagegif( $dstim, $newfilename );
      break;
    case 'png':
      $png_q = floor( abs( $quality / 10 - 9.9 ) );
      imagepng( $srcim, $newfilename, $png_q );
      break;
    default:
      return false;
  }
  imagedestroy( $dstim );
  imagedestroy( $srcim );
  return file_exists($newfilename);
}

$img    = '649278.jpg';
$new_img = '820952exp.jpg';

echo '<h1>Original Picture</h1>';
echo '<img src="'.$img.'" alt="'.$img.'" />';

echo '<h1>Cropped/Resized Picture</h1>';
if(resizeCenter($img,'820952exp.jpg',100)){
        echo '<img src="'.$new_img.'" alt="'.$new_img.'" />';
}else{
        echo 'Crop and Resize failed';
}

?>
Avatar billede cortx Nybegynder
24. marts 2008 - 13:13 #2
Ser lovende ud - uploader den der også til roden den ligger i? Hvis ja hvordan definere jeg hvor den skal smides hen (upload/billeder/thumbs)
Avatar billede cortx Nybegynder
24. marts 2008 - 13:19 #3
Nej det virker - perfekt - men kan jeg ikke gøre kvaliteten bedre? Det er ekstremt dårlig kvalitet..
Avatar billede cortx Nybegynder
24. marts 2008 - 13:23 #4
Min fejl - havde lavet en defination på $new_width = "299px", men glemt at udskifte 100 med $new_width i kalde-funktionen, så når jeg udskrev mine thumbs med 299px bred, hev den fra 100 til 299 :P

Smid et svar - det helt perfekt!
Avatar billede jakobdo Ekspert
24. marts 2008 - 13:29 #5
Du kan styre kvaliteten her: $quality=85
0 = dårligst
100 = bedst

og et svar.
Avatar billede cortx Nybegynder
24. marts 2008 - 13:37 #6
Du fik point - hvad er standard kvalitet for et billede?
Avatar billede jakobdo Ekspert
24. marts 2008 - 13:40 #7
Standard for et jpeg vil jeg mener er omkring 80-90.

Og takker for point.
Avatar billede olebole Juniormester
24. marts 2008 - 15:01 #8
<ole>

Hvad du vælger af quality, afænger helt af billedet,der skal komprimeres - der er ingen standard-værdi. Meget ofte er 60-65 fint - sjældne gange må du højere op  =)

/mvh
</bole>
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