java如何添加自定义的图片_java代码将图片加上自定义水印 -4

java代码将图片加上自定义水印,然后生成了新的图片

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics2D;

import java.awt.Image;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.FileOutputStream;

import javax.imageio.ImageIO;

/** * @author :liu.lu

* @version 创建时间:2018年4月24日 下午9:04:20

Description:

*/

public class WaterMarkUtils {

/**

* @param srcImgPath 源图片路径

* @param tarImgPath 保存的图片路径

* @param waterMarkContent 水印内容

* @param markContentColor 水印颜色

* @param font 水印字体

*/

public void addWaterMark(String srcImgPath, String tarImgPath, String waterMarkContent,Color markContentColor,Font font) {

try {

// 读取原图片信息

File srcImgFile = new File(srcImgPath);//得到文件

Image srcImg = ImageIO.read(srcImgFile);//文件转化为图片

int srcImgWidth = srcImg.getWidth(null);//获取图片的宽

int srcImgHeight = srcImg.getHeight(null);//获取图片的高

// 加水印

BufferedImage bufImg = new BufferedImage(srcImgWidth, srcImgHeight, BufferedImage.TYPE_INT_RGB);

Graphics2D g = bufImg.createGraphics();

g.drawImage(srcImg, 0, 0, srcImgWidth, srcImgHeight, null);

g.setColor(markContentColor); //根据图片的背景设置水印颜色

g.setFont(font);              //设置字体

//设置水印的坐标

int x = srcImgWidth - 2*getWatermarkLength(waterMarkContent, g);

int y = srcImgHeight - 2*getWatermarkLength(waterMarkContent, g);

g.drawString(waterMarkContent, x, y);  //画出水印

g.dispose();

// 输出图片

FileOutputStream outImgStream = new FileOutputStream(tarImgPath);

ImageIO.write(bufImg, "jpg", outImgStream);

System.out.println("添加水印完成");

outImgStream.flush();

outImgStream.close();

} catch (Exception e) {

// TODO: handle exception

}

}

public int getWatermarkLength(String waterMarkContent, Graphics2D g) {

return g.getFontMetrics(g.getFont()).charsWidth(waterMarkContent.toCharArray(), 0, waterMarkContent.length());

}

public static void main(String[] args) {

Font font = new Font("微软雅黑", Font.PLAIN, 35);                    //水印字体

String srcImgPath="D:\\temp\\picture\\魔方.jpg"; //源图片地址

String tarImgPath="D:/temp/t.jpg"; //待存储的地址

String waterMarkContent="我爱生活";  //水印内容

Color color=new Color(135,206,250,130);            //水印图片色彩以及透明度

new WaterMarkUtils().addWaterMark(srcImgPath, tarImgPath, waterMarkContent,color,font);

}

}

测试结果:

原图片:

1c4cbcf4027d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

加完之后:

1c4cbcf4027d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

下面在给大家弄个之前在linux上弄的转换图片脚本 centos7系统。

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

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

相关文章

vba 当前文件名_值得学习和珍藏的VBA常用编程代码语句

分享成果,随喜真能量。大家好,今天继续和大家分享VBA编程中常用的过程代码。过程代码在这里讲解的语句非常简单单一,简单的语句组合起来就是一个复杂的过程,我们要认真掌握这些简单的过程,为我们复杂的工程服务。这也是…

分别对时分秒加减的java_Java中关于获取时间(日期)的总结大全

文章目录1.相关类1.1 java.util.Date1.2 java.text.DateFormat(抽象类)1.3 java.text.SimpleDateFormat(DateFormat的直接子类)1.4 java.util.Calendar(抽象类)2.示例2.1 日期取值2.1.1 获取当前系统时间(毫秒数)2.2 日期转换2.2.1 日期转字符串、字符串转日期2.2.2 将日期转换…

python仪表指针识别_一种指针式仪表的识别方法

一种指针式仪表的识别方法杨世杰,张平【摘要】当前指针式仪表识别技术日益成熟,其中指针形状和位置的识别大多采用Hough变换算法,传统的Hough变换算法运算时间长、储存空间大,使得识别过程效率低下。针对以上缺点,提出…

树莓派python编程读取电压_《树莓派Python编程指南》——3.2 在结构体中存储值-阿里云开发者社区...

本节书摘来自华章计算机《树莓派Python编程指南》一书中的第3章,第3.2节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区“华章计算机”公众号查看。3.2 在结构体中存储值除了简单数据类型,Python还允许我们将数据用不同…

java上传csv错误信息_java处理csv文件上传示例详解

前言:示例只是做了一个最最基础的上传csv的示例,如果要引用到代码中去,还需要根据自己的业务自行添加一些逻辑处理。ReadCsvUtil工具类package com.hanfengyeqiao.gjb.utils;import java.io.*;import java.util.*;/*** csv工具类*/public cla…

Java 数据库进度条_java进度条

