js333 > 计算机互联网 > 解决方法,thinkphp做文字水印

原标题:解决方法,thinkphp做文字水印

浏览次数:152 时间:2019-10-03

thinkphp做文字水印 ,今天做一个电子请帖,就把祝福语贴到图片上面,发现一直报错是取不到图片类型,比如gif,jpg等,今天就写一个水印类并并解决call an undefined function exif_imagetype(),出现这个错误就是php.in 配置问题,打开即可:打开扩展 extension=php_exif.dll 如果再不行就把extension=php_mbstring.dll ,放到extension=php_exif.dll前边

本文实例讲述了ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法。分享给大家供大家参考。具体如下:

本文实例讲述了ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法。分享给大家供大家参考。具体如下:

我们要使用gd库就必须先打开gd库,具体如下

注意:extension=php_exif.dll 扩展要打开

一、问题描述:

一、问题描述:

Windows下开启PHP的GD库支持

类文件:wptext_class.php

ThinkPHP做文字水印 ,今天做一个电子请帖,就把祝福语贴到图片上面,发现一直报错是取不到图片类型,比如gif,jpg等,并提示call an undefined function exif_imagetype()。

ThinkPHP做文字水印 ,今天做一个电子请帖,就把祝福语贴到图片上面,发现一直报错是取不到图片类型,比如gif,jpg等,并提示call an undefined function exif_imagetype()。

找到php.ini,打开内容,找到:

 代码如下

二、解决方法:

二、解决方法:

;extension=php_gd2.dll

<?php
/*
PHP添加文字水印类 V1.0
作    者:Yu Tiedun
邮    箱:
修改日期:2010-03-07
支持图片格式:gif, jpg, png
水印的位置自己根据需要调整
如能修改得更好,请发一份给我
*/

出现这个错误就是php.in 配置问题,打开即可:打开扩展 extension=php_exif.dll 如果再不行就把extension=php_mbstring.dll ,放到extension=php_exif.dll前边
注意:**extension=php_exif.dll 扩展要打开
**类文件:wptext_class.php代码如下:

出现这个错误就是php.in 配置问题,打开即可:打开扩展 extension=php_exif.dll 如果再不行就把extension=php_mbstring.dll ,放到extension=php_exif.dll前边
注意:**extension=php_exif.dll 扩展要打开
**类文件:wptext_class.php代码如下:

把最前面的分号“;”去掉,再保存即可,如果本来就没有分号,那就是已经开启了。

