问题标签 [javax.imageio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1838 浏览

java - 压缩JPG使图像变绿

当我尝试压缩 jpg 图像时,大多数情况下它工作得很好,但是一些 jpg 图像在压缩后变成绿色。这是我的代码

原始图像 压缩图像。 图像变绿

0 投票
2 回答
9008 浏览

java - 将 0-256 范围内的二维 int 数组转换为灰度 png?

如何将二维整数数组转换为灰度 png。现在我有这个:

但图像是蓝色的。我怎样才能使它成为灰度。

image[][] 包含范围从 0-256 的整数。

0 投票
2 回答
832 浏览

cocoa-touch - UIWebView 加载错误

每当我在 UIWebView 中加载页面时,我都会在控制台中收到此错误

它被记录了好几次,但在页面按预期加载时似乎没有任何影响。

这是我用来加载页面的代码:

任何想法这个错误意味着什么?

0 投票
1 回答
677 浏览

java - 在 jpeg 中保存色彩空间

我有一个 servlet 来转换和缓存较小版本的照片。它是使用 java.awt.image + javax.imageio 和第三方重采样过滤器实现的。原件均使用 sRGB 颜色配置文件上传。当我重新采样它们并再次保存它们时,它们仍然在 sRGB 中,但这并没有记录在保存的文件中。

如何确保此信息保存在文件中?

如果您想知道它会有所不同,那么在我的屏幕(Safari + OSX + Calibrated 屏幕)上,没有配置文件的图像比具有正确 sRGB 配置文件的图像更加饱和。此外,我确定这是缺少配置文件信息,而不是重采样算法。

0 投票
2 回答
2146 浏览

java - PNG编码器 - 添加自己的过滤器实现

我目前正在自己​​实现 PNG 过滤器。我正在使用神经网络来尝试创建比当前现有的 PNG 过滤器更好的预测:

  • 0 - 无
  • 1 - 子
  • 2 - 向上
  • 3 - 平均
  • 4 - 帕斯
  • 5 -我的实现(使用神经网络预测)

欲了解更多信息:http ://www.w3.org/TR/PNG/#9Filters

我已经看过几个图书馆:

  • pngcrush (在 c.. 中实现)
  • Keypoint - PngEncoder (是我目前最喜欢的)
  • ObjectPlanet - PngEncoder (我必须为 src 支付 1000 美元.. :P)

还有一些。但是我现在的问题是,您知道其他一些 PNG 编码器(用 Java 编写),可以很容易地添加自己的过滤器实现,或者是否有其他可能使用我自己的过滤器?

非常感谢您的回答!

0 投票
1 回答
1926 浏览

java - 如何从 IIOMetadata 获得图像压缩质量?

使用ImageIO通用保存新图像时,无论使用何种图像压缩算法(例如 png、jpeg、gif),都支持从范围(高压缩)到(高质量)ImageWriteParam的参数显式设置。compressionQuality0.0f1.0f

  • 有没有办法compressionQuality从现有图像中读取?
  • compressionQuality写入参数是否只是一个提示,ImageWriter而不是存储在图像元数据的任何地方?如果这是真的,图像处理软件(例如 GIMP)如何设法在“另存为”对话框中提供以下选项?

图像另存为高级选项 复选框工具提示

我设法读取IIOMetadataImageInputStream遍历它metadataFormatNames以打印出不同 XML 格式(javax_imageio_1.0通常是原生和标准)的图像元数据。compressionQuality虽然我在那里找不到任何图像的迹象。

0 投票
1 回答
1892 浏览

java - Java:使用 javax.imageio.ImageIO.read() 加载没有索引的 png 图像(作为 BufferedImage.TYPE_4BYTE_ABGR)

我正在尝试使用 javax.imageio.ImageIO.read() 方法加载 PNG 图像。但是,我希望结果类型为“BufferedImage.TYPE_4BYTE_ABGR”,但它最终成为索引图像(“BufferedImage.TYPE_BYTE_INDEXED”)。当原始图像被索引时,有什么方法可以将图像加载为未索引?大约有 120 张图像,因此手动将它们全部取消索引需要很长时间。

0 投票
2 回答
7683 浏览

java - 为什么 ImageReader 返回不正确的 BufferedImage?

我正在尝试访问具有 21 帧的动画 GIF 图像,然后读取第 12 帧(因为它从 0 开始?)帧。

读者应该返回一个高度为 220 和宽度为 200 的缓冲图像(如果忽略图像周围的白色字段,则为高度 205 和宽度 188)。但它的作用是返回给我一个高度为 155 和宽度为 174 的图像,这是荒谬的,因为我进行了三次检查,并且框架 12 的高度为 220 和宽度为 200。我在阅读框架时做的一切正确吗?

0 投票
2 回答
12693 浏览

java - Javax ImageIO IIOException 显然没有理由

大家好,我有一个Java问题。对于我的高级研究课程,我几乎完成了,但我只需要分析我生成的图像中的一些数据。我不想将其标记为家庭作业,因为它不是任何必需作业的一部分……这是我自己想出的收集结果的东西。我编写了一个程序,逐像素比较两个图像。它对两个目录中的所有 .bmp 文件执行此操作。现在,我的程序将文件名读入一个字符串数组,并检查了所有文件名的值,所以我知道最初可以正常访问目录和文件名。这是有问题的代码:

...rest of code

现在,当我将目录更改为相同时,程序运行,并检测到所有像素都是 100% 相似的(因为它应该,所以我知道程序做了我想要它做的事情)。这是错误:

Exception in thread "main" javax.imageio.IIOException: Can't read input file! at javax.imageio.ImageIO.read(Unknown Source) at PixelCompare.main(PixelCompare.java:22)

我尝试了不同的目录无济于事。可能与 .bmp 文件有关吗?什么可以让一组 BMP 读得很好,而另一组却不能工作?我可以在其他程序中打开所有需要的文件,因此它们不会损坏。所有属性似乎都相同。一个目录是用 Gimp 手工制作的(这些读起来很好),另一个是由基于 Java 的程序生成的。这些可以在 Gimp、Paint、Photoshop 等中读取,但它们不会在我的代码中读取。

非常感谢任何帮助,谢谢!

编辑:忘记使用还原代码...我搞砸了,然后发布了一些错误的版本。已修改以显示其他功能代码的原始问题。进一步描述问题:如果您将两个目录都更改为在 testExpect2 文件夹中查找 expectedFiles[] 中的文件列表,它将成功运行。此外,System.out.println(actualFiles[i]在错误发生之前打印正确的文件名,所以我知道正确的文件正在被读入字符串数组。

0 投票
3 回答
2783 浏览

java - 图像 IO 问题

这段代码制作了一个 96dpi 的图像,但源图像是 72 dpi!为什么