练习JProgressBar结合Timer使用。代码如下:package luojing;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.Timer;import java.util.TimerTask;public class NewClass{static JProgressBar jpb null;static JButton jb null;…

暗金色 rgb_杜伽TAURUS K310樱桃RGB红轴体验:做工精良、手感优秀

前言DURGOD杜伽的机械键盘一直以简约的外形和优秀的手感而备受好评。笔者之前用过杜伽的K310、K320两个系列的多把键盘,对其非常熟悉,外形简约大方,手感、灯效也比较满意。正因如此,这次刚刚入手了一把杜伽K310 RGB樱桃红轴&#…

vim 显示行号_Vim给文件加行号,这通惊为天人的操作没sei了!文末天书慎点

引言一般 Vim 使用 :set number 命令,在编辑器显示行号。本文展示了如何将行号插入到正文中,或者只插入到段落中。此外,还提供了打印行号的选项(Vim 可以打印带有数字的行,并且不需要文件有数字)。Vim可以使用 :s 命令在每行之前插…

java 获取对象方法有哪些方法有哪些方法有哪些_Java中创建String 对象的方法有哪些...

Java中创建String 对象的方法有哪些发布时间:2020-11-25 16:45:30来源:亿速云阅读:71作者:Leah这篇文章将为大家详细讲解有关Java中创建String 对象的方法有哪些,文章内容质量较高,因此小编分享给大家做个参…

bvp解算器是什么_对数小史,以及为什么ln x的导数是1/x

为什么 lnx 求导是 1/x?​www.zhihu.com现代的数学体系——包括一般的高中和大学教学,一般都将“对数函数”定义为“指数函数”的反函数。不过,鲜为人知的是,在数学史上,“对数”这个概念反而比“指数”出现的更早&…

supermap iserver java 6r许可_SuperMap iserver Java 6R 在 linux 上安装和配置 | 学步园

一.安装JDK1.进入到放置JDK目录下输入命令:./jdk-6u14-linux-i586.bin 开始安装jdk ,安装的时候会让你输入yes(如果提示你权限不够的话 可以输入命令:chmod 755 jdk-6u14-linux-i586.bin 改变权限)2.配置java运行环境 这里我采用的是编写一个…

vb中怎么使图片适应框的大小_叮!VB考前练习了解一下?

1、Visual Basic窗体设计器的主要功能是(C )。A) 画图B) 编写源程序代码C) 建立用户界面D) 显示文字解析:Visual Basic窗体设计器简称窗体(Form),是应用程序最终面向用户的窗口,它对应于应用程序的运行结果。各种图形、图像、数据等都是…

苹果切换输入法_日语输入法哪个好

在初学日语的时候经常会遇到一些不认识的词,想查一下这个词是什么意思,应该怎么输入呢?尝试过许多软件之后,テツ为大家总结了一些认为比较好用的输入法百度IME输入法。下载安装后的切换非常简单,在右下角输入法处切换至JP日语即可…

开源社交系统java_JAVA 开源 SNS 社交系统 JEESNS V0.8 发布

JAVA 开源 SNS 社交系统 JEESNS V0.8 发布2017.02.17 JEESNS V0.8升级说明后台界面全新升级后台增加微博搜索功能增加了会员操作日志、会员动态微博、微博评论增加会员功能群组帖子增加置顶、精华功能限制微博输入内如字数、输入内容时字数统计微博增加Emoji表情增加微博、文章…

python 10个100以内随机整数编辑_你要偷偷的学Python,然后惊呆所有人(第五天) - python阿喵

标题无意冒犯,就是觉得这个广告挺好玩的前言前期回顾:你要偷偷学Python,然后惊呆所有人(第四天)在第四天的时候,我们接触了Python的模块调用,这也是Python能够火起来的一大优势。我们还实践了csv模块。不过冷静下来想想…

广义线性模型_广义线性模型(第六章补充)

上一篇文章(第六章)主要介绍了最大熵模型,并从中推导出逻辑斯谛回归,感觉意犹未尽。在复习了CS229 Lecture note之后,我决定重新整理思路:从广义线性模型的角度来看逻辑斯谛回归。最后,基于样本…

安卓开发怎么调用photopicker_谷歌出手整顿安卓应用程序乱象:无良权限的APP们再见了!...

相信你在使用安卓手机的时候一定有过这样的经历,在明确拒绝了软件调用电话、手机通讯录、短信等敏感内容的访问权后,APP表示无法继续运行然后强退。如果这款APP不具备可替代性,恐怕最终结果是,用户不得不选择妥协。关于应用程序度…

react router官方文档_阿里开源可插拔 React 跨端框架 UmiJS

点击上方“开发者技术前线”,选择“星标”18:30 在看 真爱作者:Tamic | 编辑: 可可阿里之前开源:阿里闲鱼开源 Flutter 应用框架 Fish Redux! 今天介绍的是前端React 框架- UmiJS。介绍umi官方宣称是一个…

java约瑟夫环迭代器_Josephus约瑟夫环问题的不同实现方法与总结

/************************************************************************//* Josephus问题——数组实现 *//************************************************************************/#include #include int Josephus(int t…

ios 下拉放大 上拉缩小_为啥鞠婧祎发量这么多?截图放大十倍她的“发缝”,网友:真密集...

​鞠婧祎,这位女明星真的是黑,红,黑,红。这不是秘密。鞠婧祎最近几天的确很受欢迎。甚至头发也受到质疑。一般而言,娱乐业的演艺人员由于多年来的工作时间安排不规则以及采取巴拉克拉法帽的行为,通常都有使…