如何在 SkiaSharp 中使 SKBitmap 位图颜色为透明
Posted
技术标签:
【中文标题】如何在 SkiaSharp 中使 SKBitmap 位图颜色为透明【英文标题】:How to make the SKBitmap bitmap color as Transparent in SkiaSharp 【发布时间】:2018-02-13 11:47:42 【问题描述】:在 System.Drawing 中,我们将使用 maketransparent 方法将位图图像颜色设置为透明 SKBITMAP 是否有任何其他等效的方法可以使颜色变为透明。
Bitmap imgData = new Bitmap()
imgData.MakeTransparent(Color.White);
//在system.Drawing中
任何人都可以提出一种解决方案,使 SkiaSharp.SKBitmap 的颜色透明
【问题讨论】:
谁能为此提出解决方案? 【参考方案1】:设置SKBitmap.Pixels
可以解决问题。
这是一个扩展方法:
public static void ClearToTransparent (this SKBitmap bitmap)
int pixelCount = bitmap.Width * bitmap.Height;
SKColor[] colors = new SKColor[pixelCount];
SKColor transparent = new SKColor(0, 0, 0, 0);
for (int n = 0; n < pixelCount; n++)
colors[n] = transparent;
bitmap.Pixels = colors;
【讨论】:
【参考方案2】:我建议在官方skia论坛上提问: https://groups.google.com/forum/#!forum/skia-discuss
我对skia 了解不少,但他们什么都知道。 SkiaSharp 只是原生库的一个薄包装器,所以无论他们做什么都只是在 C# 中做同样的事情。
【讨论】:
嗨@matthew 感谢您的更新。我已经在提供的论坛中发布了上述内容。请参考下面的链接。 groups.google.com/forum/#!topic/skia-discuss/sn8Qxhw5Ckw以上是关于如何在 SkiaSharp 中使 SKBitmap 位图颜色为透明的主要内容,如果未能解决你的问题,请参考以下文章
为啥 SkiaSharp.SKBitmap.Resize 返回 null?
如何在 Windows.Forms 应用程序中呈现 SKBitmap?