|
分享一个php实现的图片处理类,可以设置文字水印与图片水印等,有需要的朋友参考下。
本节分享一个图片处理类,简单实现了文字水印与图片水印,是学习php图片操作的小例子。 代码:
<?php
class ImageModifier {
/**
* 实现在图片上保存文本信息
*
* default is array()
*
* @access private
*/
var $aTextData = array();
/**
* 保存文本信息到图片上
*
* default is array()
*
* @access private
*/
var $aImageData = array();
/**
* imagick的资源标识符
*
* default is FALSE
*
* @access private
*/
var $image = "";
/**
* 错误消息级别
*
* default is 0
*
* @varinteger
*/
var $sError = 0;
/**
* 构造函数
*
* @param string $tplImage template image
* @access private
*/
public function __construct($tplImage) {
// Check Imagick class exist or not if not show error.
if (!class_exists("Imagick", false)) {
exit("Unable to load class: Imagick\n. Imagick Image Library Missing.");
}
// create a object of Imagick template image
$this->image = new Imagick($tplImage);
}
/**
* 设置文本属性
*
* @param string $sText text to print on the image (i.e. Buy 1 Get 1 Free )
* @param integer $x text to print from x codinates
* @param integer $y text to print from y codinates
* @param integer $font text size for printing
* @param string $color text color for print
* @param integer $text_anglerotate text from 0-360
* @param string $font_style installed font name and path (i.e /usr/share/fonts/liberation/LiberationSans-Italic.ttf)
* @Creating an array of text properties
*/
public function setText($sText, $x = 0, $y = 0, $font = 12, $color = 'black', $text_angle = 0, $font_style = './LiberationSans-Italic.ttf') {
$this->aTextData[] = array("text"=>$sText, "font_color"=>$color, "font_size"=>$font,"x"=>$x,"y"=>$y, "font_style"=>$font_style,
"text_angle"=>$text_angle);
}
/**
* 设置图片属性
*
* @param string $sImage text to print on the image (i.e. /home/httpd/images/brand.jpg )
* @param integer $x text to print from x codinates
* @param integer $y text to print from y codinates
* @param integer $text_anglerotate text from 0-180
* @Creating an array of image properties
*/
public function setImage($sImage, $x = 0, $y = 0, $angle=0) {
$this->aImageData[] = array("image"=>$sImage, "x"=>$x, "y"=>$y, "angle"=>$angle);
}
/**
* 从文字和图片属性生成最终图像
*
* @param string $sImage Output image Name
* @return boolean returns TRUE on success and FALSE upon failure
*/
public function generateImage($sImage) {
foreach ($this->aImageData as $aImageValue) {
if (!trim($aImageValue["image"])) {
$sError = 1;
break;
}
$oImg = new Imagick($aImageValue["image"]);
$oImg->rotateImage("transparent", $aImageValue["angle"]);
$this->image->compositeImage($oImg, $oImg->getImageCompose(), $aImageValue["x"], $aImageValue["y"]);
unset($oImg);
}
foreach ($this->aTextData as $aTextValue){
if (!trim($aTextValue['text'])) {
$sError = 2;
break;
}
$oDraw = new ImagickDraw();
$oDraw->setFont($aTextValue['font_style']);
$oDraw->setFontSize($aTextValue['font_size']);
$oDraw->setFillColor($aTextValue['font_color']);
$this->image->annotateImage($oDraw, $aTextValue['x'], $aTextValue['y'], $aTextValue['text_angle'], $aTextValue['text']);
unset($oDraw);
}
if ($sError == 1) {
exit("Unable to generate Image. Check \"setImage\" Properties");
}elseif ($sError == 2) {
exit("Unable to generate Image. Check \"setText\" Properties");
}
$this->image->setImageFormat("jpg");
return $this->image->writeImage($sImage);
}
}
?>登录后复制 2,调用示例:
<?php
//调用类文件
require_once "ImageModifier.class.php";
//示例
$oImageMagick = new ImageModifier('template.jpg'); // Image Template on which you have to manupulate
$oImageMagick->setText("This is one", 350, 20, 22, "red");
$oImageMagick->setText("This is Two", 50, 50, 25, "blue","50");
$oImageMagick->setImage("brand.jpg", 160, 90, 0);
$oImageMagick->setImage("tata.jpg", 160, 20);
$newImagename = "mynewImage.jpg";
$oImageMagick->generateImage($newImagename);
?>登录后复制 |
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号