用C#修正32位位图A通道

作者:V君 发布于:2016-8-10 12:23 Wednesday 分类:折腾手记

TL;DR  几行代码:
static Bitmap FixAlpha(Bitmap bmp)
{
    if (bmp.PixelFormat != PixelFormat.Format32bppRgb)
        return bmp;
        
    var data = bmp.LockBits(new Rectangle(Point.Empty, bmp.Size),             ImageLockMode.ReadOnly,PixelFormat.Format32bppRgb);
    
    var bma = new Bitmap(bmp.Width, bmp.Height, bmp.Width * 4, 
        PixelFormat.Format32bppArgb, data.Scan0);
    
    bmp.UnlockBits(data);
    return bma;

}

扯扯:
在讨论版看到有po遇到这个自己已经解决的问题, 但是没有授权回复不了, 那就发出来了
目测那个po也是从视觉小说提取出来的 CG, 不知道是提取器的锅还是咋地, 
会得到黑(或杂色)背景的 32 位 BMP, 弄清楚原因之后批量处理再保存成 PNG 就搞定了.

标签: 软件开发 C# 图像处理

引用地址:

发表评论:

Powered by emlog 去你妹的备案 sitemap