Пример #1
0
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);
}
Пример #2
0
    $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");
Пример #3
0
<?php