如何使用 ChunkyPNG 或 RMagick 保存 8 位 PNG

发布于 2024-11-17 09:37:11 字数 804 浏览 3 评论 0原文

我一直在尝试使用 RMagick (http://rmagick.rubyforge.org/< /a>) 和 ChunkyPNG (https://github.com/wvanbergen/chunky_png)但一直无法这样做。

然而,我可以让它在 RMagick 上工作的唯一一次是 ImageMagick 安装基于 QuantumDepth 8 而不是通常的 16。不可能动态更改此设置 - 必须编译 ImageMagick 的安装通过此设置。 在创建图像时将深度设置为 8 或在保存时添加格式类型前缀也没有效果。

IE。 img.write('PNG8:image.png')

无论如何,我已经了解了 ChunkyPNG,并且我真的更喜欢使用它而不是 RMagick - 只是因为它是纯 Ruby 并且不依赖于 ImageMagick。我也无法使用它保存 PNG8。

之后我必须使用图形程序将 PNG 转换为 8 位 -

我的问题:

  1. 一种方法可以像在安装了 ImageMagick Q16 的计算机上的 ImageMagick Q8 上那样正确保存 8 位 PNG?

  2. 任何人都可以提供关于在 ChunkyPNG 中做我自己的 4 位编码器的指针,或者知道用它保存 PNG8 的方法吗?

提前致谢..

I've been trying to save 8-bit PNGs (PNG8) using RMagick (http://rmagick.rubyforge.org/) and ChunkyPNG (https://github.com/wvanbergen/chunky_png) but have been unable to do so.

However the only time I can get it to work on RMagick is if the ImageMagick installation is based on the QuantumDepth of 8 rather than the usual 16. It is not possible to change this setting on the fly - the installation of ImageMagick has to be compiled with this setting.
Also setting the depth to 8 when creating the image or prefixing a format type when saving have no effect.

ie. img.write('PNG8:image.png')

Anyway I've had a look at ChunkyPNG and I really prefer to use this over RMagick - simply because it is pure Ruby and doesnt depend on ImageMagick. I can't save a PNG8 using that too.

I have to convert the PNG to 8bit afterwards using a graphics program -

My questions:

  1. Is there a way of saving 8bit PNGs properly like it does on ImageMagick Q8 on a machine with ImageMagick Q16 installed?

  2. Can anyone provide pointers as to do my own 4-bit encoder in ChunkyPNG or know of a way to save PNG8 with it?

Thanks in advance..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

放低过去 2024-11-24 09:37:11

PNG8 到底是什么意思? 8 位灰度、8 位索引颜色、3x8 位 RGB 或 4x8 位 RGBA? ChunkyPNG 支持所有这些颜色模式。

默认情况下,ChunkyPNG 尝试确定保存图像的最佳颜色模式。您可以通过向 save 方法提供选项哈希来覆盖它:

image.save('filename.png', color_mode: ChunkyPNG::COLOR_TRUECOLOR)
# Or: ChunkyPNG::COLOR_TRUECOLOR_ALPHA    

image.to_blob(color_mode: ChunkyPNG::COLOR_INDEXED, bit_depth: 8)

更多信息:https://github.com/ wvanbergen/chunky_png/wiki

What exactly do you mean by PNG8? 8-bit grayscale, 8-bit indexed color, 3x8 bit RGB or 4x8 bit RGBA? All of these color modes are supported by ChunkyPNG.

By default, ChunkyPNG tries to determine the best color mode to save your image. You can overwrite it by providing an options hash to the save method:

image.save('filename.png', color_mode: ChunkyPNG::COLOR_TRUECOLOR)
# Or: ChunkyPNG::COLOR_TRUECOLOR_ALPHA    

image.to_blob(color_mode: ChunkyPNG::COLOR_INDEXED, bit_depth: 8)

More info: https://github.com/wvanbergen/chunky_png/wiki

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文