PHP水印和缩略图
给图片增加水印;给图片+文字水印,给图片+图片水印(图片混合水印);
- 原始图片上传
- 图片转换为php可识别的图片;
- PHP初始化图片,图片大小,尺寸,编码格式。
- 打水印,水印图片,水印文字(Imagettftext);
- 生成新图片;
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来获取,那样就跟方便了。也可以写成方法,方便以后复用。

浙公网安备 33010602011771号