用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