Java图片处理(二)图片加水印

图片加水印,是通过图片重叠绘制实现的。实现代码如下:
public static void press(String pressImg, String pressText, String targetImg,
String fontName, int fontStyle, int color, int fontSize, int x, int y) {
try {
File _file = new File(targetImg);
Image src = ImageIO.read(_file);
int wideth = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(wideth, height,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null);
g.setColor(new Color(255, 255, 255, 80));
g.setFont(new Font(fontName, fontStyle, fontSize));
g.drawString(pressText, wideth - fontSize - x, height - fontSize / 2 - y);
//水印文件
File _filebiao = new File(pressImg);
Image src_biao = ImageIO.read(_filebiao);
int wideth_biao = src_biao.getWidth(null);
int height_biao = src_biao.getHeight(null);
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.4f));
g.drawImage(src_biao, (wideth - wideth_biao) / 2,
height - fontSize / 2 - 50, wideth_biao/2-10, height_biao/2-10, null);
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
g.dispose();
FileOutputStream out = new FileOutputStream(targetImg);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
} catch (Exception e) {
System.out.println(e);
}
}
图片设置透明度
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.4f));
g.drawImage(src_biao, (wideth - wideth_biao) / 2,
height - fontSize / 2 - 50, wideth_biao/2-10, height_biao/2-10, null);
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
文字设置透明度
文字的透明度由颜色决定,因此只需要设置颜色的RGBA即可。如下:
Graphics2D g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null);
g.setColor(new Color(255, 255, 255, 80));
g.setFont(new Font(fontName, fontStyle, fontSize));
g.drawString(pressText, wideth - fontSize - x, height - fontSize/ 2 - y);

转载于:https://www.cnblogs.com/asfeixue/p/4505408.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PreTranslateMessage作用和使用方法

PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当需要在MFC之前处理某些消息时,常常要在这里添加代码. MFC 消息控制流最具特色的地方是CWnd类的虚拟函数PreTran…

客户端转向小技巧

ASP和asp.net都有很多转向的方法 还有一个小方法 用Response.Write("<script>parent.location.href[urladdress]</script>")输出一个JAVASCRIPT的转向脚本。 这个方法是在页面文件执行完毕后产生的转向&#xff0c;并且是由发送到客户IE上的JAVASCRIPT执…

C#JsonConvert.DeserializeObject反序列化json字符

需求&#xff1a;需要把第一个id替换掉&#xff0c;在序列化成json dynamic dyn Newtonsoft.Json.JsonConvert.DeserializeObject(json);foreach (var obj in dyn){if (obj.Name "id") {obj.Value dbGuid;break;}}string result Newtonsoft.Json.JsonConvert.Se…

大数据——Zookeeper学习笔记(配置)

具体代码可以参考&#xff1a; https://github.com/Ostrich5yw/java4BigData

20. C# -- Base, this 关键字

Base关键字用途用于从派生类中访问基类的成员&#xff0c;调用基类上已被其他方法重写的方法。指定创建派生类实时应调用的基类构造函数。基类访问只能在构造函数&#xff0c;实例方法或实例属性访问器中进行。从静态方法中使用 base 关键字是错误的。Base 主要用于面向对象开发…

微软技术节(TechFest 2010)最前沿技术汇总

Twitter 替代 微博时代行将过渡&#xff0c;微媒时代即将到来! 不错&#xff0c;所谓的高官|明星|名人|红人就在这里哈www.gg3m.com! 马上关注鸽姆微媒吧&#xff0c;再不来你就要OUT勒~[导读]微软亚洲研究院的技术依然是这次技术节的重要组成部分&#xff0c;约有36个项目被选…

case的深入用法

1.case语句中能不能对一个变量进行赋值 转载于:https://www.cnblogs.com/13306511495/archive/2006/10/24/538827.html

MSN Messenger终于好使了

