好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>CMS系统>Dedecms
<tfoot draggable='sEl'></tfoot>

php给图片加文字水印 php在图片上添加文字

很多站长朋友们都不太清楚php给图片加文字水印,今天小编就来给大家整理php给图片加文字水印,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 关于PHP给图片添加水印的问题,求大神解答 2、 php如何给图片加文字水印 3、 PHP给图片添加文字水印 4、 PHP如何根据图片色阶不同添加水印 5、 PHP给图片加水印的思想是什么? 6、 图片怎么添加文字水印 关于PHP给图片添加水印的问题,求大神解答

加两文字水印,弄成加两次水印就行,不过效率就差点。可以考虑加图片的水印

你用什么编辑器?如果是记事本的话很容易出现乱码问题,网页是UTF-8了,但是你记事本存储的却是GBK。推荐用Editlus 3,网上有注册版的。

php如何给图片加文字水印

我知道的有三种,都是使用GD库的image函数

一种是直接在图片上写文字

imagefttext();

一种是带透明度的水印图片

imagecopy();

还有一种是可以自定义水印图片透明度的

imagecopymerge();

你想要什么效果,可以接着细说

PHP给图片添加文字水印

请确认C:\WINDOWS\Fonts\simkai.ttf';是否支持中文

或不要转换

$str = iconv('GB2312','UTF-8',$str);

直接

$str=$str;

PHP如何根据图片色阶不同添加水印

在使用php编程的时候, 很多时候需要对上传的图片加水印,来确定图片版权和出处. 但是,一般情况下加水印的位置是图片的右下角, 但是,不同图片的色阶不同,有时候我们 图片的水印和图片本身色阶相同,就会造成水印不明显.

下面这段代码可以实现自动识别图片的色阶,更加色阶差来添加图片的水印,这样可以避免水印和图片色阶一样的弊端.

<?php

function add_wm($nmw_water, $src_file, $output_file, $x, $y) {

if(file_exists($output_file))

return;

$w1 = MagickGetImageWidth($nmw_water);

$h1 = MagickGetImageHeight($nmw_water);

$nmw =NewMagickWand();

MagickReadImage($nmw, $src_file);

// 默认的加水印位置调整

$lt_w = 50;

$lt_h = 50;

if($x == 0){

$w = MagickGetImageWidth($nmw);

$h = MagickGetImageHeight($nmw);

$x = $w;

$y = $h;

}else{

// 根据具体情况调整

$lt_w = 30;

$lt_h = 40;

}

MagickCompositeImage($nmw, $nmw_water, MW_OverCompositeOp, $x - $w1 - $lt_w, $y - $h1 - $lt_h);

MagickWriteImage($nmw, $output_file);

DestroyMagickWand($nmw);

}

// 还是groovy的eachFileRecurse好用啊

function add_wm_recurse($nmw_water, $to_dir, $output_dir, $arr) {

$dp = dir($to_dir);

while($file=$dp->read()){

if($file != '.' $file != '..'){

if(is_dir($to_dir . '/' . $file)){

mkdir($output_dir . '/' . $file);

add_wm_recurse($nmw_water, $to_dir . '/' . $file, $output_dir . '/' . $file, $arr);

}else{

if(!array_key_exists($to_dir . '/' . $file, $arr)){

continue;

}

$sub_arr = $arr[$to_dir . '/' . $file];

if($sub_arr){

$x = intval($sub_arr[0]);

$y = intval($sub_arr[1]);

add_wm($nmw_water, $to_dir . '/' . $file, $output_dir . '/' . $file, $x, $y);

}

}

}

}

$dp->close();

}

$to_dir = './resized';

$output_dir = './output';

// 这个是我用java的ImageIO遍历图片像素获取的符合裤子颜色的区域的坐标array(posX, posY)

$arr = array(

array(50, 50)

);

$water = './water.png';

$nmw_water =NewMagickWand();

MagickReadImage($nmw_water, $water);

add_wm_recurse($nmw_water, $to_dir, $output_dir, $arr);

DestroyMagickWand($nmw_water);

?>

补充:

PHP图像处理模块 MagickWand用法

MagickWand 是一个PHP的模块,用来访问 ImageMagick 的图像处理库。下面是一个使用 MagicWand 的代码片段:

$magick_wand=NewMagickWand();

MagickReadImage($magick_wand,'rose.jpg');

$drawing_wand=NewDrawingWand();

DrawSetFont($drawing_wand,"/usr/share/fonts/bitstream-vera/Vera.ttf");

DrawSetFontSize($drawing_wand,20);

DrawSetGravity($drawing_wand,MW_CenterGravity);

$pixel_wand=NewPixelWand();

PixelSetColor($pixel_wand,"white");

DrawSetFillColor($drawing_wand,$pixel_wand);

if (MagickAnnotateImage($magick_wand,$drawing_wand,0,0,0,"Rose") != 0)

{

MagickEchoImageBlob( $magick_wand );

}

else

{

echo MagickGetExceptionString($magick_wand);

}

