我使用bitmap 先建立了一个存储区 把小图然后一张一张循环加进去
bitmap bm=new bitmap(1000,1000);
Grapchics g=graphics.fromimage(bm);
for (int j = 0; j < hang; j++)
{ Bitmap b1 = new Bitmap(Image.FromFile("j.jpg"));
g.DrawImage(b1, j * 256, j * 256);
}这样处理少量的图片合成还可以 效果也不错
但是在大量的图片合成时 由于bitmap的宽度和高度是int类型比如创建存储区时
bitmap bm=new bitmap(100000,100000);宽度高度都大于32767
大量图片的话 就超标了 请教大家这种情况该怎么办,是否还有更好的方法合成n多小图到一个大图?我的小图是有序的 所以只考虑一个一个合并排列起来 不考虑边界问题
bitmap bm=new bitmap(1000,1000);
Grapchics g=graphics.fromimage(bm);
for (int j = 0; j < hang; j++)
{ Bitmap b1 = new Bitmap(Image.FromFile("j.jpg"));
g.DrawImage(b1, j * 256, j * 256);
}这样处理少量的图片合成还可以 效果也不错
但是在大量的图片合成时 由于bitmap的宽度和高度是int类型比如创建存储区时
bitmap bm=new bitmap(100000,100000);宽度高度都大于32767
大量图片的话 就超标了 请教大家这种情况该怎么办,是否还有更好的方法合成n多小图到一个大图?我的小图是有序的 所以只考虑一个一个合并排列起来 不考虑边界问题
这样大的图片你什么样的计算机打开呢?或者没有这样的计算机可以打开这样大的图片呢?
如果可以确定我的问题,我认为这个方案本身就存在问题。
的确此问题可以通过文件系统解决,问题是什么样的计算机可以打开这样大的图片文件呢?在使用的时候可以不用进行内存操作呢?
使用文件的方式就是说你自己去写一个BMP文件,查一下BMP的文件格式,然后一个象素一个象素的写到这个文件里吧。
LZ多来几万张图都不会超界,前提是你的内存顶得住。