java BufferedImage(图片内存缓冲区)——批量加水印

BufferedImage 图片打水印 通过 java BufferedImage 程序给图片上打水印 阅读详情

要求:
把一个图片复制一百张,再给每一张加随机位置的水印

package com.oracle.cl;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Random;

import javax.imageio.ImageIO;

public class PrintImage
{

	static Random random=new Random();
	public static void main(String[] args) throws IOException
	{
//		把一个图片复制一百张
		File file=new File("D:\\hello.jpg");
			InputStream in=new FileInputStream(file);
			byte[] b=new byte[in.available()];
			in.read(b);
			for(int i=1;i<=100;i++)
			{
			File f2=new File("D:\\export\\hello"+i+".jpg");
			File parentFile = f2.getParentFile();
			if(!parentFile.exists())
			{
				parentFile.mkdirs();
			}
			OutputStream out=new FileOutputStream(f2);
			out.write(b);
			out.close();
		    }
//			批量加水印
			File dir=new File("D:\\export");
			File[] listFiles = dir.listFiles();
			for(int i=0;i<listFiles.length;i++)
			{
				BufferedImage read = ImageIO.read(listFiles[i]);
				Graphics graphics = read.getGraphics();
				graphics.setColor(Color.PINK);
				int heigh=read.getHeight();
				int width=read.getWidth();
				int x=random.nextInt(width);
				int y=random.nextInt(heigh);
				graphics.setFont(new Font("微软雅黑",Font.BOLD,20));
				graphics.drawString("http://www.baidu.com", x, y);
				ImageIO.write(read, "jpg", listFiles[i]);
				
			}
			
	}
}

运行结果:
在这里插入图片描述
在这里插入图片描述

