gpt4 book ai didi

c# - 从 MemoryStream 加载时位图中没有透明度

转载 作者:太空宇宙 更新时间:2023-11-03 20:22:47 26 4
gpt4 key购买 nike

当我将 Bitmap 写入文件并从文件中读取时,我正确地获得了透明度。

using (Bitmap bmp = new Bitmap(2, 2))
{
Color col = Color.FromArgb(1, 2, 3, 4);
bmp.SetPixel(0, 0, col);
bmp.Save("J.bmp");
}

using (Bitmap bmp = new Bitmap("J.bmp"))
{
Color col = bmp.GetPixel(0, 0);
// Value of col.A = 1. This is right.
}

但如果我将 Bitmap 写入 MemoryStream 并从该 MemoryStream 中读取,则透明度已被移除。所有 alpha 值都变为 255

MemoryStream ms = new MemoryStream();
using (Bitmap bmp = new Bitmap(2, 2))
{
Color col = Color.FromArgb(1, 2, 3, 4);
bmp.SetPixel(0, 0, col);
bmp.Save(ms, ImageFormat.Bmp);
}

using (Bitmap bmp = new Bitmap(ms))
{
Color col = bmp.GetPixel(0, 0);
// Value of col.A = 255. Why? I am expecting 1 here.
}

我希望将 Bitmap 保存到 MemoryStream 并以透明方式读回。我该如何解决这个问题?

最佳答案

问题出在这一行:bmp.Save(ms, ImageFormat.Bmp)。 ImageFormat.Bmp 不支持 alpha 值,您可以将其更改为 ImageFormat.Png 以获得相同的效果。

关于c# - 从 MemoryStream 加载时位图中没有透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12479816/

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