PHP代码,用于各种图像处理功能
新建一个真彩色图像(宽度,高度);
Imagecreatefromgif(图片名称);
Imagecreatefrompng(图片名称);
Imagecreatefromjpeg(图片名称);绘制各种图像imagegif(图片资源,保存路径);
Imagepng()
Imagejpeg();
两。获取图片的属性
Imagesx(既 / /宽度)
Imagesy(既 / /高度)
getimagesize(文件路径)
返回一个四单元的阵列。索引0包含图像宽度的像素值,和索引1包含图像的高度的像素值。指数2是图像式的标志:1 = 2 = GIF,JPG,PNG 3 = 4 = 5 =,SWF、PSD、BMP 6 =,7=TIFF(英特尔字节顺序),8 = TIFF(字节),10 = 9,= 10,= 10,= = =,= = =,= = =,= =,= =,= =,这些标签对应的新添加的图像类型常数3是一个PHP 4.3.0.index与内容的高度=YYYwidth=XXX的文本字符串
图像资源的破坏
Imagedestroy(图片资源);
三。透明处理
PNG和JPEG的透明颜色是正常的,只有GIF不正常。
imagecolortransparent(资源图像,文本颜色}) / /透明的颜色设置
Imagecolorstotal()
imagecolorforindex();
四,图片的裁剪
拷贝部分图像并调整大小()
imagecopyresampled();
五,添加水印(文本,图片)
字符串编码转换的字符串(字符串的字符串in_charset iconv,out_charset美元,字符串str)
六。图片旋转
(imagerotate); / /设置图片的翻转角度
七。画面的翻转
沿y轴沿x轴旋转
八。锐化
取得某索引的颜色()
Imagecolorat()
画一幅IMG = imagecreatefromgif美元(, /图像/地图。gif)的图片。
复制代码代码如下所示:
红色= imagecolorallocate美元(美元IMG,255, 0, 0);
imageline(0, 0, 100美元,100美元的数据,红色);
imageellipse(200, 100, 100美元,100美元的数据,红色);
imagegif($ IMG,, /图像/ MAP2。gif);
销毁一图像($ IMG);
图片缩放
复制代码代码如下所示:
文件;
$ = 0.3;
列表($宽度、高度美元)= getimagesize($文件名);
$n_w=$width*$per;
n_h =宽度*美元美元美元;
$新=新建一个真彩色图像(n_w美元,美元n_h);
img = imagecreatefromjpeg美元($文件名);
复制图像并调整
拷贝部分图像并调整大小(合新,IMG 0,0,0,美元,0美元,n_w,n_h美元美元美元,宽度,高度);
将图像输出为新图像,另存为
imagejpeg($,, /图像/ hee2 .webp);
销毁一图像(合新);
销毁一图像($ IMG);
图像缩放,没有透明的颜色处理
复制代码代码如下所示:
功能thumn(美元美元美元背景,宽度,高度,为NewFile.txt){
列表(s_w美元,美元s_h)= getimagesize($ / /背景);得到的高度和原始图像的宽度
如果($宽度($ s_w << s_h美元)){
美元($高度/宽度= $ s_h)* $ s_w;
{人}
美元($宽度/高度= s_w美元)* $ s_h;
}
$新=新建一个真彩色图像($美元宽度,高度);
img = imagecreatefromjpeg美元(美元背景);
imagecopyresampled($,0, 0, 0美元,0美元的数据,宽度,高度s_w美元,美元,美元s_h);
imagejpeg($美元新,新文件);
销毁一图像(合新);
销毁一图像($ IMG);
}
Thumn(图像/熙.webp
透明彩色处理
复制代码代码如下所示:
功能thumn(美元美元美元背景,宽度,高度,为NewFile.txt){
列表(s_w美元,美元s_h)= getimagesize($背景);
如果($宽度($ s_w << s_h美元)){
美元($高度/宽度= $ s_h)* $ s_w;
{人}
美元($宽度/高度= s_w美元)* $ s_h;
}
$新=新建一个真彩色图像($美元宽度,高度);
img = imagecreatefromgif美元(美元背景);
第二美元= imagecolortransparent($ IMG);
如果($第二> = 0美元(美元的医学imagecolorstotal IMG)){ / /判断索引颜色
Tran美元=取得某索引的颜色(IMG美元美元,第二); / /色值指数
纽特= imagecolorallocate美元(美元,美元红色Tran { },{绿色美元Tran},{Tran美元蓝));
imagefill($ 0, 0美元的新,纽特);
imagecolortransparent($美元新,纽特);
}
拷贝部分图像并调整大小($,0, 0, 0美元,0美元的数据,宽度,高度s_w美元,美元,美元s_h);
imagegif($美元新,新文件);
销毁一图像(合新);
销毁一图像($ IMG);
}
Thumn(图像/地图。GIF
图片裁剪
复制代码代码如下所示:
割(美元的背景下,cut_x美元,cut_y美元,cut_width美元美元美元,cut_height,位置){
回= imagecreatefromjpeg美元(美元背景);
$新=新建一个真彩色图像(cut_width美元,美元cut_height);
imagecopyresampled(新0, 0美元美元,回来,cut_x美元,cut_y美元,cut_width美元,cut_height美元美元美元,cut_width,cut_height);
(新imagejpeg美元,美元的位置);
销毁一图像(合新);
销毁一图像(合回);
}
剪切()。
图片加水印
文本水印
复制代码代码如下所示:
功能mark_text(美元美元美元背景,文本,X、Y元){
回= imagecreatefromjpeg美元(美元背景);
颜色= imagecolorallocate美元($,0, 255, 0);
imagettftext($,20, 0,X,Y元,美元的颜色,中易楷体TTF 。
imagejpeg(美元回来,, /图像/ hee7 .webp);
销毁一图像(合回);
}
mark_text(, / / 熙JPG图像。
图片水印
功能mark_pic(美元的背景下,waterpic美元美元美元,X,Y){
回= imagecreatefromjpeg美元(美元背景);
水= imagecreatefromgif美元(美元waterpic);
w_w = imagesx美元($水);
w_h = imagesy美元($水);
imagecopy(美元美元美元回来,水,X、Y元,0, 0美元美元,w_w,w_h);
imagejpeg(美元回来,, /图像/ hee8 .webp);
销毁一图像(合回);
销毁一图像($水);
}
mark_pic(, / / 熙JPG图像。
图片旋转
复制代码代码如下所示:
(= imagecreatefromjpeg回美元。 /图像/熙.webp);
新imagerotate美元=(美元回来,45, 0);
imagejpeg($,, /图像/ hee9 .webp);
图片水平翻转和垂直翻转
复制代码代码如下所示:
功能turn_y(美元的背景下,为NewFile.txt){
回= imagecreatefromjpeg美元(美元背景);
$宽度= imagesx($回);
$高度= imagesy(合回);
$新=新建一个真彩色图像($美元宽度,高度);
($ x = 0;$ x宽度;$ x + +){
(新imagecopy美元,美元美元美元回来,宽X-1,0,X,0, 1,为高度);
}
imagejpeg($美元新,新文件);
销毁一图像(合回);
销毁一图像(合新);
}
功能turn_x(美元的背景下,为NewFile.txt){
回= imagecreatefromjpeg美元(美元背景);
$宽度= imagesx($回);
$高度= imagesy(合回);
$新=新建一个真彩色图像($美元宽度,高度);
($ y = 0;$ y高;$ + +){
imagecopy(美元,0美元美元,美元,高度Y-1,0,Y元,为宽度,1);
}
imagejpeg($美元新,新文件);
销毁一图像(合回);
销毁一图像(合新);
}
turn_y(, / / 熙JPG图像。
turn_x(, / / 熙JPG图像。
图像锐化
复制代码代码如下所示:
功能尖锐($背景,$,$保存){
回= imagecreatefromjpeg美元(美元背景);
b_x美元= imagesx(合回);
b_y美元= imagesy(合回);
DST = imagecreatefromjpeg美元(美元背景);
为($我= 0;美元美元美元我<< b_x;i++){
(J = 0;对美元美元美元,<< b_y;j++){
b_clr1美元=取得某索引的颜色(美元回来,imagecolorat(美元美元美元回来,I-1、J-1));像素阵列
b_clr2美元=取得某索引的颜色(美元回来,imagecolorat(美元回来,我,J)); 删除颜色当前数组
R = intval美元(美元b_clr2 {红色} + $度*($ b_clr2 {红色} $ b_clr1 {红色}));深化
$ G = intval($ b_clr2 {绿色} + $度*($ b_clr2 {绿色} $ b_clr1 { 绿色))))
B = intval美元(美元b_clr2 {蓝色} + $度*($ b_clr2 {蓝色} $ b_clr1 {蓝色))))
$ R = min(255,最大(r,0)); / / R限制在0-255范围
$ = min(255,max($ G,0));
$ = min(255,max($ B,0));
如果(($ d_clr = imagecolorexact(美元美元美元DST,R,G,B美元))= = 1){ / /等于1在色彩范围
d_clr = imagecolorallocate美元(美元美元美元DST,R,G,B美元); / /创建一个颜色
}
imagesetpixel($ DST,我,J,d_clr美元);
}
}
imagejpeg($美元DST,保存);
销毁一图像(合回);
销毁一图像($ DST);
}
夏普()。