Java图片处理实战:从BufferedImage到Thumbnailator,掌握核心操作与性能优化 在软件开发中,图像处理是一项基础且高频的需求,涉及图片的读取、缩放、裁剪、合并与添加水印等核心操作。其原理通常围绕内存中的像素数据操作与图形上下文渲染展开。Java凭借其稳定的JVM、强大的标准库和成熟的生态,在企业级应用中处理这类任务具有独特的工程价值,尤其适合需要高可靠性、跨平台部署以及批量处理的场景,例如电商平台的商品图处理、内容管理系统或报表生成。通过深入理解`BufferedImage`和`Graphics2D`等JDK原生类的运作机制,开发者能够进行精细化的像素级控制;而借助`Thumbnail 阅读详情

相关推荐

Java图片与Base64互转:原理、实战与性能优化指南

Base64编码是一种将二进制数据转换为ASCII字符串的编码方案,其核心原理是将每3个字节(24位)重新划分为4组6位数据,每组映射到64个可打印字符之一。这种编码技术的主要价值在于能够在仅支持文本传输的协议(如HTTP、JSON、XML)中安全嵌入图片等二进制数据,解决了控制字符在文本协议中可能引发的解析错误问题。在Java开发实践中,图片与Base64的相互转换是文件I/O处理、网络传输和数据持久化的基础操作,广泛应用于用户头像上传、邮件图片嵌入、前端Data URL生成和图片缓存等场景。针对大文件处

weixin_34295316的博客 417

java技术_Java 为图片添加水印 | 技术

黑马程序员微信号:heiniu526传智播客旗下互联网资讯,学习资源免费分享平台1概述· 需求对本地硬盘上图片添加水印,防止别人盗用图片版权。原图效果:加文字水印后效果:2读取图片Java 中进行图像 I/O 有三种方式· 方式一Java Image I/O API,支持常见图片,从 Jdk 1.4 开始就内置了。· 方式二JAI 中的 Image I/O Tools,支持更多图片类型...

weixin_39684967的博客 440

【WRF-CMAQ实战指南】从环境配置到测试案例运行全解析

本文详细解析了WRF-CMAQ从环境配置到测试案例运行的全过程,包括系统环境检查、依赖库安装、源码获取与项目初始化、关键配置技巧、编译实战与排错、测试案例运行验证等关键步骤。通过实战指南,帮助用户快速掌握WRF-CMAQ的安装和运行技巧,提升空气质量模拟的效率。

year5的博客 244

java image内存释放_Java - BufferedImage导致高内存使用率被多个线程加剧?

这个问题有许多相似的主题,但我还没有找到解决方案。基本上,我所做的是异步更新ArrayList。然而,这并不是真正相关的,因为无论是否同步或异步运行都会发生高内存使用,但是当我同步运行时,它比不同步运行时更重要(仍然是重要的imo)(可能是因为BufferedImage)存储在多个线程上,而不是多次在单个线程上覆盖。)这是我为异步部分所做的工作。忍受我,第一次我做过异步任务,所以它可能很糟糕,但它...

weixin_39623750的博客 3244

组态王|组态王通过选择日期实现历史数据的查询

②在弹出的【插入通用控件】对话框选择【Calender Control】控件,然后点击【确定】按钮,关闭对话框,然后在画面上适当的位置按住鼠标左键并拖动,绘制出一个矩形框,放开鼠标,就完成了控件的绘制。此函数将指定的时间格式(年,月,日,时,分,秒)转换为以秒为单位的长整型数,转换的时间基准是UTC(格林尼治)1970年1月1日00:00:00。实现内容,通过两个日历控件选择开始日期和结束日期,然后点击【历史数据查询】按钮,在报表中显示对应时间段的数据集。另外你用过哪些组态软件?

做有价值的事,积累有价值的笔记! 4565

个人信息保护合规审计人员(中级)能力测试试卷

本文是关于个人信息保护合规考试的试题解析,内容涵盖《个人信息保护法》相关规定。试卷包含单选题、多选题、判断题、简答题和案例分析题五种题型,总分100分,考试时间120分钟。试题重点考察个人信息处理的基本原则、敏感个人信息处理要求、合规审计流程、个人信息保护影响评估等内容。通过案例分析题详细解析了人脸识别登录、数据共享、跨境传输等场景下的合规要求。参考答案均严格依据《个人信息保护法》等法律法规,为个人信息处理活动提供了明确的合规指引。

qq_41525079的博客 853

Java:实现为图片添加水印并保存 (附带源码)

通过本项目,我们实现了一个简单的Java程序,能够在图像上添加文字水印和图片水印。使用Graphics2D类,我们可以灵活地控制水印的外观,包括位置、透明度、颜色等,并通过ImageIO.write()保存修改后的图像。

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 4054

机械臂TCP标定实战:从四点法到六点法的精度跃迁

本文详细解析机械臂TCP标定技术,从基础的四点法到高精度的六点法实现精度跃迁。通过工具坐标系与基坐标系的转换原理,结合实战案例展示六点法如何将装配合格率提升至99.5%,并分享环境控制、操作技巧等提升标定精度的关键要素。

weixin_29038345的博客 896

ImageIO 添加图片水印

第二部分,旋转设置,获取图标宽度、高度,并计算图标的中心坐标(x, y), 此坐标x指的是左边距,y指的是上边距;其中计算图标中心的位置x等于(图片宽度-右边距-图标宽度/2),计算图标中心的位置y等于(图片高度-下边距-图标高度/2);其中写出图片水印时仍然需要计算图标坐标(x, y),其中计算图标位置x(左边距)等于(图片宽度-右边距-图标宽度),计算图标的位置y(上边距)等于(图片高度-下边距-图标高度)第一部分,新建内存图片(宽度、高度与源图片宽度、高度相同),并把源图片写入到新建的内存图片中。

Mointor 315

HC32F460 FPU实战:从零开启硬件浮点加速

本文详细介绍了如何在HC32F460开发板上启用和优化FPU(浮点运算单元),以显著提升硬件浮点运算性能。从工程配置、关键代码修改到实战优化技巧,全面解析FPU加速的实现方法,并分享常见问题的解决方案,帮助开发者避免常见陷阱,充分发挥HC32F460的硬件潜力。

weixin_42620340的博客 348

【人工智能】OpenClaw网关API速率限制报错全解析 API rate limit reached. Please try again later.

对应HTTP标准状态码为429(请求过多)。该报错集中出现在OpenClaw GATEWAY DASHBOARD的聊天会话界面,核心特征为:用户最初以为是单一模型服务商的问题,先后更换OpenAI、Gemini、Ollama、Moonshot、Mercury-2等多个主流大模型API后,该报错仍稳定触发,尤其在执行复杂任务时高频出现。

奶爸的编程之路,也就一周冷个三天 6459

java 批量为图片添加图标水印和文字水印

需求,给指定目录下面以.jpg结尾的文件,添加图标水印和文字水印 package com.gblfy.util; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.Fil

Gblfy_Blog 1360

【Docker】一招解决超时镜像超时报错:`ERROR: Get https://registry-1.docker.io/v2/`

Docker 镜像拉取超时或失败并不是 Docker 本身的缺陷,而是网络环境和默认配置在特定场景下的限制所导致的结果。通过本文的分析可以看到,问题的核心往往集中在三个方面:网络访问延迟、DNS 解析速度以及客户端默认超时时间。针对这些问题,最直接、有效的做法是使用国内镜像加速器,这不仅能够显著提升拉取速度,还能保证在企业内网或家庭网络中更加稳定

博客 1027

JAVA中 BufferedImage、ImageIO用法

转载:JAVA中BufferedImage、ImageIO用法 - 邓维-java - 博客园 (cnblogs.com) BufferedImage BufferedImage是其Image抽象类的实现类,是一个带缓冲区图像类,主要作用是将一幅图片加载到内存中(BufferedImage生成的图片在内存里有一个图像缓冲区,利用这个缓冲区我们可以很方便地操作这个图片),提供获得绘图对象、图像缩放、选择图像平滑度等功能,通常用来做图片大小变换、图片变灰、设置透明不透明等。 Java将一...

m0_56231540的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

java bufferedimage_用Java为图片添加水印

概述需求:对本地硬盘上图片添加水印,防止别人盗用图片版权我们下面看一下原图效果:加完文字水印后效果2. 读取图片Java中进行图像I/O有三种方式方式一:Java Image I/O API,支持常见图片,从 Jdk 1.4 开始就内置了。方式二:JAI 中的 Image I/O Tools,支持更多图片类型,例如 JPEG 和 TIFF 等。JAI 是一个关于图像处理的框架,很庞大,其中仅仅 j...

weixin_39822147的博客 401

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

java bufferedimage_Java 为图片添加水印 | 技术

黑马程序员微信号:heiniu526传智播客旗下互联网资讯,学习资源免费分享平台1概述· 需求对本地硬盘上图片添加水印,防止别人盗用图片版权。原图效果:加文字水印后效果:2读取图片Java 中进行图像 I/O 有三种方式· 方式一Java Image I/O API,支持常见图片,从 Jdk 1.4 开始就内置了。· 方式二JAI 中的 Image I/O Tools,支持更多图片类型...

weixin_39656513的博客 479

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java原生图片处理:从BufferedImage到Graphics2D的完整实践指南

在Java开发中,图片处理是常见的需求,涉及缩放、裁剪、水印等操作。理解其底层原理,掌握核心类如BufferedImage和Graphics2D,能提升开发灵活性和性能。BufferedImage作为内存中的图片模型,存储像素和元数据;Graphics2D则提供绘制和变换功能,通过设置渲染提示如抗锯齿和插值算法,可优化处理质量。这些技术价值在于实现轻量级、可定制的图片处理方案,避免依赖第三方库的黑盒限制。应用场景包括用户头像处理、报告生成、图片合成等。本文聚焦Java原生API,详细解析图片缩放、切割、拼接