class WaterPrint
{
//类开始
    public $text, $color, $size, $font, $angle, $px, $py, $im;

复制代码 代码如下:

复制代码 代码如下:

具体可以参考下文:

//要添加的文字
public function GetWpText($text)
    {
   $this->text = $text;
    }

<?php
/*
PHP添加文字水印类 V1.0
作者:Yu Tiedun
邮箱:
修改日期:2010-03-07
支持图片格式:gif, jpg, png
水印的位置自己根据需要调整
如能修改得更好,请发一份给我
*/
class WaterPrint
{
//类开始
public $text, $color, $size, $font, $angle, $px, $py, $im;
//要添加的文字
public function GetWpText($text)
{
$this->text = $text;
}
//添加文字的颜色
public function GetFtColor($color)
{
$this->color = $color;
}
//添加文字的字体
public function GetFtType($font)
{
$this->font = $font;
}

<?php
/*
PHP添加文字水印类 V1.0
作者:Yu Tiedun
邮箱:
修改日期:2010-03-07
支持图片格式:gif, jpg, png
水印的位置自己根据需要调整
如能修改得更好,请发一份给我
*/
class WaterPrint
{
//类开始
    public $text, $color, $size, $font, $angle, $px, $py, $im;
//要添加的文字
public function GetWpText($text)
{
   $this->text = $text;
}
//添加文字的颜色
public function GetFtColor($color)
{
   $this->color = $color;
}
//添加文字的字体
public function GetFtType($font)
{
   $this->font = $font;
}
 
//添加文字的大小
public function GetFtSize($size)
{
   $this->size = $size;
}
//文字旋转的角度
public function GetTtAngle($angle)
{
   $this->angle = $angle;
}
//添加文字的位置
public function GetTtPosit()
{
   $this->px = 10;
   $this->py = imagesy($this->im) - 20;
}
//添加文字水印
public function AddWpText($pict)
{
   $ext = exif_imagetype($pict);
    switch ($ext) {
   case 1:
   $picext = "gif";
    $this->im = imagecreatefromgif($pict);
    break;
   case 2:
   $picext = "jpg";
    $this->im = imagecreatefromjpeg($pict);
    break;
   case 3:
   $picext = "png";
    $this->im = imagecreatefrompng($pict);
    break;
   default:
   $this->Errmsg("不支持的文件格式!");
    break;
   }
   //$this->picext = $picext;
   $this->GetTtPosit();
   $im   = $this->im;
   $size = $this->size;
   $angle= $this->angle;
   $px   = $this->px;
   $py   = $this->py;
   $color= $this->color;
   $font = $this->font;
   $text = $this->text;
   $color= imagecolorallocate($im, 255, 0, 0);
   imagettftext($im, $size, $angle, $px, $py, $color, $font, $text);
   switch ($picext) {
   case "gif":
   imagegif($im, $pict);
    break;
   case "jpg":
   imagejpeg($im, $pict, 100);
    break;
   case "png":
      imagealphablending($im, false);
        imagesavealpha($im, true);
       imagepng($im, $pict);
    break;
   }
   imagedestroy($im);
}
//错误信息提示
public function Errmsg($msg)
{
    echo "<script language='javascript'>alert('".$msg."');</script>";
}
//类结束
}
?>

一:添加文字水印 使用方法

//添加文字的颜色
public function GetFtColor($color)
    {
   $this->color = $color;
    }

//添加文字的大小
public function GetFtSize($size)
{
$this->size = $size;
}
//文字旋转的角度
public function GetTtAngle($angle)
{
$this->angle = $angle;
}
//添加文字的位置
public function GetTtPosit()
{
$this->px = 10;
$this->py = imagesy($this->im) - 20;
}
//添加文字水印
public function AddWpText($pict)
{
$ext = exif_imagetype($pict);
switch ($ext) {
case 1:
$picext = "gif";
$this->im = imagecreatefromgif($pict);
break;
case 2:
$picext = "jpg";
$this->im = imagecreatefromjpeg($pict);
break;
case 3:
$picext = "png";
$this->im = imagecreatefrompng($pict);
break;
default:
$this->Errmsg("不支持的文件格式!");
break;
}
//$this->picext = $picext;
$this->GetTtPosit();
$im = $this->im;
$size = $this->size;
$angle= $this->angle;
$px = $this->px;
$py = $this->py;
$color= $this->color;
$font = $this->font;
$text = $this->text;
$color= imagecolorallocate($im, 255, 0, 0);
imagettftext($im, $size, $angle, $px, $py, $color, $font, $text);
switch ($picext) {
case "gif":
imagegif($im, $pict);
break;
case "jpg":
imagejpeg($im, $pict, 100);
break;
case "png":
imagealphablending($im, false);
imagesavealpha($im, true);
imagepng($im, $pict);
break;
}
imagedestroy($im);
}
//错误信息提示
public function Errmsg($msg)
{
echo "<script language='javascript'>alert('".$msg."');</script>";
}
//类结束
}
?>

调用页面:index.php代码如下:

require 'image.class.php'
$src="001.jpg";
$content="hello";
$font_url="my.ttf";
$size=20;
$image=new Image($src);
$color=array(
0=>255,
1=>255,
2=>255,
2=>20
);
$local=array(
'x'=>20,
'y'=>30
);
$angle=10;
$image->fontMark($content,$font_url,$size,$color,$local,$angle);
$image->show();

//添加文字的字体
public function GetFtType($font)
    {
   $this->font = $font;
    }
 
//添加文字的大小
public function GetFtSize($size)
    {
   $this->size = $size;
    }

调用页面:index.php代码如下:

复制代码 代码如下:

二:图片缩略图 使用方法:

//文字旋转的角度
public function GetTtAngle($angle)
    {
   $this->angle = $angle;
    }

复制代码 代码如下:

<?php
header("Content-type: text/html; charset=gbk");
require("wptext_class.php");
$pict = "images/button2.png"; //目标图片
//$text = "XP/Vista/Win7"; //要添加的文字
$text = "文字水印测试";
$text = iconv("gb2312","utf-8",$text); //防止中文乱码
$size = 20; //文字大小
$font = "c:/windows/fonts/arial.ttf"; //字体
$angle = 0; //旋转角度,逆时针
$wptext = new WaterPrint();
$wptext->GetWpText($text);
$wptext->GetFtSize($size);
$wptext->GetFtType($font);
$wptext->GetTtAngle($angle);
$wptext->AddWpText($pict);
$wptext = null;
?>
<a href="images/button2.png" target="_blank">查看结果</a>

require 'image.class.php'
$src="001.jpg";
$image=new Image($src);
$image->thumb(300,200);
$image->show();

//添加文字的位置
public function GetTtPosit()
    {
   $this->px = 10;
   $this->py = imagesy($this->im) - 20;
    }    

<?php
header("Content-type: text/html; charset=gbk");
require("wptext_class.php");
$pict = "images/button2.png"; //目标图片
//$text = "XP/Vista/Win7"; //要添加的文字
$text = "文字水印测试";
$text = iconv("gb2312","utf-8",$text); //防止中文乱码
$size = 20; //文字大小
$font = "c:/windows/fonts/arial.ttf"; //字体
$angle = 0; //旋转角度,逆时针
$wptext = new WaterPrint();
$wptext->GetWpText($text);
$wptext->GetFtSize($size);
$wptext->GetFtType($font);
$wptext->GetTtAngle($angle);
$wptext->AddWpText($pict);
$wptext = null;
?>
<a href="images/button2.png" target="_blank">查看结果</a>

希望本文所述对大家的ThinkPHP框架程序设计有所帮助。

三:image.class.php

//添加文字水印
public function AddWpText($pict)
    {
   $ext = exif_imagetype($pict);
        switch ($ext) {
   case 1:
       $picext = "gif";
    $this->im = imagecreatefromgif($pict);
    break;
   case 2:
       $picext = "jpg";
    $this->im = imagecreatefromjpeg($pict);
    break;
   case 3:
       $picext = "png";
    $this->im = imagecreatefrompng($pict);
    break;
   default:
       $this->Errmsg("不支持的文件格式!");
    break;
   }
   //$this->picext = $picext;
   $this->GetTtPosit();
   $im   = $this->im;
   $size = $this->size;
   $angle= $this->angle;
   $px   = $this->px;
   $py   = $this->py;
   $color= $this->color;
   $font = $this->font;
   $text = $this->text;
   $color= imagecolorallocate($im, 255, 0, 0);
   imagettftext($im, $size, $angle, $px, $py, $color, $font, $text);
   switch ($picext) {
   case "gif":
       imagegif($im, $pict);
    break;
   case "jpg":
       imagejpeg($im, $pict, 100);
    break;
   case "png":
      imagealphablending($im, false);
            imagesavealpha($im, true);
解决方法,thinkphp做文字水印。       imagepng($im, $pict);
    break;
   }
   imagedestroy($im);
    }

希望本文所述对大家的ThinkPHP框架程序设计有所帮助。

您可能感兴趣的文章:

