gpt4 book ai didi

c++ - ImageMagick C++ API 输出 16 位灰度 png?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:57:29 28 4
gpt4 key购买 nike

我正在通过 Magick++ API 链接到 ImageMagick。我正在尝试获取 uint16 数据并将其输出为 1024x768 1 channel 16 位灰度 PNG。我从下面得到的输出是一个 RGB8 PNG。除格式外,图像内容正确。

gray16_view_t u16view = ...;
uint16_t* data = interleaved_view_get_raw_data(u16view);
size_t length = sizeof(u16) * u16view.width() * u16view.height();
Magick::Blob u16Blob(data, length);
Magick::Geometry size(u16view.width(), u16view.height());
Magick::Image u16MagickImg(u16Blob, size, 16, "GRAY");
u16MagickImg.write("test-16bit.png");

有什么办法可以指定更多关于输出格式的信息吗?

这里有一些关于 imagemagick 的 PNG 处理的讨论:http://www.imagemagick.org/Usage/formats/#png_formats他们将 PNG8、PNG24 和 PNG32 列为可用格式,但以下部分暗示

-define png:bit-depth 16 
-define png:color-type=0

在命令行上会有所需的输出

最佳答案

    u16MagickImg.quality(00);
u16MagickImg.defineSet("png:color-type", "0");
u16MagickImg.defineSet("png:bit-depth", "16");

关于c++ - ImageMagick C++ API 输出 16 位灰度 png?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7728550/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com