?>

安装方法:

1. 下载 php_magickwand_q16_st.dll for 5.2.x

2. 将其放在PHP的扩展目录

3. 在php.ini文件总增加 extension=php_magickwand_q16_st.dll

4. 重新启动apache

PHP给图片加水印的思想是什么?

贴个php的图片处理类 你可以自己研究下 共同进步 呵呵

/*

此类包含以下功能

A.生成缩略图

B.给图片添加文字水印(包括中文)

C.将指定的图片旋转90度/180度/270度,并保存至文件

D.将图片水平/垂直翻转,并保存至文件

E.在线裁剪图片任意部分矩形(正在编写之中)

具体目标效果暂时可以参考

期待您的响应

成员函数说明

---------------------------------------------------------------------------------------------

public void CImage::__construct(string $src_image_file)

功能:类CImage的构造函数

参数

$src_image_file 字符串,源图片文件名 注意,目前只支持gif,png,jpeg,jpg格式,这是GD库的限制,并非本程序的局限

---------------------------------------------------------------------------------------------

public bool CImage: thumb($image_dist,$x)

功能:根据源图片生成缩略图,并保存至文件

$image_dist 字符串 目标缩略图片路径及文件名 如 /File/th.jpg

$x 整型 目标缩略图片的尺寸限制即当原始图片的宽大于高时,那么新的缩略图的宽为$x,反之高为$x

---------------------------------------------------------------------------------------------

public bool image_press($image_dist,$str,$font="simkai.ttf")

函数功能:

图片生成水印并保存新图片至目标文件

参数说明:

$image_dist 字符串 目标图片名

$str 字符串 要写入到图片水印的字符串

$font 字符串 合法的系统字体名或WEB目录中正确的字体文件名

---------------------------------------------------------------------------------------------

public bool rotate($image_dist,$angle)

函数功能:

将源图片旋转一定角度并将新图片保存至文件

参数说明:

$image_dist 字符串 目标图片文件名

$angle 整数 要旋转的角度 只能是90或180或270度

---------------------------------------------------------------------------------------------

public bool rotate_h($image_dist)

函数功能:

将源图片水平翻转,并将新图片保存至文件

参数说明:

$image_dist 字符串 目标图片文件名

---------------------------------------------------------------------------------------------

public bool rotate_v($image_dist)

函数功能:

将源图片垂直翻转,并将新图片保存至文件

参数说明:

$image_dist 字符串 目标图片文件名

---------------------------------------------------------------------------------------------

使用范例:

$p=new CImage("s.jpg"); //创建一个图片处理对象

$p->thumb("thumb.jpg",300); //生成缩略图 限制尺寸为300,保存为thumb.jpg

$p->rotate("rt.jpg",90); //旋转90度,并保存为rt.jpg,类似地,你可以将90换成180,270进行旋转

$p->rotate_h("h.jpg"); //水平翻转

$p->rotate_v("v.jpg"); //垂直翻转

*/

