图片拼接器
看到李开复老师在微博上发ppt,感觉挺好的。原来新浪微博开通了发多张图片进行拼接的功能,这样就可以把ppt转成图片,然后再发布到新浪微博上。但是新浪微博有最多9张图片的限制,这个比较不爽,而对于腾讯微博,还不能发多张图片,这个就更不爽了。
所以自己就写了一个将图片拼接起来的程序,用C#写的,非常简单,其实就一个函数,总的代码也不过130行,核心拼接函数如下:
///
/// 拼接图像
///
///
private Image JoinImage(List imageList, JoinMode jm)
{
//图片列表
if (imageList.Count <= 0)
return null;
if (jm == JoinMode.Horizontal)
{
//横向拼接
int width = 0;
//计算总长度
foreach (Image i in imageList)
{
width += i.Width;
}
//高度不变
int height = imageList.Max(x => x.Height);
//构造最终的图片白板
Bitmap tableChartImage = new Bitmap(width, height);
Graphics graph = Graphics.FromImage(tableChartImage);
//初始化这个大图
graph.DrawImage(tableChartImage, width, height);
//初始化当前宽
int currentWidth = 0;
foreach (Image i in imageList)
{
//拼图
graph.DrawImage(i, currentWidth, 0);
//拼接改图后,当前宽度
currentWidth += i.Width;
}
return tableChartImage;
}
else if (jm == JoinMode.Vertical)
{
//纵向拼接
int height = 0;
//计算总长度
foreach (Image i in imageList)
{
height += i.Height;
}
//宽度不变
int width = imageList.Max(x => x.Width);
//构造最终的图片白板
Bitmap tableChartImage = new Bitmap(width, height);
Graphics graph = Graphics.FromImage(tableChartImage);
//初始化这个大图
graph.DrawImage(tableChartImage, width, height);
//初始化当前宽
int currentHeight = 0;
foreach (Image i in imageList)
{
//拼图
graph.DrawImage(i, 0, currentHeight);
//拼接改图后,当前宽度
currentHeight += i.Height;
}
return tableChartImage;
}
else
{
return null;
}
}
也做了一个很简陋的图像界面,如下图所示:
程序下载:图片拼接
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名小橋流水(包含链接)。如您有任何疑问或者授权方面的协商,请给我发邮件。