【算法】把N个图片组合成N张大图
未知数量图片,图片长宽皆为32倍数,小于等于512*512把这些图片组合成最大2048*2048的大图
放不下的另组合新的大图
组合的大图要尽可能利用空间
各位有什么好思路? --------------------编程问答-------------------- 合并图片代码,至于怎么组合,楼下提供。
#region 合并图片--------------------编程问答--------------------
/// <summary>
/// 合并图片
/// </summary>
/// <param name="bitMapDic">bitmap数组</param>
/// <returns>bitmap</returns>
public Bitmap MergerImg(Bitmap[] bitMapDic)
{
int j = 0, twatch = 0, theight = 0;
foreach (Bitmap entry in bitMapDic)
{
if (entry != null)
{
j++;
theight = entry.Height;
twatch = entry.Width;
}
}
Bitmap backgroudImg = new Bitmap(j * twatch, theight);
Graphics g = Graphics.FromImage(backgroudImg);
//清除画布,背景设置为白色
g.Clear(System.Drawing.Color.White);
j = 0;
foreach (Bitmap entry in bitMapDic)
{
if (entry != null)
{
g.DrawImage(entry, j * entry.Width, 0, entry.Width, entry.Height);
j++;
}
}
g.Dispose();
return backgroudImg;
}
#endregion
合并当然简单啊,难在怎么最大限度利用空间…… --------------------编程问答-------------------- google 下料算法。 --------------------编程问答-------------------- 一般来说,这个看似简单的排列组合算法其实不简单,需要用到一些启发式的算法在经济的成本下寻找近似最优解。这些启发式的算法包括诸如模拟退火或者遗传算法。 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 组合拼接- -这个不仅仅是考虑加起来的最优解,还要考虑到是否能够拼接起来的问题,最好还是分开写,一个是求解最优解,一个是能否拼接的函数,如果符合,再把它们拼接起来,不符合咋再从求最优解的函数中获取除最优解以外的最优解,依次递推 --------------------编程问答--------------------
拼接是肯定可以的,但是怎么求最优解?
有没有相关资料,我应该是百度的关键词不对,找不到资料……
补充:.NET技术 , C#