PHP水印和缩略图

给图片增加水印;给图片+文字水印,给图片+图片水印(图片混合水印);

  1. 原始图片上传
  2. 图片转换为php可识别的图片;
  3. PHP初始化图片,图片大小,尺寸,编码格式。
  4. 打水印,水印图片,水印文字(Imagettftext);
  5. 生成新图片;

 

PHP水印原理

 

载入图片ImageCreateFrom*

ImageCreateFromgif\ImageCreateFromjpeg\ImageCreateFromwbmp\ImageCreateFromstring;

 

Imagecopy

bool imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )

 

Imagecopyresized

bool imagecopyresized ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )

新建一个空白板,放在空白板中。

getimagesize

array getimagesize ( string $filename [, array &$imageinfo ] )

<?php
$img3 = "images/p1.jpg";
$img = getimagesize($img3);
//print_r($img);
//$img数组的第二项为图片的类型,上图这个是个jpg;
switch ($img[2]){
    case 1:
        $im=imagecreatefromgif($img3);
        break;
    case 2:    
        $im=imagecreatefromjpeg($img3);
        break;
    case 3:    
        $im=imagecreatefrompng($img3);
        break;
        
        
}
$te = imagecolorallocate($im,255,10,30);
//文字水印
imagettftext($im,14,0,20,20,$te,"Pro.ttf","chinac公有云");
$logo = "images/iphone.jpg";

$logo=imagecreatefromjpeg($logo);
imagecopy($im, $logo, 50, 50, 0,0, "129", "37");
//imagecopyresized ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )

header("Content-type:image/jpeg");
imagejpeg($im);



?>

 

剪切图片

imagecopyresized;imagecopyresized — 拷贝部分图像并调整大小

bool imagecopyresized ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )

 

$new = imagecreatetruecolor(30, 30);
imagecopyresized($new, $im, 0, 0, 0, 0, 30, 30, $img[0], $img[1]);

请注意,这张图不仅尺寸变了,体积也变得很小,可以把上传的大图,保存成小图,存储起来,放在列表里用。目前还有很多参数是手写进去的,但是实际用的时候,可以尽量使用getimagesize来获取,那样就跟方便了。也可以写成方法,方便以后复用。

 

posted @ 2016-10-14 11:53  拾阶而上的PM  阅读(199)  评论(0)    收藏  举报
本博内容由王子豪 www.07byte.com 提供