我想将 16 位 (HALF) exr 图像转换为 32 位 exr 图像。我正在尝试使用使用 openEXR 构建的 ImageMagick 来做到这一点,但我无法做到这一点。
我有 Build ImageMagick-7.0.8-23-Q8-windows-x64-static 并启用了 HDRI 标志。我正在使用 16 位 RGBA EXR 文件。当我运行以下命令时:
识别 -verbose "Desk.exr"
它将通道深度设为 8 位。
格式:EXR(高动态范围 (HDR))
类别:DirectClass
几何:644x874+0+0
单位:未定义
色彩空间:RGB
类型:TrueColorAlpha
基本类型:未定义字节序:
未定义
深度:8 位
通道深度:
红色:8-位
绿色:8 位
蓝色:8 位
Alpha:1 位
我试图通过指定 -depth 16 和 32 使用转换工具来更改它,但它仍将通道深度显示为 8 位。
int main() {
Magick::InitializeMagick("");
Magick::Image image;
Magick::Image image2;
Magick::Image image3;
try {
// Read a file into image object
image.read("D:\\IR\\EXR_Support\\Images\\Desk.exr");
//Set bit to 32
image.depth(32);
image.channelDepth(MagickCore::RGBChannels,32);
image.write("D:\\IR\\EXR_Support\\Images\\Desk_32Bits.exr");
}
catch (Magick::Exception &error_)
{
cout << "Caught exception: " << error_.what() << endl;
return 1;
}
return 0;
}
我检查了输出文件的通道深度,我设置了 32 位,但它也显示:
深度:8 位
通道深度:
红色:8 位
绿色:8 位
蓝色:8 位
Alpha:1 位
我已经用 Quantum 8 位构建了 imagemagick,我希望它应该适用于 16 位和 32 位。