gpt4 book ai didi

c# - 从 PNG 到 BitmapImage。透明度问题。

转载 作者:行者123 更新时间:2023-11-30 20:05:20 24 4
gpt4 key购买 nike

我有一些问题。我正在尝试将资源中的 png 图像加载到我的 viewModel 中的 BitmapImage 属性,如下所示:

Bitmap bmp = Resource1.ResourceManager.GetObject(String.Format("_{0}",i)) as Bitmap;
MemoryStream ms = new MemoryStream();
bmp.Save(ms, ImageFormat.Bmp);
BitmapImage bImg = new BitmapImage();

bImg.BeginInit();
bImg.StreamSource = new MemoryStream(ms.ToArray());
bImg.EndInit();

this.Image = bImg;

但是当我这样做时,我失去了图像的透明度。所以问题是如何在不损失透明度的情况下从资源中加载 png 图像?谢谢,帕维尔。

最佳答案

Ria 的回答帮助我解决了透明度问题。这是对我有用的代码:

public BitmapImage ToBitmapImage(Bitmap bitmap)
{
using (MemoryStream stream = new MemoryStream())
{
bitmap.Save(stream, ImageFormat.Png); // Was .Bmp, but this did not show a transparent background.

stream.Position = 0;
BitmapImage result = new BitmapImage();
result.BeginInit();
// According to MSDN, "The default OnDemand cache option retains access to the stream until the image is needed."
// Force the bitmap to load right now so we can dispose the stream.
result.CacheOption = BitmapCacheOption.OnLoad;
result.StreamSource = stream;
result.EndInit();
result.Freeze();
return result;
}
}

关于c# - 从 PNG 到 BitmapImage。透明度问题。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11536577/

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