public function updateImage1($picname,$path,$prix="s_",$maxwidth=104,$maxheight=104){ //1. 定义获取基本信息 $path = rtrim($path,"/"); //去除后面多余的"/" $info1 = getimagesize($path."/".$picname); //获取图片文件的属性信息 $width = $info1[0]; //原图片的宽度 $height = $info1[1]; //原图片的高度 //2. 计算压缩后的尺寸 if(($maxwidth/$width)<($maxheight/$height)){ $w=$maxwidth;//新图片的宽度 $h=($maxwidth/$width)*$height;//新图片的高度 }else{ $h=$maxheight;//新图片的宽度 $w=($maxheight/$height)*$width;//新图片的高度 } //3. 创建图像源 $newim =imagecreateTrueColor($w,$h); //新图片源 //根据原图片类型来创建图片源 switch($info1[2]){ case 1: //gif格式 $srcim = imageCreateFromgif($path."/".$picname); break; case 2: //jpeg格式 $srcim = imageCreateFromjpeg($path."/".$picname); break; case 3: //png格式 $srcim = imageCreateFrompng($path."/".$picname); break; case 6: //bmp格式 $srcim = imageCreateFrompng($path."/".$picname); break; default: exit("无效的图片格式!"); break; } //4. 执行缩放处理 imagecopyresampled($newim,$srcim,0,0,0,0,$w,$h,$width,$height); //5. 输出保存绘画 //header("Content-Type:".$info['mime']); //设置响应类型为图片格式 //根据原图片类型来保存新图片 switch($info1[2]){ case 1: //gif格式 imagegif($newim,$path."/".$prix.$picname); //保存 //imagegif($newim);//输出 break; case 2: //jpeg格式 imagejpeg($newim,$path."/".$prix.$picname); //imagejpeg($newim); break; case 3: //png格式 imagepng($newim,$path."/".$prix.$picname); //imagepng($newim); break; case 6: //bmp格式 imagebmp($newim,$path."/".$prix.$picname); break; } //6. 销毁资源 imageDestroy($newim); imageDestroy($srcim); }
$hex1 = $colour[0]; $hex2 = $colour[1]; $hex3 = $colour[2]; function image_colorize4(&$img, $rgb) { imageTrueColorToPalette($img, true, 256); $numColors = imageColorsTotal($img); for ($x = 0; $x < $numColors; $x++) { list($r, $g, $b) = array_values(imageColorsForIndex($img, $x)); $grayscale = ($r + $g + $b) / 3 / 0xff; imageColorSet($img, $x, $grayscale * $rgb[0], $grayscale * $rgb[1], $grayscale * $rgb[2]); } } $color = array($hex1, $hex2, $hex3); $lay4 = "badges/templates/{$arr4['0']}.gif"; $img = imageCreateFromgif($lay4); image_colorize4($img, $color); if (file_exists("badges/templates/{$arr4['0']}_{$arr4['0']}.gif")) { $olay = imagecreatefromgif("badges/templates/{$arr4['0']}_{$arr4['0']}.gif"); imagecopymerge($img, $olay, 0, 0, 0, 0, $h, $w, 100); imagecopy($im, $img, $p, $pp, 0, 0, $h, $w); } else { imagecopy($im, $img, $p, $pp, 0, 0, $h, $w); } } imagegif($im); $badgedata = $_GET['badge']; if (file_exists("badge-fill/{$badgedata}.gif")) { imagedestroy($im); } else { imagegif($im, "badge-fill/{$badgedata}.gif");
<?php