  • THINKPHP+JS实现缩放图片式截图的实现
  • ThinkPHP打水印及设置水印位置的方法
  • ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
  • thinkphp jquery实现图片上传和预览效果
  • ThinkPHP3.2.1图片验证码实现方法
  • thinkphp3.2实现上传图片的控制器方法
  • 使用ThinkPHP+Uploadify实现图片上传功能
  • thinkphp实现图片上传功能分享
  • 使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
  • thinkPHP框架实现图像裁剪、缩放、加水印的方法

class image{
private $info;
private $image;
public function __contruct($src){
$info= getimagesize($src);
$this->info=array(
'width'=> $info[0],
'height'=>$info[1],
'type'=>image_type_to_extension($info[2],false),
'mime'=>$info['mime'],
 
);
$fun="imagecreatefrom{$this->info['type']}";
 
$this->image= $fun($src);
 
}
 
//缩略图
public function thumd($width,$height){
$image_thumb= imagecreatetruecolor($width,$height);
imagecopyresampled($image_thumb,$this->image,0,0,0,0,$width,$height,$this->info['width'],$this->info['height']);
imagedestroy($this->image);
$this->image=$image_thumb;
 
}
//文字水印
public function fontMark($content,$font_url,$size,$color,$local,$angle){
 
$col=imagecolorallocatealpha($this->image,$color[0],$color[1],$color[2],$color[3]);
$text=imagettftext($this->image,$size,$angle,$local['x'],$local['y'],$col,$font_url,$content);
}
//输出图片
public function show()
{
header("Content-type:",$this->info['mime']);
 
$func="image{$this->info['type']}";
$func($this->image);
 
}
public function save($nwename){
$func="image{$this->info['type']}";
//从内存中取出图片显示
$func($this->image);
//保存图片
$func($this->image,$nwename.$this->info['type']);
 
}
public function _destruct(){
 
imagedestroy($this->image);
}
 
}

//错误信息提示
public function Errmsg($msg)
    {
        echo "<script language='javascript'>alert('".$msg."');</script>";
    }
//类结束
}

?>

调用页面:index.php

 代码如下

<?php
header("Content-type: text/html; charset=gbk");
require("wptext_class.php");
$pict = "images/button2.png"; //目标图片
//$text = "XP/Vista/Win7"; //要添加的文字
$text = "文字水印测试";

$text = iconv("gb2312","utf-8",$text); //防止中文乱码
$size = 20; //文字大小
$font = "c:/windows/fonts/arial.ttf"; //字体
$angle = 0; //旋转角度,逆时针
$wptext = new WaterPrint();
$wptext->GetWpText($text);
$wptext->GetFtSize($size);
$wptext->GetFtType($font);
$wptext->GetTtAngle($angle);
$wptext->AddWpText($pict);
$wptext = null;
?>
<a href="images/button2.png" target="_blank">查看结果</a>

本文由js333发布于计算机互联网,转载请注明出处:解决方法,thinkphp做文字水印

关键词:

上一篇:php数组相关函数的使用,数组添加关联元素的方

下一篇:没有了