php图片增加中文与图片水印代码
$ico_pic 是你要给图片加水印的水印图片,其它的参数都有详细的说明,如果你正在找这类代码可以下载保存成php文件,再利用后面说的调用方法来调用生成水印图片类代码.
php图片增加中文与图片水印代码如下:
- <?php
- class smallpic{
- private $src_pic;//原图
- private $ico_pic = "003.png";//水印图
- private $ico_text = "水印";//水印文字
- private $small_width;//缩略图宽度
- private $small_height;//缩略图高度
- private $is_ico_pic = true;//是否加图片水印
- private $is_text = true;//是否加文字水印
- private $src_x = 20;//水印在原图的x坐标
- private $src_y = 20;//水印在原图的y坐标
- private $ut = "utf-8";//文字编码
- private $font_color = "#990000";//文字水印颜色
- private $samll_pic_name = "smallpic";//小图的名称
- private $big_pic_name = "bigpic";//大图的名称
- function __construct($src_pic,$small_width,$small_height){
- $this->checkfile($src_pic);
- $this->checkfile($this->ico_pic);
- $this->src_pic = $src_pic;
- $this->small_width = $small_width;
- $this->small_height = $small_height;
- }
- private function __get($property_name){
- return $this->$property_name;
- }
- private function __set($property_name,$value){
- return $this->$property_name = $value;
- }
- /**
- * 取得图片的一些基本信息,类型为array
- */
- function getimageinfo($image){
- return @getimagesize($image);
- }
- /**
- * 把图片加载到php中
- * $image 传进来的图片
- */
- function getimage($image){
- $image_info = $this->getimageinfo($image);
- switch($image_info[2]){
- case 1:
- $img = @imagecreatefromgif($image);
- break;
- case 2:
- $img = @imagecreatefromjpeg($image);
- break;
- case 3:
- $img = @imagecreatefrompng($image);
- break;
- }
- return $img;
- }
- function createimageforsuffix($big_pic,$new_pic){
- $image_info = $this->getimageinfo($this->src_pic);
- switch($image_info[2]){
- case 1:
- //输出大图
- @imagegif($big_pic,$this->big_pic_name.".gif");
- //输出小图
- @imagegif($new_pic,$this->samll_pic_name.".gif");
- break;
- case 2:
- //输出大图
- @imagejpeg($big_pic,$this->big_pic_name.".jpg");
- //输出小图
- @imagejpeg($new_pic,$this->samll_pic_name.".jpg");
- break;
- case 3:
- //输出大图
- @imagepng($big_pic,$this->big_pic_name.".png");
- //输出小图
- @imagepng($new_pic,$this->samll_pic_name.".png");
- break;
- }
- }
- function checkfile($file){
- if(!file_exists($file)){
- die("图片:".$file."不存在!");
- }
- }
- function createsmallimage(){
- $big_pic = $this->getimage($this->src_pic);
- $big_pic_info = $this->getimageinfo($this->src_pic);
- $new_pic = $this->getimage($this->ico_pic);
- $new_pic_info = $this->getimageinfo($this->ico_pic);
- $rgb = $this->convcolor();
- //判断是按宽比例缩放还是按高比例缩放
- if($big_pic_info[0] > $big_pic_info[1]){
- $ratio = $this->small_width/(int)$big_pic_info[0];
- $small_pic_width = $this->small_width;
- $small_pic_height = (int)($big_pic_info[1]*$ratio);
- }else{
- $ratio = $this->small_height/(int)$big_pic_info[1];
- $small_pic_height = $this->small_height;
- $small_pic_width = (int)($big_pic_info[0]*$ratio);
- }
- //echo $small_pic_width = (int)($big_pic_info[0]*$ratio);
- //echo $small_pic_height = (int)($big_pic_info[1]*$ratio);
- //是否打图片水印
- if ($this->is_ico_pic){
- //打图片水印
- @imagecopy($big_pic,$new_pic,$this->src_x,$this->src_y,0,0,$new_pic_info[0],$new_pic_info[1]);
- }
- //是否打文字水印
- if ($this->is_text){
- //设置文字颜色
- $text_color = @imagecolorallocate($big_pic,$rgb[0],$rgb[1],$rgb[2]);
- //转换文字编码
- $text = @iconv($this->ut,"utf-8",$this->ico_text);
- //打文字水印
- @imagettftext($big_pic,12,0,$this->src_x,$this->src_y,$text_color,"simkai_0.ttf",$text);
- }
- //新建一个新图片的画板
- $new_pic = @imagecreatetruecolor($small_pic_width,$small_pic_height);
- //生成缩略图
- @imagecopyresized($new_pic,$big_pic,0,0,0,0,$small_pic_width,$small_pic_height,$big_pic_info[0],$big_pic_info[1]);
- //输出图
- $this->createimageforsuffix($big_pic,$new_pic);
- }
- /**
- * 类内部的功能函数把#000000转换成255,255,255
- */
- private function convcolor(){
- $rgb = array();
- $color = preg_replace("/#/","",$this->font_color);
- $c = hexdec($color);
- $r = ($c >> 16) & 0xff;
- $g = ($c >> 8) & 0xff;
- $b = $c & 0xff;
- $rgb[0] = $r;
- $rgb[1] = $g;
- $rgb[2] = $b;
- return $rgb;
- }
- }
- //调用方法
- $pic = new smallpic("002.jpg",600,300);
- $pic->is_text = true;
- $pic->is_ico_pic = true;
- $pic->ico_pic = "./images/004.png";
- $pic->ico_text = "新年快乐!";
- //$pic->src_x = 80;
- $pic->src_y = 80;
- $pic->ut = "utf-8";
- $pic->font_color = "#0521f8";
- $pic->samll_pic_name = "hslsamll";
- $pic->big_pic_name = "hslbig";
- $pic->createsmallimage();
- //开源代码phpfensi.com
- ?>