用于加载 PNG 图像的替代库

2023-12-07

我的 java J2SE 应用程序正在从 Web 读取大量 (png) 图像,其中一些图像使用诸如真彩色图像的透明度颜色(tRNS 部分)之类的功能,而 Sun 的/Oracle 的 PNGImageReader 实现会简单地忽略这些功能。

因此,加载的常见解决方案是通过ImageIO.read(...);对我不起作用,因为它依赖于这个不完整的 PNGImageReader 实现。

有谁知道一个 png 阅读器实现可以正确读取所有形式的 PNG 图像 - 那些具有颜色表或真彩色和 alpha 透明度或透明颜色的图像?

由于它是 GPL 项目,因此它应该是一个非商业项目,可以在没有许可问题的情况下包含到应用程序中。

Edit:我的问题是太具体了。因此让我们重新设计我的问题:

谁知道能够加载 PNG 文件的替代实现和库?

然后我将测试这些实现加载一些内容的能力测试 png 图片.

Edit2:最终结果必须是 BufferedImage


最后我找到了一个合适的 PNG 阅读器,完全符合我的需求:

六足爪 Java PNG 解码器

主要特点:

  • 开源 (LGPL)
  • 正确加载 PNG,包括 alpha 透明度和透明颜色
  • 返回一个 BufferedImage
  • 没有进一步依赖于其他 图书馆
  • 大小非常小(整个库为 46KB)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于加载 PNG 图像的替代库 的相关文章

随机推荐

  • 如何从HashMap中获取可变结构体?

    我有一个所有状态的哈希图 它是HashMap
  • 对于不返回值的函数使用map()

    我有一个快速的问题 如果我有一个函数 a 1 2 3 4 5 6 7 def f x return x 2 result list map f a print result gt gt gt 1 4 9 16 25 36 49 但如果我 r
  • Microsoft的Graph权限资源类型没有邀请

    一直尝试使用 Microsoft Graph 的统一 API 和 OneDrive API 收集有关特定 DriveItem 权限的信息 文档指出以下属性可在权限资源类型 grantedTo application displayName
  • 使用可变空间对齐的 C# 字符串格式化

    我想做类似的事情 String Format Completed 0 9 of 0 xlsx totalCount ToString 除了对 9 进行硬编码之外 我希望对齐方式为 xlsx totalCount 的任何值 有什么想法吗 试试
  • 删除二维数组中的重复项,同时保持顺序

    我发现了很多关于删除数组中重复项的线程 但没有一个适合我的特定用例 我有一个二维列表 我需要从中删除重复项 但我必须保持原始序列 mylist Installation 64 C2 14 NA 14 C2 14 NA 14 na 7 我需要
  • 如何将 Web Audio API 连接到 Tone.js?

    我正在做一个在线音频播放器 所以我想整合变调器在我的应用程序中 可以在Tone js但不在网络音频API 所以我的想法是连接Tonejs 变调器 to 网络音频 API 音频上下文 有什么可行的办法吗 这是我的代码供参考 var audio
  • 如何在静态基方法中创建继承的实例?

    从一个例子来看 我可能会这样做 var obj Activator CreateInstance GetType 但不确定如何在静态基方法中获取继承类的 typeof 这是最好的前进方式吗 public static Method
  • 如何从 SQL Server 中的表查询 Xml 值和属性?

    我有一个表 其中包含Xml column SELECT FROM Sqm 的一个样本xml一行的数据将是
  • 了解通过动态分配引用传递参数

    我正在尝试了解如何在 C 语言中通过引用传递参数 所以我编写了这段代码来测试参数传递的行为 include
  • 如何从互动经纪商API获取历史股价数据?

    我想使用IBAPI来获取历史股票数据 我的代码不起作用并且不返回任何内容 有人可以帮我编辑代码吗 谢谢 from ibapi import client from ibapi import wrapper import datetime f
  • Laravel flash 或会话消息不会过期 [ 未维护更新 ]

    经过一些研究后更新经过一些研究 我得出的结论是 在我明确保存它们之前 我的会话不会得到维护 下面的代码运行良好 但为什么 Ref here Session put lets test 2 Session save 老问题我是 laravel
  • 为什么 Rust 的 read_to_end 不将文件读入缓冲区?

    代码 根据我的实际问题改编 非常简单 但我无法弄清楚我缺少什么 它将正确写入文件 但它的输出是Buffer 由于某种原因没有从文件中读取任何内容 它是什么 use std io Read Write fn main let mut test
  • 区分“colorbar”中的剪裁值

    我有一个pcolormesh绘图 其中颜色图通过设置进行裁剪vmin和和vmax严格在绘制的值范围内 有没有办法有关联colorbar从底部和顶部分离一块以表示相关颜色超出了颜色图的范围 是的 您需要使用extend both颜色栏的关键字
  • 为什么每次使用 malloc 时都会收到警告?

    如果我使用malloc在我的代码中 int x malloc sizeof int 我收到此警告gcc new c 7 warning implicit declaration of function malloc new c 7 warn
  • jqGrid - 复选框编辑无法编辑所选行

    在我的 jqGrid 中 我有一个也可用于编辑的复选框 即用户可以单击该复选框 并且该复选框的值将在数据库中更新 效果很好 但是 当我单击该复选框并尝试再次单击它时 什么都没发生 该行不会被保存 理论上应该保存复选框未选中的值 但这并没有发
  • Angular 9 库构建失败

    我正在尝试迁移这个库https github com flauc angular2 notifications从 Angular 2 到 Angular 9 最初的错误是关于ModuleWithProviders这已经成为一个通用类型 所以
  • CSV 转换为哈希

    我有一个 csv 第一列是一个标签 后跟逗号分隔值 LabelA 45 56 78 90 LabelB 56 65 43 32 LabelC 56 87 98 45 我希望第一列 LabelA 等 成为散列中的键 数值位于数组中 我可以将文
  • 如何使 python 命令行程序自动完成任意内容而不是解释器

    我知道如何在 python 解释器 在 unix 上 中设置 python 对象的自动完成功能 谷歌显示了许多有关如何执行此操作的解释的点击 不幸的是 有太多的参考资料 很难找到我需要做的事情 这略有不同 我需要知道如何在用 python
  • PyQt5:类型错误:“顶级小部件的基类错误”

    我已经使用 QtDesigner 创建了 ui 文件 并将它们加载到两个单独的窗口中 如下所示 class MainWindow QMainWindow def init self parent None super init Set up
  • 用于加载 PNG 图像的替代库

    我的 java J2SE 应用程序正在从 Web 读取大量 png 图像 其中一些图像使用诸如真彩色图像的透明度颜色 tRNS 部分 之类的功能 而 Sun 的 Oracle 的 PNGImageReader 实现会简单地忽略这些功能 因此