gdi+ Graphics 实现图片拼接排版合并
gdi+ 实现图片拼接排版合并
先添加System.Drawing.dll引用
using System.Drawing;
using System.Drawing.Drawing2D;
c#实现拼图代码
///////
///图像宫格按行列拼接 合并 组合
///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;
}