摘要:有时上传图片时,需要给图片添加水印,水印一般为文字或图片水印,下面就来看看两种添加方法。拷贝并合并图像的一部分更多库函数用法,请查手册相关文章实现图片上传时添加文字和图片水印
一、文字水印有时上传图片时,需要给图片添加水印,水印一般为文字或图片logo水印,下面就来看看两种添加方法。
文字水印就是在图片上加上文字,主要使用gd库的imagefttext方法,并且需要字体文件。效果图如下:
$dst_path = "dst.jpg";
//创建图片的实例
$dst = imagecreatefromstring(file_get_contents($dst_path));
//打上文字
$font = "./simsun.ttc";//字体路径
$black = imagecolorallocate($dst, 0x00, 0x00, 0x00);//字体颜色
imagefttext($dst, 13, 0, 20, 20, $black, $font, "快乐编程");
//输出图片
list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);
switch ($dst_type) {
case 1://GIF
header("Content-Type: image/gif");
imagegif($dst);
break;
case 2://JPG
header("Content-Type: image/jpeg");
imagejpeg($dst);
break;
case 3://PNG
header("Content-Type: image/png");
imagepng($dst);
break;
default:
break;
}
imagedestroy($dst);
新创建一张图片,然后打印文字水印:
// imagecreatefromstring
// imageCreateFromPng Create a new image from file or URL 创建图片对象
// Create a 300x100 image,新创建一张图片
$im = imagecreatetruecolor(500, 300);
// set color
$red = imagecolorallocate($im, 0xFF, 0x00, 0x00);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);
// Make the background red
// function imagefilledrectangle ($image, $x1, $y1, $x2, $y2, $color) {}
imagefilledrectangle($im, 0, 0, 300, 100, $red);
// Path to our ttf font file
$font_file = "./font/Arial.ttf";
// imagefttext ($image, $size, $angle, $x, $y, $color, $fontfile, $text, $extrainfo = null )
// Draw the text "PHP Manual" using font size 13
imagefttext($im, 13, 0, 150, 50, $black, $font_file, "PHP Manual");
// Output image to the browser
header("Content-Type: image/png");
imagepng($im);
imagedestroy($im);
二、图片水印
图片水印就是将一张图片加在另外一张图片上,主要使用gd库的imagecopy和imagecopymerge。
$dst_path = "myimage.jpg";
$src_path = "http://www.logodashi.com/FileUpLoad/inspiration/636003768803214440.jpg";
//创建图片的实例
$dst = imagecreatefromstring(file_get_contents($dst_path));
$src = imagecreatefromstring(file_get_contents($src_path));
//获取水印图片的宽高
list($src_w, $src_h) = getimagesize($src_path);
//将水印图片复制到目标图片上,最后个参数50是设置透明度,这里实现半透明效果
imagecopymerge($dst, $src, 10, 10, 0, 0, $src_w, $src_h, 30);
//如果水印图片本身带透明色,则使用imagecopy方法
// imagecopy($dst, $src, 10, 10, 0, 0, $src_w, $src_h);
//输出图片
list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);
switch ($dst_type) {
case 1://GIF
header("Content-Type: image/gif");
imagegif($dst);
break;
case 2://JPG
header("Content-Type: image/jpeg");
imagejpeg($dst);
break;
case 3://PNG
header("Content-Type: image/png");
imagepng($dst);
break;
default:
break;
}
imagedestroy($dst);
imagedestroy($src);
效果图:
三、其他有关图像处理的函数/*
*返回图像的大小及图像类型
// Get the size of an image
$size = getimagesize("http://image18-c.poco.cn/mypoco/myphoto/20160901/20/17857099520160901203311082.jpg?750x956_120");
print_r($size);
// 打印结果
Array
(
[0] => 750
[1] => 956
[2] => 2
[3] => width="750" height="956"
[bits] => 8
[channels] => 3
[mime] => image/jpeg
)
*/
/**
* 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 )
// 将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。
/*
*
* http://php.net/manual/zh/function.imagecopymerge.php
*imagecopymerge — 拷贝并合并图像的一部分
*bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )
*
*
*/
更多GD库函数用法,请查PHP手册:
http://php.net/manual/zh/func...
相关文章:
php实现图片上传时添加文字和图片水印
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/30422.html
摘要:我们经常能在图片上看到一些水印,一般分为图片文字或者是两种一起的结合。那么给图片加水印就非常有必要了。怎么用实现给图片加水印呢先来看看效果使用库使用库来实现效果图像处理和手册正所谓授人以鱼不如授人以渔,光贴代码不讲实现过程的,都是耍流氓。 我们经常能在图片上看到一些水印,一般分为图片、文字或者是两种一起的结合。那为什么要加水印呢?目的是为了防止别人盗图、造假或者标注出处等,保护图片原作...
摘要:摘自网络图片水印工具类水印透明度水印横向位置水印纵向位置水印文字字体宋体水印文字颜色水印透明度水印横向位置水印纵向位置水印文字字体水印文字颜色给图片添加水印图片水印图片路径源图片路径目标图片路径给图片添加水印图片可设置水印图片旋转角度水 摘自网络 import java.awt.AlphaComposite; import java.awt.Color; import java.a...
摘要:时间年月日星期五说明本文部分内容均来自慕课网。慕课网教学源码无学习源码第一章课程简介引言通过一个项目案例的讲解,如何在应用中实现图片水印的添加。 时间:2017年07月21日星期五说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学源码:无学习源码:https://github.com/zccodere/s... 第一章:课程简介 1-1 引言 通过一...
摘要:修正中文支持的问题,使用前如果发现乱码,需要进行一些修正解决编码问题,会对输入的文字进行编码转化,如果你使用或者编码的话就会出现乱码,如果你用编码,就查找类库中所有方法中的转码将其删除,如果你采用或者编码,使用进行编码转换。 修正 中文支持的问题,使用前如果发现乱码,需要进行一些修正: 解决编码问题,PHPword 会对输入的文字进行utf8_encode编码转化,如果你使用GBK、...
阅读 1486·2021-10-18 13:32
阅读 2754·2021-09-24 09:47
阅读 1558·2021-09-23 11:22
阅读 2659·2019-08-30 14:06
阅读 807·2019-08-30 12:48
阅读 2218·2019-08-30 11:03
阅读 721·2019-08-29 17:09
阅读 2689·2019-08-29 14:10