gdi+ Graphics 实现图片拼接排版合并

366
补充展位
Pages_Weblog_Get#2a60934a-9a68-4098-a476-3c599bc33809
文章摘要
此内容由人工摘要内容,并由AI根据文章内容进行润色
使用C#和GDI+技术实现图片拼接排版合并功能。通过指定行列数,将多张图片按矩阵形式拼接成一张大图,通过引用System.Drawing.dll、计算每格尺寸、配置绘图参数并绘制图像的具体实现方法,最终返回拼接后的完整Bitmap结果

gdi+ 实现图片拼接排版合并

先添加System.Drawing.dll引用

c#实现拼图代码

using System.Drawing;
using System.Drawing.Drawing2D;
///////
///图像宫格按行列拼接 合并 组合 
///ImageBitmapQueue 图像队列
///CellColumns 列数
///CellRows 行数
//////
public static Bitmap SplicingMatrix(this List <Bitmap> ImageBitmapQueue, int CellColumns, int CellRows) {  
 
    int CellWidth = (int)(ImageBitmapQueue.Max(e =>e.Width));//每格最大宽度  
    int CellHeight = (int)(ImageBitmapQueue.Max(e =>e.Height));//每个最大高度  
  
    Bitmap bitmap = new Bitmap(CellColumns * CellWidth, CellRows * CellHeight);  
  
    Graphics g = Graphics.FromImage(bitmap);  
    g.SmoothingMode = SmoothingMode.HighSpeed;  
    g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;  
    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;  
    g.PixelOffsetMode = PixelOffsetMode.HighQuality;  
    g.Clear(Color.Black);  
    ///Graphics   
    for (int i = 0; i < ImageBitmapQueue.Count; i++) {  
        Bitmap MatrixBitmap = ImageBitmapQueue[i];  
        MatrixBitmap = new Bitmap(MatrixBitmap, new Size() {  
            Width = MatrixBitmap.Width,  
            Height = MatrixBitmap.Height  
        });  
        int row = i / CellColumns; //行数  
        int column = i - (row * CellColumns);  
  
        g.DrawImage(MatrixBitmap, new Point() {  
            X = column * CellWidth,  
            Y = row * CellHeight  
        });  
    }  
    g.Dispose();  
    return bitmap;  
}
补充展位 Pages_Weblog_Get#0
补充展位 Pages_Weblog_Get#1
补充展位 Pages_Weblog_Get#2
专题推荐
暂无内容
补充展位 Pages_Weblog_Get#3