PHP学习笔记十、图像处理

一、图形处理及应用

二、创建图像

1、创建画布


2、绘制图像

第一次定义的颜色是背景色

3、输出图像和关闭资源

三、示例

1、创建一张图片

<?php
//定义当前页面是一张jpg格式的图片
header('Content-type:image/jpeg');
//创建画布
$img=imagecreate(300, 300);
//定义颜色(第一个颜色是背景色)
$blue=imagecolorallocate($img, 0, 0, 255);
//输出图片
imagejpeg($img);
//注销资源
imagedestroy($img);
?>

2、在图片上画点:imagesetpixel

//在图片上画点
$co=imagecolorallocate($img,0,0,0);
imagesetpixel($img, rand(0,300), rand(0,300), $co);

3、在图片上画线:imageline

//在图片上画线
$lco=imagecolorallocate($img,0,0,0);
imageline($img, 0, 0, 300, 300, $lco);

4、在图片上写文字(只能写英文):imagestring

//在图片上写文字
imagestring($img, 5, 0, 0, "jfliu", $lco);	

5、在图片上写文字(支持中文,最常用):imagettftext

//写汉字
imagettftext($img, 20, 0, 150, 150, $lco, './msyh.ttc', '中国汉字');

6、完整示例

<?php
//定义当前页面是一张jpg格式的图片
header('Content-type:image/jpeg');
//创建画布
$img=imagecreate(300, 300);
//定义颜色(第一个颜色是背景色)
$blue=imagecolorallocate($img, 0, 0, 255);
//在图片上画点
$co=imagecolorallocate($img,0,0,0);
imagesetpixel($img, rand(0,300), rand(0,300), $co);
//在图片上画线
$lco=imagecolorallocate($img,0,0,0);
imageline($img, 0, 0, 300, 300, $lco);
//在图片上写文字(只能写英文)
imagestring($img, 5, 0, 0, "jfliu", $lco);
//写汉字
imagettftext($img, 20, 0, 150, 150, $lco, './msyh.ttc', '中国汉字');
//输出图片
imagejpeg($img);
//注销资源
imagedestroy($img);
?>

四、创建缩略图

等比缩略

<?php
header('Content-type:image/jpeg');
$img2=imagecreatefromjpeg('./meinv.jpg');
//缩放大小(等比缩略)
$x=imagesx($img2);
$y=imagesy($img2);
$blx=$x/300;
$bly=$y/300;
$bl=$blx>$bly?$blx:$bly;
//创建画布
$img=imagecreatetruecolor($x/$bl, $y/$bl);
//缩略图
imagecopyresized($img, $img2, 0, 0, 0, 0, $x/$bl, $y/$bl, $x, $y);
//将图片保存起来
imagejpeg($img,'./suolue.jpg');
//注销资源
imagedestroy($img);
imagedestroy($img2);
?>

五、打水印

<?php
header('Content-type:image/jpeg');
$img=imagecreatefromjpeg('./bg.jpg');
$img2=imagecreatefrompng('./logo.png');
$x=imagesx($img);
$y=imagesy($img);
$x2=imagesx($img2);
$y2=imagesy($img2);
imagecopy($img, $img2, $x-$x2, $y-$y2, 0, 0, $x2, $y2);
//输出图片
imagejpeg($img,'./shuiyin.jpg');
//注销资源
imagedestroy($img);
imagedestroy($img2);
?>

作者:liujf
出处:http://www.cnblogs.com/liujf5566/
本文版权归作者和博客园所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利~

原文地址:https://www.cnblogs.com/liujf5566/p/5158226.html