`

Java处理某些图片红色问题(ImageIO.read()读取ICC)

阅读更多

imageIO.read 在读取图片的时候可能会不正确的读取图片的ICC信息,

所以当这种情况不能用ImageIO读取图片文件

使用java中自带jdk

 

ICC为JPEG图片格式中的一种头部信息,导致渲染图片前景色时蒙上一层红色。

 

Image src=Toolkit.getDefaultToolkit().getImage(file.getPath()); 
BufferedImage image=BufferedImageBuilder.toBufferedImage(src);

public static BufferedImage toBufferedImage(Image image) { 
        if (image instanceof BufferedImage) { 
            return (BufferedImage) image; 
        } 
        image = new ImageIcon(image).getImage(); 
        BufferedImage bimage = null; 
        GraphicsEnvironment ge = GraphicsEnvironment 
                .getLocalGraphicsEnvironment(); 
        try { 
            int transparency = Transparency.OPAQUE; 
            GraphicsDevice gs = ge.getDefaultScreenDevice(); 
            GraphicsConfiguration gc = gs.getDefaultConfiguration(); 
            bimage = gc.createCompatibleImage(image.getWidth(null), 
                    image.getHeight(null), transparency); 
        } catch (HeadlessException e) { 
        } 
        if (bimage == null) { 
            int type = BufferedImage.TYPE_INT_RGB; 
            bimage = new BufferedImage(image.getWidth(null), 
                    image.getHeight(null), type); 
        } 
        Graphics g = bimage.createGraphics(); 
        g.drawImage(image, 0, 0, null); 
        g.dispose(); 
        return bimage; 
    } 

 

分享到:
评论

相关推荐

    Java图片处理ImageIO.read()问题

    在Java编程中,图片处理是一项常见的任务,而`ImageIO`类是Java标准库提供用于读取、写入和操作图像的重要工具。本篇将详细探讨`ImageIO.read()`方法的相关知识点,以及如何解决可能遇到的问题。 `ImageIO`类位于`...

    图片处理 javax.imageio.IIOException: Unsupported Image Type

    在Java编程环境中,图片处理是一项常见的任务,但有时可能会遇到“javax.imageio.IIOException: Unsupported Image Type”的错误。这个异常通常表示Java的`ImageIO`类库无法识别或支持所尝试读取或写入的图像格式。...

    tesseract识别中文的com.sun.media.imageio.plugins.tiff.TIFFImageWriteParam下载

    OCR(Optical Character Recognition,光学字符识别)技术是将图像中的文本转换为机器可读格式的关键工具,而`com.sun.media.imageio.plugins.tiff.TIFFImageWriteParam`则是Java中处理TIFF图像格式时的一个关键类,...

    tesseract识别中文的com.sun.media.imageio.plugins.tiff.TIFFImageWriteParam.rar

    标题中的“tesseract识别中文的com.sun.media.imageio.plugins.tiff.TIFFImageWriteParam.rar”指出这是一个与Tesseract OCR相关的压缩包,包含了用于处理中文的资源和参数,特别是与TIFF图像格式有关的写入参数。...

    webp-imageio-10.和1.6(不要积分)

    1. **读取图像**:使用`javax.imageio.ImageIO.read()`方法,可以读取各种支持的图像格式,如JPEG、PNG等,添加WebP插件后,也可以读取WebP格式。 2. **写入图像**:`javax.imageio.ImageIO.write()`方法用于将...

    imageIo.dll.zip

    《ImageIo.dll:图片处理与格式转换的核心组件》 在计算机编程领域,图像处理和格式转换是不可或缺的部分,尤其在多媒体应用、图形设计以及数据分析等领域。ImageIo.dll库作为一个重要的动态链接库(DLL),它为...

    javax.imageio-1.0.5.jar

    javax.imageio-1.0.5.jar, java处理图片的库。 从maven中央仓库下载的。实测可用。

    webp-imageio-0.4.2.zip

    1. **读取 WebP 图像**:通过 ImageIO.read() 方法,可以像读取其他格式的图像一样读取 WebP 图像,无需关心底层的解码过程。 2. **写入 WebP 图像**:利用 ImageIO.write() 方法,将 Java 中的 BufferedImage 对象...

    java 使用ImageIO.writer从BufferedImage生成jpeg图像遇到问题总结及解决

    总结起来,使用ImageIO.writer从BufferedImage生成JPEG图像时,应当遵守Java的规范和API的使用限制。在不同版本的Java环境中,需要小心处理可能遇到的兼容性问题。同时,要注意图像处理过程中可能遇到的异常,并编写...

    TwelveMonkeysImageIO:JavaImageIO的一个插件和扩展集合

    在Java开发领域,图像处理是一项不可或缺的任务,而Java自带的ImageIO类库虽然基础功能完备,但在处理某些特定格式或者需要高级功能时,其能力显得较为有限。此时,第三方库如TwelveMonkeys ImageIO就显得尤为重要。...

    jai_imageio.jar

    java高级图片处理工具 jai-imageio,可以修改图片分辨率等

    Java应用程序读取图片内容.zip

    2. **使用ImageIO.read()**: 要读取图片,首先需要导入`javax.imageio.ImageIO`和`java.awt.image.BufferedImage`。然后,你可以使用`ImageIO.read(file)`方法,其中`file`是一个指向图像文件的`File`对象。例如: ...

    webp-imageio built for x64

    java环境下生成webp文件所用到的库,libwebp-imageio.so for Linux,webp-imageio.dll for Windows,webp-imageio-1.0.0.jar for java project。项目文件:https://bitbucket.org/luciad/webp-imageio

    imageio-2.5.0.tar.gz

    2. 动画处理:除了静态图像,imageio还可以处理GIF、视频等动态内容,`imageio.mimread()`和`imageio.mimwrite()`用于读写动画。 3. 实时捕获:imageio能直接从摄像头或其他视频源实时捕获帧,这对于视频分析和处理...

    webp-imageio.7z

    【标题】"webp-imageio.7z" 是一个压缩包文件,主要包含了与WebP图像处理相关的组件和工具。WebP是一种由Google开发的高效图像格式,它旨在提供更小的文件大小,同时保持良好的图像质量,适用于网页和其他网络应用。...

    Java获取单张超大图片分辨率

    通过`ImageIO.read()`方法,我们可以加载图像文件并获取其元数据,其中就包含了图片的宽度和高度,即分辨率。以下是一个基本示例: ```java import javax.imageio.ImageIO; import java.awt.image.BufferedImage; ...

    Java提取IPA中的png文件, 并进行解码还原png图片

    可以使用`ImageIO.read()`方法读取PNG数据,该方法会自动完成解码过程,将原始的字节流转换为Java的`BufferedImage`对象。 5. **处理非标准PNG**:由于iOS可能会对PNG图像进行一些特定的编码,可能需要使用第三方库...

    如何使用Java读取这张图片的分辨率?

    在Java编程语言中,读取图像的分辨率是一项常见的任务,特别是在处理图形用户界面(GUI)或者图像处理项目时。要实现这一功能,我们需要利用Java的内置库`javax.imageio`和`java.awt.Image`。本篇文章将详细讲解如何...

    java image 图片处理

    `javax.imageio.ImageIO`类提供了静态方法`read()`来读取图像文件。例如,以下代码展示了如何从本地文件系统中的`image.gif`文件读取图像: ```java import javax.imageio.ImageIO; import java.awt.image....

Global site tag (gtag.js) - Google Analytics