Results 1 to 4 of 4
  1. #1
    Join Date
    Sep 2003
    Location
    Montreal, Canada
    Posts
    373

    GD resize transparent GIF question

    Hello there,

    I have a slight problem.
    I'm using GD to resize some transparent gifs. And the way it displays the transparancy is bugging me.

    Instead of beeing transparent, it displays the black transparancy color.

    Is there a way to make it display a white background whenever there is transparancy? Instead of black?

    Here is the code:

    PHP Code:
    <?php

    $image 
    $_GET['i'];
    $max_width $_GET['w'];
    $max_height $_GET['h'];

    $picture_location $image;

    $picture_save str_replace($image, array(".jpg"".gif"".png"), ".temp");

    $im_size GetImageSize $picture_location);
    $imageWidth $im_size[0];
    $imageHeight $im_size[1];

    if (
    eregi('.jpg'$picture_location)) { //If file is a JPG
      
    $im2 ImageCreateFromJPEG($picture_location);
    } elseif (
    eregi('.gif'$picture_location)) { //If file is a GIF
      
    $im2 ImageCreateFromGIF($picture_location);
    } elseif (
    eregi('.png'$picture_location)) { //If file is a PNG
      
    $im2 ImageCreateFromPNG($picture_location);
    }

    $x_ratio $max_width $imageWidth;
    $y_ratio $max_height $imageHeight;

    if ( (
    $imageWidth <= $max_width) || ($imageHeight <= $max_height) ) {
      
    $tn_width $imageWidth;
      
    $tn_height $imageWeight;
    }

    if ((
    $x_ratio $imageHeight) < $max_height) {
      
    $tn_height ceil($x_ratio $imageHeight);
      
    $tn_width $max_width;
    }
    else {
      
    $tn_width ceil($y_ratio $imageWidth);
      
    $tn_height $max_height;
    }

    $im imageCreateTrueColor$tn_width$tn_height );

    ImageCopyResampled ($im,$im20000$tn_width$tn_height,$imageWidth$imageHeight);
    if (
    eregi('.jpg'$picture_location)) { //If file is a JPG
      
    Header("Content-type: image/jpeg");
      
    Imagejpeg($im,'',100); //to print to screen
      
    Imagejpeg($im,$picture_save,100);
    } elseif (
    eregi('.gif'$picture_location)) { //If file is a GIF
      
    Header("Contrnt-type: image/gif");
      
    Imagegif($im,'',100);
      
    Imagegif($im,$picture_save,100);
    } elseif (
    eregi('.png'$picture_location)) { //If file is a PNG
      
    Header("Content-type: image/png");
      
    Imagepng($im,'',100);
      
    Imagepng($im,$picture_save,100);
    }


    ImageDestroy($im);
    ImageDestroy ($im2);

    ?>
    Thank You

  2. #2
    Join Date
    Sep 2003
    Location
    Montreal, Canada
    Posts
    373
    Ops, wrong forum... Can mod move pelase.

  3. #3
    Join Date
    Feb 2005
    Location
    Australia
    Posts
    5,840
    Black is the default background colour for truecolour images. Try using imagefill to fill the new image with white before copyresampled.

  4. #4
    Join Date
    Sep 2003
    Location
    Montreal, Canada
    Posts
    373
    2 lines of code was all that it took
    Thanks alot foobic

    Problem: Solved

  5. Newsletters

    Subscribe Now & Get The WHT Quick Start Guide!

Related Posts from theWHIR.com

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •