首页 > 编程语言 >(教程)如何用 Java 读取和写入图像

(教程)如何用 Java 读取和写入图像

时间:2024-10-31 17:46:42浏览次数:4  
标签:教程 Java 读取 File JDeli file 图像 ImageIO

在这篇文章中,我将向您展示如何用 Java 读取和写入图像文件。我将演示两种不同的方法。第一种是使用 ImageIO,第二种是使用我们的 JDeli 图像库

如果您只是在寻找图像查看器,JDeli 包含一个内置图像查看器

 

如何在 Java 中读取和写入图像

Java 为图像提供了一种称为 BufferedImage 的单一类型的对象。

可以从各种图像类型(即 BMP、HEIC 等)读取 BufferedImage。ImageIO 本身并不支持所有这些类型,但有插件可以扩展 ImageIO,还有其他库,例如 Apache Imaging 和 JDeli。

在 Java 中,所有不同图像类型的复杂性都是隐藏的 - 您可以在 BufferedImage 上工作。Java 允许直接访问图像像素和颜色信息,以及允许转换和图像处理。

以下是如何在 Java 中读取和写入常见图像文件格式的列表

 

如何使用 ImageIO 在 Java 中读取图像文件

    •    创建指向原始图像的文件句柄、InputStream 或 URL。

    •    ImageIO 现在可以将图像文件读入 BufferedImage。

代码如下:

File file = new File(“/path/to/image.png”);
BufferedImage image = ImageIO.read(file);

 

使用 JDeli 在 Java 中读取图像

    •    将 JDeli 添加到您的类或模块路径。(下载试用版 jar

    •    创建一个指向原始图像的文件、InputStream。您还可以使用包含图像数据的 byte[]。

    •    将图像读入 BufferedImage

代码如下:

File file = new File(“/path/to/image.png”);
BufferedImage image = JDeli.read(file);

 

如何在 ImageIO 中写出图像

    •    创建文件(或 OutputStream)对象

    •    将图像、PNG 类型和文件(或 OutputStream)对象传递到写入方法中

代码如下:

File file = new File(“/path/to/image.png”);
ImageIO.write(bufferedImage, "PNG", file);

 

使用 JDeli 在 Java 中写出图像

    •    将 JDeli 添加到您的类或模块路径。(下载试用版 jar

    •    创建文件(或 OutputStream)对象

    •    将图像、PNG 类型和文件(或 OutputStream)对象传递到写入方法中

代码如下:

File file = new File(“/path/to/image.png”);
JDeli.write(bufferedImage, "PNG", file);

 

//In JDeli you can also use a typesafe version
JDeli.write(bufferedImage, OutputFormat.PNG, file);
or pass in a PngEncoderOptions object for more control over image output.

 

PngEncoderOptions options = new PngEncoderOptions();
JDeli.write(bufferedImage, options, file);

标签:教程,Java,读取,File,JDeli,file,图像,ImageIO
From: https://blog.csdn.net/2401_87189539/article/details/143238021

相关文章

  • 0基础学java之Day18
    包装类理解:基本数据类型对应的类出现原因:Java为纯面向对象语言,8种基本数据类型不能new对象,破坏了Java为纯面向对象语言的特征,所以Java有为8种基本数据类型分别匹配了对应的类,这种类叫做包装类/封装类基本数据类型引用数据类型继承关系byteByteObject.Number.Bytesh......
  • stm32入门教程--USART外设 超详细!!!
    目录简介什么是UART?什么是USART?简介USART(UniversalSynchron/AsynchronousReceiver/Transmitter)通用同步/异步收发器 1、USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可以自动接收RX引脚的数据帧时许,拼接......
  • Java——lambda表达式和StreamAPI
    一、lambda1. lambda表达式1.1Lambda表达式的使用举例:(o1,02)->Integer.compare(o1,o2);1.2Lambda表达式的格式举例:Lambda形参列表->lambda1.3Lambda表达式的格式lambda操作符或箭头操作符的左边:lambda形参列表,对应着要重写的接口中的抽象方法的形参列表。的右......
  • java8 map每10个分一组
    在Java8中,如果你想要将一个Map的条目每10个分为一组,你可以使用流(Streams)来实现这一功能。这里是一个例子,假设我们有一个Map<Integer,String>,我们想要将其每10个元素分为一组。首先,我们需要将Map的entrySet()转换为流,然后使用流的操作来实现分组。 importjava.util.......
  • JavaScript基础教程前言
     ---------------------------------------------------------------------有人22岁就毕业了,但等了五年才找到好的工作;有人25岁就当上CEO,却在50岁去世;也有人迟到50岁才当上CEO,然后活到90岁。 有人依然单身,同时也有人已婚。奥巴马55岁就退休,川普70岁才开始当总统。......
  • 记一次“网络安全扫描工具联动”自动化扫描漏洞流程,网络渗透必看基础教程!
    大家好,我是向阳假如你在一次攻防演练或者渗透测试中有多个攻击测试目标,一个一个去手动测试是肯定不现实的,可以先借助安全扫描工具去“自动扫描测试目标站点”的薄弱漏洞的位置,为你后续的深入测试提供事半功倍的效果。前言:随着当前网络安全威胁的不断扩展与升级,开展渗透测......
  • 牛客网刷题(4)(Java之(static)静态变量、静态方法、静态代码块、静态内部类)
    目录一、static关键字。(1)牛客网题目。(2)总结。<1>静态变量。(类变量)1、特点。2、补充与注意。3、代码演示。<2>静态方法1、特点。2、补充与注意。3、代码演示。<3>静态代码块。1、特点。2、补充与注意。3、代码演示。<4>静态内部类。1、特点。2、注意事项。3......
  • java+vue计算机毕设冬季供热有限公司网站建设【开题+程序+论文+源码】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着冬季气温的逐渐降低,供热服务成为了城市居民生活中不可或缺的一部分。冬季供热有限公司作为城市供热的主要提供者,承担着保障居民温暖过冬的重要职......
  • java+vue计算机毕设第二课堂学分认定系统【开题+程序+论文+源码】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在高等教育日益重视综合素质培养的今天,第二课堂作为第一课堂的有效补充,其在拓宽学生知识面、提升实践能力、增强综合素质等方面发挥着不可替代的作用......
  • Java - 26 代码块
    Java-26代码块[修饰符static]{代码};类似于方法,没有方法名,没有返回,没有参数不用通过对象或类显式调用,而是在加载类或创建对象时隐式调用普通代码块好处构造器的补充机制(减少代码重复冗余),可以做初始化操作/*不管调用哪个构造器创建对象,都会先调用代码块的内......