我想将16位(HALF)exr图像转换为32位exr图像。我正在尝试使用通过openEXR构建的ImageMagick来执行此操作,但是我无法做到这一点。
我具有启用了HDRI标志的Build ImageMagick-7.0.8-23-Q8-windows-x64-static。我正在使用16位RGBA EXR文件。当我运行以下命令时:
identify -verbose“ Desk.exr”
它提供的通道深度为8位。
格式:EXR(高动态范围(HDR))
类别:DirectClass
几何:644x874 + 0 + 0
单位:未定义
色彩空间:RGB
类型:TrueColorAlpha
基本类型:未定义
Endianess:未定义
深度: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位上工作。
答案 0 :(得分:0)
量子深度,也称为 Q 设置,是在编译时指定的。您不能在运行时增加它。
如果要处理32位图像,则需要使用32位量子深度重新编译。