生成缩略图和添加水印是Web开发中经常需要用到的功能。下面是我整理的PHP缩略图生成和图片水印制作的完整攻略。
生成缩略图
1. 安装gd库
gd库是PHP的一个扩展库,它提供了生成缩略图、图片处理等功能。如果服务器中没有安装gd库,需要先进行安装。
2. 获取原图
在代码中获取原图,可以使用PHP的imagecreatefromjpeg()
, imagecreatefromgif()
或者 imagecreatefrompng()
函数,根据原图的文件类型来选择处理函数,如下:
$filename="test.jpg";
list($width, $height)=getimagesize($filename);
$src=imagecreatefromjpeg($filename);
这里以jpg
图片为例。
3. 调整尺寸
计算出缩略图的宽、高,然后使用imagecreatetruecolor()
函数创建一个按比例缩小的图像,最后,使用imagecopyresampled()
函数将原图缩小到新的尺寸。
$newwidth=200;
$newheight=($height/$width)*$newwidth;
$tmp=imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
最后生成缩略图:
imagejpeg($tmp,"test_thumb.jpg",100);
4. 示例说明
下面是一个详细的生成缩略图示例:
<?php
$filename="test.jpg";
list($width, $height)=getimagesize("$filename");
$src=imagecreatefromjpeg($filename);
$newwidth=200;
$newheight=($height/$width)*$newwidth;
$tmp=imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
imagejpeg($tmp,"test_thumb.jpg",100);
imagedestroy($src);
imagedestroy($tmp);
?>
添加水印
在图片上添加水印,在Web开发中也是常用的技术。下面是添加水印的完整攻略。
1. 获取原图像
同样使用imagecreatefromjpeg()
, imagecreatefromgif()
或者 imagecreatefrompng()
函数获取要添加水印的原图像。
$filename="test.jpg";
$src=imagecreatefromjpeg($filename);
2. 添加水印
生成水印文字或者图片,然后将其添加到原图上。
添加文字水印
使用ImageColorAllocate()
函数设置水印的颜色,然后使用ImageTtfText()
函数添加文字水印到原图上。
$text="Mywatermark";
$color=ImageColorAllocate($src,255,255,255);
ImageTtfText($src,20,0,10,30,$color,"arial.ttf",$text);
添加图片水印
使用imagecreatefrompng()
或者imagecreatefromgif()
函数读取水印图片,然后将其添加到原图上。
$watermark=imagecreatefrompng("watermark.png");
$wm_width=imagesx($watermark);
$wm_height=imagesy($watermark);
$dst_x=($width-$wm_width)/2;
$dst_y=($height-$wm_height)/2;
imagecopy($src,$watermark,$dst_x,$dst_y,0,0,$wm_width,$wm_height);
3. 保存新图片
使用imagejpeg()
, imagegif()
或者 imagepng()
函数将新图片保存到服务器上。
imagejpeg($src,"test_watermark.jpg",100);
4. 示例说明
下面是一个详细的添加水印的示例:
<?php
$filename="test.jpg";
list($width, $height)=getimagesize("$filename");
$src=imagecreatefromjpeg($filename);
$text="Mywatermark";
$color=ImageColorAllocate($src,255,255,255);
ImageTtfText($src,20,0,10,30,$color,"arial.ttf",$text);
imagejpeg($src,"test_watermark.jpg",100);
imagedestroy($src);
?>
以上就是生成缩略图和添加水印的完整攻略。希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP缩略图生成和图片水印制作 - Python技术站