如何使用 int 数组来着色.fromargb 并创建一个新图像 c#



我有这个代码:

Image IG = new Bitmap(width,height);
Graphics myGraphic = Graphics.FromImage(IG);
Color c = Color.FromArgb(BData[i]);// int[] BData

我想画一张新图像并用该颜色保存它 - 我该怎么做?

    int[] BData = new int[4] { 255, 11, 255, 0 };
    int width = 640;
    int height = 480;
    using (System.Drawing.Image IG = new System.Drawing.Bitmap(width, height))
    {
        using (System.Drawing.Graphics myGraphic = System.Drawing.Graphics.FromImage(IG))
        {
            System.Drawing.Color c = System.Drawing.Color.FromArgb((byte)BData[0], (byte)BData[1], (byte)BData[2], (byte)BData[3]); // int[] BData
            myGraphic.Clear(c);
        }
        IG.Save("test.png", System.Drawing.Imaging.ImageFormat.Png);
    }

使用 256 表示 alpha 将插入一个"0"alpha,范围为 0-255。此代码将绿色.png图像保存在可执行文件所在的位置。Save() 需要扩展名和/或 ImageFormat。你可能必须在 Color.FromArgb 中使用 i+0、i+1、i+2、i+3。(字节)BData[i].

System.Drawing.Color.FromArgb((byte)BData[i+0], (byte)BData[i+1], (byte)BData[i+2], (byte)BData[i+3]);

一旦BData被填满,那么只需使用:

using (var ms = new System.IO.MemoryStream(BData))
{
    System.Drawing.Image.Image image = System.Drawing.Image.FromStream(ms);
    image.Save(@"test.png");
}

相关内容

最新更新