<?php
$respic = 'testspic.png';
$rebpic = 'testbpic.jpg';
//图片裁剪
$src_path = 'font.jpg';
//创建源图的实例
$src = imagecreatefromstring(file_get_contents($src_path));
//裁剪开区域左上角的点的坐标
$beginx = rand(50,200);
$beginy = 12;
//裁剪区域的宽和高
$width = 61;
$height = 68;
//将裁剪区域复制到新图片上,并根据源和目标的宽高进行缩放或者拉升
$new_image = imagecreatetruecolor($width, $height);
imagecopyresampled($new_image, $src, 0, 0, $beginx, $beginy, $width, $height, $width, $height);
//输出图片
imagepng($new_image,$respic);
imagedestroy($src);
imagedestroy($new_image);
//处理小图
$dst = $respic; //注意图片路径要正确
//得到原始图片信息
$dst_info = getimagesize($dst);
$dst_im =imagecreatefrompng($dst);
//水印图像
$src = "t3.png"; //注意路径要写对
$src_info = getimagesize($src);
$src_im =imagecreatefrompng($src);
//支持png本身透明度的方式
imagecopy($dst_im,$src_im,0,0,0,0,$src_info[0],$src_info[1]);
//保存图片
imagepng($dst_im,$dst);
imagedestroy($dst_im);
imagedestroy($src_im);
$o_pic = $respic;
//要处理的色阶起始值
$begin_r = 60;
$begin_g = 10;
$begin_b = 10;
list($src_w,$src_h,$src_type) = getimagesize($o_pic);// 获取原图像信息
$target_im = imagecreatetruecolor($src_w,$src_h);//新图
$src_im = imagecreatefrompng($o_pic);
imagecopymerge($target_im,$src_im,0,0,0,0,$src_w,$src_h,100);
for($x = 0; $x < $src_w; $x++)
{
for($y = 0; $y < $src_h; $y++)
{
$rgb = imagecolorat($src_im, $x, $y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
//echo $r.'*'.$b.'*'.$g.'<br>';
if($r <10 ){
imagecolortransparent($target_im, imagecolorallocate($target_im,$r, $g, $b));
}
}
}
imagealphablending($target_im, true);
imagepng($target_im,$respic);
imagedestroy($target_im);
//处理大图
$dst = $src_path; //注意图片路径要正确
//得到原始图片信息
$dst_info = getimagesize($dst);
$dst_im =imagecreatefromjpeg($dst);
//水印图像
$src = "tz.png"; //注意路径要写对
$src_info = getimagesize($src);
$src_im =imagecreatefrompng($src);
//支持png本身透明度的方式
imagecopy($dst_im,$src_im,$beginx,$beginy,0,0,$width,$height);
//保存图片
imagejpeg($dst_im,$rebpic);
imagedestroy($dst_im);
imagedestroy($src_im);