Я хочу преобразовать 16-битное (HALF) изображение exr в 32-битное изображение exr.Я пытаюсь сделать это, используя ImageMagick, созданный с openEXR, но я не могу сделать то же самое.
У меня есть Build ImageMagick-7.0.8-23-Q8-windows-x64-static с флагом HDRIвключен.Я использую 16-битный RGBA EXR файл.Когда я запускаю команду ниже:
identifier -verbose "Desk.exr"
Это дает глубину канала как 8 бит.
Формат: EXR (Большой динамический диапазон (HDR) *
Класс: DirectClass
Геометрия: 644x874 + 0 + 0
Единицы: Не определено
Цветовое пространство: RGB
Тип: TrueColorAlpha
Базовый тип: Не определено
Endianess: Undefined
Глубина: 8-битная
Глубина канала:
Красный: 8-битная
Зеленый: 8-битная
Синий: 8-битная
Альфа: 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-битный
Альфа: 1-битный
Я построил imagemagick с 8-битным Quantum иЯ ожидаю, что это должно работать для 16 и 32 бит.