Avatar billede hoejgaard Juniormester
27. juni 2005 - 17:24 Der er 6 kommentarer og
1 løsning

ændre baggr. farve

Hej.
Jeg har et script der laver udsnit af billeder, men når billedet  er mindre end $imagethumbsize så kommer der en sort baggrund. Er det ikke muligt at ændre den til hvid, og hvis ja, hvordan gør jeg det ???

<?php
$filename = "/customers/sti.dk/sti.dk/httpd.www/test/".$_GET['filnavn'];
$info = getimagesize( $filename );
$percent = 0.5; // if you want to scale down first
$imagethumbsize = 50; // thumbnail size (area cropped in middle of image)
switch ( $info[2] )
{
  case 1:
    // gif
   
// Content type
header('Content-type: image/gif');

// Get new dimensions
list($width, $height) = getimagesize($filename);
if ($width<100 or $height<100) { 
$new_width = $width ;
$new_height = $height ; }
else {

$new_width = $width * $percent;
$new_height = $height * $percent;  }
// Resample
$image_p = imagecreate($imagethumbsize , $imagethumbsize);  // true color for best quality
$image = imagecreatefromgif($filename);


// basically take this line and put in your versin the -($new_width/2) + ($imagethumbsize/2) & -($new_height/2) + ($imagethumbsize/2) for
// the 2/3 position in the 3 and 4 place for imagecopyresampled
// -($new_width/2) + ($imagethumbsize/2)
// AND
// -($new_height/2) + ($imagethumbsize/2)
// are the trick
imagecopyresampled($image_p, $image, -($new_width/2) + ($imagethumbsize/2), -($new_height/2) + ($imagethumbsize/2), 0, 0, $new_width , $new_height , $width, $height);
break;

  case 2:
    // jpeg

// Content type
header('Content-type: image/jpg');

// Get new dimensions
list($width, $height) = getimagesize($filename);
if ($width<100 or $height<100) { 
$new_width = $width;
$new_height = $height; }
else {

$new_width = $width * $percent;
$new_height = $height * $percent;  }
// Resample
$image_p = imagecreatetruecolor($imagethumbsize , $imagethumbsize);  // true color for best quality
$image = imagecreatefromjpeg($filename);


// basically take this line and put in your versin the -($new_width/2) + ($imagethumbsize/2) & -($new_height/2) + ($imagethumbsize/2) for
// the 2/3 position in the 3 and 4 place for imagecopyresampled
// -($new_width/2) + ($imagethumbsize/2)
// AND
// -($new_height/2) + ($imagethumbsize/2)
// are the trick
imagecopyresampled($image_p, $image, -($new_width/2) + ($imagethumbsize/2), -($new_height/2) + ($imagethumbsize/2), 0, 0, $new_width , $new_height , $width, $height);



    break;
  default:
    die( 'Ikke understøttet. Vi tager kun imod jpg og gif!' );
}

switch ( $info[2] )
{
  case 1:
    imagegif($image_p);
    break;
  case 2:
    imagejpeg($image_p, null, 100);
    break;
}



?>
Avatar billede jakobdo Ekspert
27. juni 2005 - 22:26 #1
Jeg ved ikke om du kunne fylde $image_p med farven hvid inden du sampler et lille pic over i.

F.eks.: (for jpeg)
$image_p = imagecreatetruecolor($imagethumbsize , $imagethumbsize);  // true color for best quality
$white = imagecolorallocate($image_p, 0xFF, 0xFF, 0xFF);
imagefill($image_p, 0, 0, $white);
$image = imagecreatefromjpeg($filename);

og for gif:
$image_p = imagecreate($imagethumbsize , $imagethumbsize);  // true color for best quality
$white = imagecolorallocate($image_p, 0xFF, 0xFF, 0xFF);
imagefill($image_p, 0, 0, $white);
$image = imagecreatefromgif($filename);
Avatar billede jakobdo Ekspert
27. juni 2005 - 22:26 #2
PS: Har altså ikke testet denne løsning. Men prøv og giv mig gerne en melding!
Avatar billede hoejgaard Juniormester
28. juni 2005 - 20:49 #3
ja checker det nu !
Avatar billede jakobdo Ekspert
28. juni 2005 - 21:15 #4
Virkede det så?
Avatar billede hoejgaard Juniormester
28. juni 2005 - 21:26 #5
det virker bare. læg et svar jakobdo
Avatar billede jakobdo Ekspert
28. juni 2005 - 21:47 #6
Damn, nogle gange er jeg faktisk ret god! (når jeg selv skal sige det) :o)
Avatar billede hoejgaard Juniormester
28. juni 2005 - 23:08 #7
syntes jeg også  ;-)
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

IT-JOB

Capgemini Danmark A/S

AI/Data Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Senior specialister (Datacenter Network) til Forsvarets nye Digitale Backbone

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer