相关疑难解决方法(0)

如何使用GDI +绘制ARGB位图?

我有ARGB类型的有效HBITMAP句柄.如何使用GDI +绘制它?

我试过方法:graphics.DrawImage(Bitmap :: FromHBITMAP(m_hBitmap,NULL),0,0); 但它不使用alpha通道.

gdi+ image

4
推荐指数
2
解决办法
1万
查看次数

如何将位图像素复制到其他位图,保留C#中的alpha透明度?

有些人可以重写以下函数来使用任何优化机制吗?我很确定这不是继续进行逐像素复制的方法.

我读过AlphaBlendBitBlt,但我不习惯本机代码.

public static Bitmap GetAlphaBitmap(Bitmap srcBitmap)
{
    Bitmap result = new Bitmap(srcBitmap.Width, srcBitmap.Height, PixelFormat.Format32bppArgb);

    Rectangle bmpBounds = new Rectangle(0, 0, srcBitmap.Width, srcBitmap.Height);

    BitmapData srcData = srcBitmap.LockBits(bmpBounds, ImageLockMode.ReadOnly, srcBitmap.PixelFormat);

    try
    {
        for (int y = 0; y <= srcData.Height - 1; y++)
        {
            for (int x = 0; x <= srcData.Width - 1; x++)
            {
                Color pixelColor = Color.FromArgb(
                    Marshal.ReadInt32(srcData.Scan0, (srcData.Stride * y) + (4 * x)));

                result.SetPixel(x, y, pixelColor);
            }
        }
    }
    finally …
Run Code Online (Sandbox Code Playgroud)

c# winapi drawing image bitmap

4
推荐指数
1
解决办法
5804
查看次数

标签 统计

image ×2

bitmap ×1

c# ×1

drawing ×1

gdi+ ×1

winapi ×1