首页 > 其他分享 >图片水印处理

图片水印处理

时间:2024-03-15 17:23:27浏览次数:18  
标签:处理 BufferedImage 水印 int fontSize dx 图片

public static void main(String[] args) throws IOException {
//读取图片文件信息
File file=new File("C:\Users\Administrator\Desktop\1.png");
//将图片文件转为 BufferedImage 的对象
BufferedImage image= ImageIO.read(file);//注意:这里需要抛一个异常,要不然read()会报错
addTextWaterMark(image,Color.cyan,28,"小卤蛋","C:\Users\Administrator\Desktop\test.png");
System.out.println("图片处理完成!");
}

/**
 * 添加水印
 * @param sourceImg 原图片对象
 * @param textColor 文本颜色
 * @param fontSize  字体大小
 * @param text      文本内容
 * @param outPath   图片输出路径
 */
public static void addTextWaterMark(BufferedImage sourceImg, Color textColor, int fontSize, String text, String outPath) {
   //获取原图片的高和宽
    int height=sourceImg.getHeight();
    int width=sourceImg.getWidth();
    //创建一个与原图片大小一样的图片
    BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);
    //获取图片的画笔对象
    Graphics2D dx=bufferedImage.createGraphics();
    //将原图绘画到空白图片上
    dx.drawImage(sourceImg,0,0,width,height,null);
    //设置水印颜色
    dx.setColor(textColor);
    //这是水印字体
    dx.setFont(new Font("宋体",Font.ITALIC,fontSize));
    //设置水印内容存放的位置
    /*int x=width-2*fontSize;
    int y=height-fontSize/2;*/
    int x = width - (text.length() + 42) * fontSize;
    int y = height- fontSize * 1;
    //设置水印内容
    dx.drawString(text,x,y);
    try(FileOutputStream outimage=new FileOutputStream(outPath)) {
        //保存新生成的图片
        ImageIO.write(bufferedImage,"png",outimage);
    }catch (Exception op){
        op.printStackTrace();
    }finally {
        //释放资源
        dx.dispose();
    }
 }

标签:处理,BufferedImage,水印,int,fontSize,dx,图片
From: https://www.cnblogs.com/yz157/p/18075866

相关文章

  • 通过傅立叶转换对图片增加盲水印
    嗯,很多公司内部oa或者im都加了水印,比如著名阿里月饼事件brewinstallfftwbrewinstallimagemagick--with-fftwconverttest.jpg-fftfft.pngconvertmark.png-rotate180mark1.pngconvertfft-1.pngmark.png-gravitynorthwest-geometry+1382+1124-compositeff......
  • 如何批量压缩图片的大小?
    随着智能电子设备的不断升级,图片已经成为我们日常生活和工作中不可或缺的一部分。然而,随着图片清晰度越高,文件也变得更大,如何压缩这些图片成为了许多人头疼的问题。特别是在需要上传大量图片到网络或制作电子文档时,图片的大小往往成为了一个限制因素。接下来就来探讨一下如何实现......
  • 振弦采集仪的操作方法及数据处理技术的一般步骤
    振弦采集仪的操作方法及数据处理技术的一般步骤岩土工程监测中,河北稳控科技振弦采集仪是用来测量土壤或岩石中的振动特性的仪器。下面是振弦采集仪的操作方法及数据处理技术的一般步骤: 1.准备工作:安装振弦采集仪的支架或支架,确保仪器的稳定性和准确性。2.连接仪器:将振弦采......
  • React-hook-form-mui(二):表单数据处理
    前言在上一篇文章中,我们介绍了react-hook-form-mui的基础用法。本文将着表单数据处理。react-hook-form-mui提供了丰富的表单数据处理功能,可以通过watch属性来获取表单数据。Demo下面是一个使用watch属性的例子:importReactfrom'react';import{useForm}from're......
  • MogDB-openGauss事务处理语句
    MogDB/openGauss事务处理语句事务是由一组SQL语句序列构成的原子操作集合,它具有原子性、一致性、隔离性和持久性的特点。用户在开始执行一个SQL语句时,实际上就已经开始了一个隐式的事务,而SQL语句执行结束,隐式的事务也会根据SQL语句的执行成功与否分別进行提交(Commit)......
  • ELK日志处理部署笔记-2
    logstash概述什么是logstash-是一个数据采集、加工处理以及传输的工具特点-所有类型的数据集中处理-不同模式和格式数据的正常化-自定义日志格式的迅速扩展-为自定义数据源轻松添加插件为什么使用logstash将日志转化为json使elasticasearch可读下载#logstash的配置文件......
  • 多bit信号跨时钟域(CDC)处理方法
    参考csdn:(1)跨时钟域处理解析(一)-CSDN博客(2)FPGA学习笔记——跨时钟域(CDC)设计之多bit信号同步_多bit同步skew约束-CSDN博客(3)跨时钟传输——多比特_多bit跨时钟域-CSDN博客参考其他:(1)【数字IC】异步FIFO设计详解(含源码)-知乎(zhihu.com)1.亚稳态问题        首先......
  • Grafana将监控信息渲染成图片并且邮件发送的过程
    Grafana将监控信息渲染成图片并且邮件发送的过程背景去年12月份时自己创建了一套Grafana监控可以监控redis,hikari,启动时间,补丁更新时间等等事项.但是因为后续的事情比较多,一直有一点荒废了.最近折腾阿里云,让阿里云给自己发了一个简单的大屏展示.突然想其实自己也可......
  • 新版一键AI视频图片换脸神器来了!目前最强的AI视频换脸工具Swapface!
    大家好,我是程序员晓晓之前发过一款AI换脸工具,可惜部署门槛太高,有没有换头换脸的AI工具?今天晓晓就给你们安排到家!SwapfaceAI工具一键开箱包‍它使用先进的人工智能和计算机视觉技术,可以在几秒内为你的视频生成逼真的面部替换效果。无需任何复杂的参数设置,你只需要......
  • 【rust】《处理报错Cannot find a libtorch install, you can either:》
    在学习rust的tch-rs框架的时候,引入依赖并运行小demo的时候报错了;错误信息如下:报错信息Cannotfindalibtorchinstall,youcaneither:-InstalllibtorchmanuallyandsettheLIBTORCHenvironmentvariabletoappropriatepath.-Useasystemwideinstallin/us......