随手写下来&#xff0c;可能其他朋友有些用处。我的机器是windows 2000 prof&#xff0c;公司使用ms proxy&#xff0c;所以我机器上用了ms proxy的客户端mspclnt。原来用msn7.0&#xff0c;在11月ms自己服务器升级之后就开始不太正常。于是从网上找到了msn7.5&#xff0c;想办…

Oracle数据库优化器的优化方式

Oracle是世界领先的信息管理软件开发商&#xff0c;因其复杂的关系数据库产品而闻名。本文介绍Oracle优化器&#xff0c;它是一个非常好用的工具。Oracle在执行一个SQL之前&#xff0c;首先要分析一下语句的执行计划,然后再按执行计划去执行。分析语句的执行计划的工作是由优化…

Linux任务计划

1、at —— 在未来某个时间点执行一次某任务使用实例&#xff1a;at 时间&#xff1a;设定某个时间点at>COMMANDat>Ctrld指定时间&#xff1a;绝对时间&#xff1a;HH:MM&#xff0c;DD.MM.YY&#xff0c;MM/DD/YY相对时间&#xff1a;now3minutes单位&#xff1a;minute…

大数据——Hadoop学习笔记

具体代码可以参考&#xff1a; https://github.com/Ostrich5yw/java4BigData

day04 笔记

目录 1. 程序的分支控制1.1 单分支结构1.2 二分支结构1.3 多分支结构1.4 条件判断及组合1.5 程序的异常处理2. 程序的循环结构2.1 遍历循环2.2 无限循环2.3 循环控制保留字2.4 循环的高级用法3. random库基本介绍3.1 random库概述1. 程序的分支控制 1.1 单分支结构 根据判断条件…

Inside C++ object Model--对象模型概述

在C中, "数据"和"处理数据的操作"是分开声明的, 语言本身并没有支持"数据和函数"之间的关联性. 这种称为"procedural", 由一组算法函数所驱动, 他们处理的是共同的外部数据. 而C, 则在程序风格, 更在程序的思考上有明显的差异, 它以A…

[转载]男生女生过家家呀

一时兴起百度一下高中时的语文老师&#xff0c;还真搜到了三篇文章。觉得这篇比较有意思&#xff0c;把它贴上来。以我目前的学识和人生阅历&#xff0c;实在没资格评论恩师的文章&#xff0c;不过欢迎大家发表自己的意见啊。 …

Microsoft Visual C++ Runtime Library Runtime Error的解决的方法

打开浏览器时&#xff0c;出现Microsoft Visual C Runtime Library Runtime Error错误&#xff0c;初步预计是软件冲突&#xff0c;可能有多种出错的方式&#xff0c;我的是浏览器自己主动关闭。 一、 有些时候&#xff0c;在你安装、执行某个软件&#xff0c;可能会得到这样一…

java之hibernate之基于外键的一对一单向关联映射

这篇讲解基于外键的一对一单向关联映射 1.考察如下信息&#xff0c;人和身份证之间是一个一对一的关系。表的设计 注意&#xff1a;基于外键的一对一关联的表结构和多对一的表结构是一致的&#xff0c;但是&#xff0c;外键是唯一的。 2.类的结构 Person.java public class Per…

访问被拒绝:“microsoft.web.ui.webcontrols”的解决办法

错误&#xff1a; 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。 分析器错误信息: 访问被拒绝&#xff1a;“microsoft.web.ui.webcontrols”。 &#xff0d;&#xff0d;&#xff0d;&#xff0…

intellij idea 热部署 spring jvm 版

2019独角兽企业重金招聘Python工程师标准>>> 配置 intellij idea tomcat 加入下面这个参数&#xff0c; 对应jar 到 mvnrepo 下载 。 -javaagent:D:\work\springloaded-1.2.3.RELEASE.jar -noverify 转载于:https://my.oschina.net/u/556878/blog/416563

大数据——Hadoop学习笔记(配置)

具体代码可以参考&#xff1a; https://github.com/Ostrich5yw/java4BigData