问题标签 [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 投票
2 回答
2301 浏览

java - 什么是最快的 Java 图像阅读器

我有一个程序,我必须将 BufferedImage 序列化到磁盘,然后将其读回。目前我使用的是原始图像格式

经过大量测试后,似乎它在相同数据上的性能差异很大(从不到一秒到 15 秒)。
1. 知道这是怎么回事吗?
2. 在 Java 中完成这项任务最快的图像读取器/写入器是什么?

谢谢

0 投票
1 回答
1958 浏览

xcode - 为什么我在控制台中出现 ImageIO 错误?

为什么我会收到错误 ImageIO: _CGImagePluginInitGIFmalformed GIF file (768 x 1024)?

我快疯了!当我的一些 .gif 图像需要显示在 UIImageView 中时,此错误会显示在 XCode 控制台中。图像不显示(!),我在控制台中得到了它。该错误仅显示少数图像,而不是全部!我试图删除图像,再次添加它们,清理,重建,但我仍然无法显示这些图像!在我安装 XCode 4.0.1 之前一切正常,所有图像都可以正常工作并显示!有人说这是 XCode 的一个 bug,需要安装最新的 4.0.2 版本。我这样做了,问题仍然存在!我在这里用谷歌搜索和搜索,但似乎这种错误并不常见......我真的不知道发生了什么。你能帮我解决这个问题吗?

0 投票
1 回答
2005 浏览

java - Matlab:如何正确使用 Java ImageIO 类获取 BufferedIMage

我正在尝试在 Matlab 中对数据库中的一些图像数据进行模拟。图像数据来自 java,输出为 base64 编码的字节数组。我不熟悉 [java image] 格式。但是,我根据与我一起工作的人编写的一些 java 编写了以下 Matlab 代码。它们遵循相同的基本轮廓,Java 代码能够很好地读取图像。Matlab 代码如下所示:

经检查bufferedimage,它是一个空数组,double而不是 javaBufferedImage实例。

我进行了一些测试dataStream,看看它是否符合预期;类似于以下内容的迷你单元测试:

它检查了,所以这让我相信问题出在 ImageIO 或我对它的使用上。

不幸的是,我发现的使用 ImageIO(以及其中一些其他 API)的示例都没有以我在此处概述的方式(即在 Matlab 中)使用。

此代码java.io.ByteArrayInputStream相同的方式使用——从某种意义上说,提供的数据是一个字节数组。

这段代码本质上就是我想要做的——将 java 图像转换为 Matlab 数组。不幸的是,他们通过获取 Matlab 图像,将其转换为 java 图像,然后将其转回来作弊。

此代码使用 ImageIO,但它是通过从文件流中读取来实现的。我尝试将数据写入文件然后在 using 中读取它java.io.File,但无论哪种方式我都得到相同的结果。

所以,我很茫然。

0 投票
2 回答
6902 浏览

java - ImageIO.createImageInputStream 返回 null,怎么回事?

这曾经工作,现在它不工作。我没有更改图像应该流式传输的部分,所以我不知道为什么这不起作用。这是我的代码片段:

filepath是图像的绝对文件路径,并且确认图像位于服务器上的该位置。一切都很好,花花公子,直到它到达ImageIO.createImageInputStream(f)。它现在正在返回null。我阅读了它包含一个文件的javadoc。那么为什么它现在返回一个null呢?有人知道吗?上面发布的代码在我的编辑中都没有更改,所以我不明白为什么它在更改之前有效,为什么现在无效。任何帮助深表感谢!谢谢!

0 投票
1 回答
188 浏览

java - 在 Java 中的可视化组件构建期间防止焦点

我创建了一个应用程序,它需要在整个程序执行过程中多次重新加载图像。也许它很笨拙,但我的实现是在子类中扩展 Component 类,并通过 fileName 参数将图像重新加载到它的构造函数。代码如下:

无论如何,我的问题是,每当我调用display命令时,这个窗口都会窃取所有 java 的焦点,包括 eclipse,这真的很令人讨厌。我什至尝试添加setFocusable(false)构造函数,但它仍然设法窃取焦点。我如何告诉它可以聚焦但不能通过构造自动聚焦?

0 投票
1 回答
344 浏览

java - 使用 Javax 读取图像会占用大量内存

我正在使用 JFileChooser 打开一堆文件,并且对于我BufferedImage使用image = ImageIO.read(path);. 其中 image 被声明为静态字段。

现在我有 30 个 1Mb 的文件,在运行 60 次 read() 后,我的内存使用量(在 OS 程序管理器中检查)增长了大约 70Mb。

因为我的图像变量是静态的,所以图像内容存储在某处不是问题。所以我的问题是,为什么我会失去这么多的记忆?

我正在编写需要将大量图片加载到内存的应用程序,是否有韭菜?清理未使用的数据是垃圾收集器任务吗?

这是我读取此数据的代码:

它出什么问题了?

也许我做错了什么?我需要大量图像的原始像素或加载到 RAM 的压缩图像。这样我就可以快速访问图像的任何像素。

奇怪的是,加载 1Mb 的图片比 1Mb 还要多。

0 投票
3 回答
7795 浏览

java - 在java中将图像拼接在一起

我正在尝试使用 java 将一些图像拼接在一起。我有一堆我想拼接在一起的图像,它们都是相同的尺寸,所以我想这实际上只是一个将它们排列在一起的问题。我让它工作,但它很慢,可能非常占用内存。我想知道是否有更简单的方法:

0 投票
3 回答
3410 浏览

java - 如何在不加载到内存的情况下调整图像大小?

我想检查图像的尺寸,如果宽度超过给定阈值,则将其缩小。当我使用 ImageIO.read() 加载 6MB JPEG 图像时,BufferedImage 分配了大约 45MB 的堆空间。有没有办法在不将所有数据加载到内存的情况下进行直通图像调整?我尝试传递 ImageIO.read() 一个 File 对象,认为它会从磁盘流式传输数据,但它没有帮助。

0 投票
1 回答
2990 浏览

objective-c - 使用 CGImageSource/CGImageDestination 在磁盘上旋转 CGImage?

我正在开发一个应用程序,该应用程序需要使用 拍照UIImagePickerController,在应用程序中显示它的缩略图,并使用ASIFormDataRequest(from ASIHTTPRequest) 将该图片提交到服务器。

我想setFile:withFileName:andContentType:forKey:从 ASIFormDataRequest 使用,因为根据我的经验,它比尝试使用UIImageJPEGRepresentation和提交原始 NSData 提交图像要快。为此,我正在使用CGImageDestination并创建一个带有 url 的图像目标,将该图像保存到磁盘,然后将该文件上传到磁盘上。

为了创建我正在使用的缩略图CGImageSourceCreateThumbnailAtIndex(请参阅文档)并使用我刚刚保存的文件的路径创建图像源。

我的问题是,无论我将什么选项传递给图像目的地或缩略图创建调用,我的缩略图总是逆时针旋转 90 度。上传的图像也会旋转。我已经尝试在使用图像的选项中明确设置方向,CGImageDestinationSetProperties但似乎没有采取。我发现的唯一解决方案是在内存中旋转图像,但我真的想避免这种情况,因为这样做会使缩略图+保存操作完成所需的时间加倍。理想情况下,我希望能够旋转磁盘上的图像。

我在使用方式上是否遗漏了CGImageDestination什么CGImageSource?我将在下面发布一些代码。

保存图像:

生成缩略图

然后上传我刚刚使用的图像

path使用上面的代码保存的文件的路径在哪里。

0 投票
1 回答
1565 浏览

iphone - CGImageRead_mapData 'open' failed ... error = 2 (没有这样的文件或目录)

我已经实现了一个带有自定义标签栏的 iPhone 应用程序。用于选定/未选定选项卡的图像通过 UIImage imageNamed 加载。通常它工作得很好,但有时,看起来像是随机的,其中一张图像在加载时消失并替换为黑色空白空间。再次单击它时,图像会重新出现。

一些症状: - 只能在 4.3 的 iPhone 4 上重现。在 4.2 上从未发生过(我在 4.3 上进行过测试)。- 无法在 4.3 的 3GS(较低分辨率)上进行测试。在 4.2 上它与上面相同,它从未发生过。

我设法从它发生的一次打印出来,它给了我这里和标题中指定的错误:

ImageIO: CGImageRead_mapData 'open' failed '/var/mobile/Applications/7A76BCE5-' error = 2 (没有这样的文件或目录)

所有选项卡图像都是这样启动的:

and when selected/unselected changed like so:

并且 UIImageView 在 dealloc 中正常释放。

有人知道这个错误的线索......?