# php class image_tool **Repository Path**: 365690485/php-class-image_tool ## Basic Information - **Project Name**: php class image_tool - **Description**: 由PHP扩展基于image magick实现的image tool图片工具类,提供了按比例缩放、图片旋转、去噪点、图片合成、打水印等方法 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 7 - **Created**: 2013-05-17 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 一、类函数说明 class Image_Tool{ /** * 构造Image_Tool对象 * @param string|array $img_data * $img_data可以为图片的路径 */ function __construct($img_data=""); /** * 添加文字注解,或用于文字水印 * @access public * @param string $txt UTF8编码的文本 * @param float $opacity 设置透明度 * @param constant $gravity * 设置文字摆放位置: * NorthWest,North,NorthEast,West, Center,East,SouthWest,South,SouthEast,Static * @param array $font 字体数组可以设置如下属性: * name,常量,字体名称,如果需要添加中文注解,请使用中文字体,否则中文会显示乱码。 * 支持的字体:SimSun(宋体,默认)、SimKai(楷体)、SimHei(正黑)、MicroHei(微米黑)、Arial * weight,字体宽度,int * size,字体大小,int * color,字体颜色,例如:"blue", "#0000ff", "rgb(0,0,255)"等,默认为"black"; * @return boolean */ function annotate($txt, $opacity, $gravity, array $font); /** * 将对象的数据重新初始化,用于多次重用一个Image_Tool对象 * @access public * @return void */ function clean(); * * 图片合成,可以进行多张图片的合成,也可以做图片水印用 * @access public * @param int $src_img 合成的目标图片,可以为ImageTool对象或图片二进制数据 * @param int $x 合成在画布的X坐标 * @param string $y 合成在画布的Y坐标 * @return boolean * function composite($src_img, $x, $y); /** * 返回错误信息 * @access public * @return string */ function errmsg(); /** * 返回错误编号 * @access public * @return int */ function errcode(); /** * 进行图片处理操作 * @access public * @param string $format * @param boolean $display * @return boolean|string 若设置$display为true,返回void,否则返回图片二进制数据。失败时返回false */ function exec($format, $display=false); /** * 水平翻转 * @access public * @return boolean */ function flipH(); /** * 垂直翻转 * @access public * @return boolean */ function flipV(); /** * 取得图片属性 * @access public * @return array|boolean 错误返回false */ function getImageAttr(); /** * 去噪点,改善图片质量,通常用于exec之前 * @access public * @return boolean */ function improve(); /** * 缩放图片,只指定width或者height时,将进行等比缩放 * @access public * @param int $width * @param int $height * @param boolean $thumbnail 是否清除图片附加信息 * @return boolean */ function resize($width, $height, $thumbnail=true); /** * 按比例缩放.1为原大小 * @access public * @param float $ratio * @param boolean $thumbnail 是否清除图片附加信息 * @return boolean */ function resizeRatio($ratio, $thumbnail=true); /** * 顺时针旋转图片 * @access public * @param int $degree 旋转度数(0 - 360) * @return boolean */ function rotate($degree=90); /** * 设置要处理的图片二进制数据 * @access public * @param string $img_blob * @return boolean */ function setData($img_blob); } 二、使用案例 $img1 = new Image_Tool("C:/Users/Administrator/Desktop/1.jpg"); $font = array('name'=>'Simsun', 'color'=>'red', 'size'=>20, 'weight'=>900); $img1->annotate('Good Bye!', 0.1, IMAGETOOL_NORTHWEST, $font); //打上文字水印 // $img1->rotate(90); $img1->flipV();//垂直翻转 // $img1->resize(250, 250, 0); $img1->resizeRatio(0.5, 1); $img_arr = $img1->getImageAttr();//图片属性 宽、高、类型 $img1->improve();//除噪点 $img2 = new Image_Tool(); $img2->setData(file_get_contents("C:/Users/Administrator/Desktop/3.png")); $background_img = new Image_Tool("C:/Users/Administrator/Desktop/2.png"); $background_img->composite($img1, 200, 100); //以background_img为画布,基于左上角0,0坐标开始向右200、向下100像素将图片img1合成 $background_img->composite($img2, 0, 0); //将background_img与img1合成后的图片,基于左上角0,0点合成img2 $background_img->exec("C:/Users/Administrator/Desktop/composite.jpg");//生成三张图片合并后的新图片