$background_color = ImageColorAllocate($im1, 255,255,255);
改为
$background_color = imagecolorclosest($im1, 255,255,255);函数ImageColorAllocate建立一个颜色项,该项并不覆盖原有的颜色项
就是说图片中的原有的(255,255,255)与新建的(255,255,255)不是同一个颜色函数imagecolorclosest取得图片中与指定颜色最接近的颜色的索引值
只有用这个索引才能设置(255,255,255)为透明
改为
$background_color = imagecolorclosest($im1, 255,255,255);函数ImageColorAllocate建立一个颜色项,该项并不覆盖原有的颜色项
就是说图片中的原有的(255,255,255)与新建的(255,255,255)不是同一个颜色函数imagecolorclosest取得图片中与指定颜色最接近的颜色的索引值
只有用这个索引才能设置(255,255,255)为透明
header ("Content-type: image/gif");
$im1 = imagecreatefromjpeg ("01.jpg");
$im2 = imagecreatefromjpeg ("ht2.jpg");
$background_color = ImageColorclosest($im1, 255,255,255);
imagecolortransparent($im1,$background_color);imagecopy($im2,$im1,0,0,0,0,100,100);imagejpeg ($im2);
imagedestroy ($im2);
?>
不好意思,写错了!
应该是imagecolorresolve函数不过你看看手册也就知道了
<?php
function extname($filename) {
return strtolower(substr(strrchr($filename,"."),1));
}function load_image($image) {
switch(extname($image)) {
case "png":
$im = ImageCreateFromPNG($image);
break;
case "jpg":
case "jpeg":
$im = @ImageCreateFromJPEG($image); // 载入原图
break;
case "gif":
$im = ImageCreateFromGIF($image); // 载入原图
break;
}
return $im;
}function create_image($width,$height,$red=255,$green=255,$blue=255) {
if(function_exists("imagecreatetruecolor"))
$im = imagecreatetruecolor($width,$height); // 创建目标图
else
$im = imagecreate($width,$height); // 创建目标图 $back = ImageColorAllocate($im,$red,$green,$blue); // 填充的背景色
imagefill($im,0,0,$back);
return $im;
}function set_transparent($im,$index) {
imagecolortransparent($im,$index);
}$image = "csdn.gif"; // 原图
$thumbw = 200; // 期望的目标图宽
$thumbh = 80; // 期望的目标图高$size = getimagesize($image); // 获取原图大小
$thumbw = $size[0]*2;
$thumbh = $size[1]*2;
$scale = min($thumbw/$size[0], $thumbh/$size[1]); // 计算缩放比例
$width = (int)($size[0]*$scale);
$height = (int)($size[1]*$scale);
$deltaw = (int)(($thumbw - $width)/2);
$deltah = (int)(($thumbh - $height)/2);$src_img = load_image($image);
$dst_img = create_image($thumbw, $thumbh,255,240,240); //建立一个肉红色的图片
$c = imagecolorat($src_img,$size[0]/2,$size[1]*0.8);
//set_transparent($src_img,imagecolorat($src_img,$size[0]/2,$size[1]*0.8)); //指定月牙壮部分透明
set_transparent($src_img,imagecolorresolve($src_img,255,255,255));//指定白色透明if(function_exists("ImageCopyResampled"))
ImageCopyResampled($dst_img, $src_img, $deltaw, $deltah, 0, 0, $width, $height, ImageSX($src_img),ImageSY($src_img)); // 复制图片
else
ImageCopyResized($dst_img, $src_img, $deltaw, $deltah, 0, 0, $width, $height, ImageSX($src_img),ImageSY($src_img)); // 复制图片imagejpeg($dst_img); // 创建图片
ImageDestroy($src_img);
ImageDestroy($dst_img);
?>
<?php
header ("Content-type: image/gif");
$im1 = imagecreatefromjpeg ("00.jpg");
$im3 = imagecreate(500,500);
$back = ImageColorAllocate($im3,0,255,0); // 填充的背景色
imagefill($im3,0,0,$back);$background_color1 = imagecolorresolve($im1, 255,255,255);
imagecolortransparent($im1,$background_color1);
imagecopy($im3,$im1,0,0,0,0,150,120);imagejpeg ($im3);
imagedestroy ($im3);
imagedestroy($im1);?>
<?php
header ("Content-type: image/gif");
$im1 = imagecreate(100,100);
$front = ImageColorAllocate($im1,0,0,0);
$back1 = ImageColorAllocate($im1,255,255,255); // 填充的背景色
imagefill($im1,0,0,$back1);
imagestring($im1,1,1,1,"123",$front);$im3 = imagecreate(500,500);
$back2 = ImageColorAllocate($im3,0,255,0); // 填充的背景色
imagefill($im3,0,0,$back2);$background_color1 = imagecolorresolve($im1, 255,255,255);
imagecolortransparent($im1,$background_color1);
imagecopy($im3,$im1,0,0,0,0,100,100);imagejpeg ($im3);
imagedestroy ($im3);
imagedestroy($im1);?>