gpt4 book ai didi

c# - 如何获取 TIFF 图像的字节数组并将其转换为 System.Drawing.Image 对象?

转载 作者:太空狗 更新时间:2023-10-29 23:12:07 29 4
gpt4 key购买 nike

我有一个 byte[] 数组,它的内容代表一个 TIFF 文件(例如,如果我使用 BinaryWriter 将这些字节直接写入文件对象,它形成了一个完全有效的 TIFF 文件),我试图将它变成一个 System.Drawing.Image 对象,以便我可以将它用于以后的操作(输入多页 TIFF 对象)

我遇到的问题是这个任务的普遍接受的代码:

    public Image byteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms, true);
return returnImage;
}

不适合我。上面调用 Image.FromStream 方法的方法的第二行在运行时死掉了,说

Parameter Not Valid

我认为该方法因这是一个 TIFF 文件这一事实而令人窒息,但我无法弄清楚如何使 FromStream 方法接受这一事实。

如何将 TIFF 图像的字节数组转换为 Image 对象?

另外,就像我说的那样,最终目标是让一个字节数组表示一个多页 TIFF 文件,其中包含我现在拥有字节数组对象的 TIFF 文件。如果有更好的方法来做到这一点,我完全赞成。

最佳答案

好的,我发现了问题,它来自与我询问的代码部分无关的部分代码。数据作为字符串传递,我将其转换为字节数组(这是一个测试装置,所以我试图模拟我在主应用程序中获得的字节数组),然后将其转换为 MemoryStream,然后制作一张图片。

我没有意识到该字符串是 Base64 编码的。调用 Convert.FromBase64String() 导致它变成一个字节数组,这不会终止 Image.FromStream() 方法。

所以基本上归结为我犯了一个愚蠢的错误。但是,嘿,上面的代码仍然有用,这个页面可能会作为 Google 的结果,告诉别人如何避免这个错误。

另外,我发现了一种从我的字节数组构建多页 TIFF 的简单方法 here .

关于c# - 如何获取 TIFF 图像的字节数组并将其转换为 System.Drawing.Image 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32750/

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