gpt4 book ai didi

c# - 将 TiffBitmapEncoder 与 Gray32Float 结合使用

转载 作者:行者123 更新时间:2023-11-30 17:47:50 36 4
gpt4 key购买 nike

我正在尝试使用 this code which I found on MSDN 创建一个 32 BPP 灰度 tiff

BitmapSource image = BitmapSource.Create(
width,
height,
96,
96,
PixelFormats.Gray32Float,
null,
pixels,
stride);

FileStream stream = new FileStream("test file.tif", FileMode.Create);

TiffBitmapEncoder encoder = new TiffBitmapEncoder();
encoder.Compression = TiffCompressOption.None;
var bitmapFrame = BitmapFrame.Create(image);
encoder.Frames.Add(bitmapFrame);
encoder.Save(stream);

文件已创建,当我打开它时图像看起来是正确的,但文件属性显示它是 16 BPP (0-65536) 图像而不是 Gray32Float 指定的 32 位 float 。参数。

通过查看 Windows 资源管理器中的文件属性并在 ImageJ 中打开文件,我已确认文件格式为 16 BPP

我可以在 Paint.Net 和 ImageJ 中创建 32 个 BPP tiff,以确认支持该格式。

任何人都知道为什么 .Net TiffBitmapEncoder创建错误的类型?

最佳答案

在幕后,.Net 使用 Windows Imaging Component (WIC)。 WIC 支持读取 Gray32Float 格式的 TIFF(WIC 中的 GUID_WICPixelFormat32bppGrayFloat),但不支持。看看WIC Native Pixel Formats Overview .我有同样的经历发现图像被写成 Gray16。

这很令人沮丧。我一直在尝试使用 Gray32Float 编写一些科学数据,但我没有成功。

关于c# - 将 TiffBitmapEncoder 与 Gray32Float 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24163020/

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