图片拼接器
看到李开复老师在微博上发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;
}
}
也做了一个很简陋的图像界面,如下图所示:
![拼接图像](http://smallbridge-wordpress.stor.sinaapp.com/uploads/2011/12/%E6%97%A0%E6%A0%87%E9%A2%98.png)
![Creative Commons License](http://i.creativecommons.org/l/by/2.5/cn/88x31.png)
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名小橋流水(包含链接)。如您有任何疑问或者授权方面的协商,请给我发邮件。