class CImage{

var $src_image;

var $width;

var $height;

var $image_type;

var $img;

var $src_x;

var $src_y;

function __construct($image_file)

{

$info=GetImageSize($image_file);

$this->src_image=$image_file;

$this->width=$info[0];

$this->height=$info[1];

switch($info[2])

{

case 1:

$this->image_type="gif";

break;

case 2:

$this->image_type="jpeg";

break;

case 3:

$this->image_type="png";

break;

default:

return false;

//echo("Unsurport Image type.");

break;

} //swith end

//echo "ok";

$new_function='ImageCreateFrom'.ucfirst($this->image_type);

$this->img=$new_function($this->src_image);

$this->src_x=ImageSX($this->img);

$this->src_y=ImageSY($this->img);

}

function thumb($image_dist,$x) //$x为新图的限制边的尺寸

{

$src_x=ImageSX($this->img);

$src_y=ImageSY($this->img);

$scale=min($x/$src_x,$x/$src_y);

if($scale<1)

{

$new_x=floor($scale*$src_x);

$new_y=floor($scale*$src_y);

$img_tmp=ImageCreateTrueColor($new_x,$new_y); //set the size of Canvas for the new Image

ImageCopyResampled($img_tmp,$this->img,0,0,0,0,$new_x,$new_y,$src_x,$src_y); //Resampled

ImageDestroy($this->img);

$new_function="Image".ucfirst($this->image_type);

return $new_function($img_tmp,$image_dist);

}

} // thumb end

//给图片生成文字水印

function image_press($image_dist,$str,$font="simkai.ttf") {

$str=iconv("GB2312","utf-8",$str);

$blue=ImageColorAllocate($this->img,90,255,255);

$white=ImageColorAllocate($this->img,255,0,0);

ImageTTFText($this->img,20,0,$this->src_x/2/2,$this->src_y-80,$white,$font,$str);

$new_function="Image".ucfirst($this->image_type);

return $new_function($this->img,$image_dist);

}

function rotate($image_dist,$angle)

{

$img_tmp=null;

$new_function="Image".ucfirst($this->image_type);

if(($angle!=90)($angle!=180)($angle!=270))

{

echo("Un-valid angle on calling CImage::rotate(\$image_dist,\$angle) .<p>The valid angle must be 90 or 180 or 270.");

return false;

}

if(($angle==90)||($angle==270))

{

$img_tmp=ImageCreateTrueColor($this->src_y,$this->src_x);

}

else

{

$img_tmp=ImageCreateTrueColor($this->src_x,$this->src_y);

}

switch($angle)

{

case 90:

for($i=0;$i<$this->src_x;$i++)

{

for($j=0;$j<$this->src_y;$j++)

{

ImageSetPixel($img_tmp,$this->src_y-$j-1,$i,ImageColorAt($this->img,$i,$j));

}

}

return $new_function($img_tmp,$image_dist);

break;

case 180:

for($i=0;$i<$this->src_x;$i++)

{

for($j=0;$j<$this->src_y;$j++)

{

ImageSetPixel($img_tmp,$this->src_x-$i-1,$this->src_y-$j-1,ImageColorAt($this->img,$i,$j));

}

}

return $new_function($img_tmp,$image_dist);

break;

case 270:

for($i=0;$i<$this->src_x;$i++)

{

for($j=0;$j<$this->src_y;$j++)

{

ImageSetPixel($img_tmp,$j,$this->src_x-$i-1,ImageColorAt($this->img,$i,$j));

}

}

return $new_function($img_tmp,$image_dist);

break;

} //end switch

} //end rotate

function rotate_h($image_dist)

{

$new_function="Image".ucfirst($this->image_type);

$img_tmp=ImageCreateTrueColor($this->src_x,$this->src_y);

ImageCopyResampled($img_tmp,$this->img,0,0,$this->src_x-1,0,$this->src_x,$this->src_y,-$this->src_x,$this->src_y); //水平翻转

return $new_function($img_tmp,$image_dist);

}

function rotate_v($image_dist)

{

$new_function="Image".ucfirst($this->image_type);

$img_tmp=ImageCreateTrueColor($this->src_x,$this->src_y);

ImageCopyResampled($img_tmp,$this->img,0,0,0,$this->src_y-1,$this->src_x,$this->src_y,$this->src_x,-$this->src_y);

return $new_function($img_tmp,$image_dist);

}

} //end CImage

图片怎么添加文字水印

快速给图片加文字水印的方法:

第1步,安装打开优速水印工厂,点击软件左边上面的【图片水印】功能。

第2步,将需要添加文字的图片添加到软件中,软件支持批量处理,所以可以一次性添加多张图片到软件中,能帮助我们节省时间。

第3步,添加好图片后进行设置,如下图所示:水印类型选择“文字水印”;然后设置水印样式,一共有四种,根据自己的需求设置;接下来输入文字内容;最后设置文字的大小/颜色/透明度/位置等参数。上方可以预览到添加文字水印后的样子。

第4步,没问题的话就点击【开始转换】按钮,启动软件。处理完成后软件会自动打开一个文件夹,添加文字后的图片会保存到里面。

第5步,查看添加水印后的图片可以看到,所有的图片都统一加上了文字水印!

关于php给图片加文字水印的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php给图片加文字水印 php在图片上添加文字的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did167743
更新时间:2023-03-31   阅读:37次

上一篇: phpmvc发展 php中mvc的概念

下一篇:初学php好学吗 学php有什么出路嘛

相关资讯

最新资料更新

  • 1.dede:channel标签支持调用子栏目描述description及关键词keywords的办法
  • 2.dedecms出现Please set request_order ini value to inc
  • 3.dedeCMS使用list标签调用文章日期的方法
  • 4.dedecms列表页上一页下一页翻页单独调用的方法
  • 5.dedecms在Nginx服务器上验证码不显示解决方法
  • 6.dedecms的dedesql.class.php on line 489错误的解决方法
  • 7.详解织梦DEDECMS站点内容自动更新到新浪微博的方法
  • 8.DedeTag Engine Create File False 提示的种种原因及解决方法小结
  • 9.详解织梦模板DEDE首页列表页AJAX无限加载瀑布流修正版
  • 10.织梦DedeCMS在实现中英文导航功能方法步骤
  • 11.使用dedecms搭建自己的本地网站(全程图解)
  • 12.修改dedecms文章标题长度限制的方法
  • 13.dedecms5.7 通过替换文件升级后 所有档案列表为空的解决方法
  • 14.dedecms织梦远程图片本地化https链接图片无法本地化怎么解决
  • 15.DEDECMS会员信息在个人模板info和index的调用问题
  • 16.dede调用其他栏目的文章或者缩略图列表且有分页效果的方法
  • 17.织梦网站后台底部被挂黑链的解决方法详细解析
  • 18.dedecms列表推荐文章默认为加粗的修改方法
  • 19.织梦Dedecms5.7整站调用购物车订单数量简单解决办法
  • 20.DEDECMS最为常用的分页标签及分页样式代码

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]