weixin_34274029的博客 363

java给图片加上图片水印水印

public String uploadFile3(@RequestParam(value = "file",required=false) MultipartFile file, HttpServletRequest request) throws IOException { JSONObject json = null; OutputStream..

weixin_44949177的博客 292

java为图片添加文字水印-md

是一个带缓冲区图像类,将一幅图片加载到内存中,提供获得绘图对象、图像缩放、选择图像平滑度等功能,通常用来做图片大小变换、图片变灰、设置透明不透明等。

weixin_45144339的博客 705

用Java给图片添加水印:简单几行代码实现

new TextOverlay(text, new Font("微软雅黑", Font.BOLD, 24), Color.WHITE, 0.5f),- 字体配置: new Font(字体名称, 样式, 字号) ,样式支持 Font.BOLD (加粗)、 Font.ITALIC (斜体)、 Font.PLAIN (普通);// ------------------------------ 测试方法 ------------------------------// 以(x,y)为旋转中心。

2502_91021489的博客 745

导出excel带水印:前置知识1 BufferedImage和ImageIO

项目用到创建画笔对象(开始 Graphics2D 的使用)// 获取图片的宽高// 图片裁剪// 创建画笔对象。

tellmewhoisi的博客 280

java 给图片添加文字或浮水印

java 操作图片的步骤如下   javax.imageio.ImageIO 使用此类把图片加载到内存中, 用法如下  读取图片的函数原型,我们可以看出 BufferdImage 需要File来构造     static BufferedImage  read(File input) 返回一个 BufferedImage,作为使用 ImageReader(它是从当前已注册 Imag...

SmartCP Software 483

Java图片处理实战:从ImageIO、Graphics2D到Thumbnailsator的完整指南

图片处理是软件开发中的基础且高频需求,涉及图像编码、解码、像素操作等核心概念。其原理基于计算机图形学,通过操作内存中的图像数据模型(如BufferedImage)和图形上下文(如Graphics2D)来实现缩放、裁剪、合成等功能。掌握这项技术能显著提升应用性能、降低对外部服务的依赖,并优化用户体验。在Java生态中,ImageIO和Graphics2D构成了处理图片的基石,而Thumbnailsator等工具库则进一步封装了常见操作,提升了开发效率。这些技术广泛应用于用户头像处理、商品图册生成、报表水印添加

weixin_34185512的博客 164

java 生成分享图片(二维码,图片拼接,文字编辑)

需求背景 之前遇到过需要后端,根据每个用户生成带背景宣传图带二维码带用户图片带文字的合成图片的需求,自己当时花了半天的时间整理了资料,今天把自己写的代码分享出来,如果有同样需求的人,希望能给个好评,有其他建议的童鞋,可以一起讨论交流。 文章下面贴有项目地址,感谢star 图片缓冲类 BufferedImage BufferedImage类是Image的实现类,是可以把图片加载到内存的缓冲类,我...

qq_24073619的博客 1652

Java图片拷贝的正确方式与性能优化

在Java文件操作中,二进制文件与文本文件的处理方式存在本质区别。二进制文件由原始字节序列构成,而文本文件则基于字符编码。当使用字符流处理图片等二进制文件时,会导致字节序列被意外修改,引发文件损坏。正确的做法是采用字节流(如FileInputStream/FileOutputStream)或NIO的Files.copy方法,配合适当大小的缓冲区(推荐8KB-32KB)来确保数据完整性。对于大文件传输,可使用内存映射文件或分块并行拷贝技术提升性能。这些技术在电商图片处理、媒体文件备份等场景中尤为重要,能有效避

weixin_30291791的博客 444
上一篇: java高级——IO流 File 字节流 字符流 管道流和节点流 打印流 内存流 对象序列化
下一篇: java BufferedImage——生成验证码
一JJL
博客等级 码龄8年 48粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值