c# 处理多图片合并成一张大图的问题

yzlz888 2007-06-08 10:53:52
我使用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多小图到一个大图?

我的小图是有序的 所以只考虑一个一个合并排列起来 不考虑边界问题
...全文
1059 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
starj1 2008-01-03
  • 打赏
  • 举报
回复
int.maxvalu=4294967296
LZ多来几万张图都不会超界,前提是你的内存顶得住。
gisde 2008-01-03
  • 打赏
  • 举报
回复
解决了吗?
yzlz888 2007-06-12
  • 打赏
  • 举报
回复
图片打开不是问题 我不明白你说的通过文件系统解决 是怎么办 请给点思路
zhiang75 2007-06-12
  • 打赏
  • 举报
回复
to:cll0320(陈亮亮)
的确此问题可以通过文件系统解决,问题是什么样的计算机可以打开这样大的图片文件呢?在使用的时候可以不用进行内存操作呢?
zhiang75 2007-06-12
  • 打赏
  • 举报
回复
如果存在这样的计算机,LZ的做法没有问题。
zhiang75 2007-06-12
  • 打赏
  • 举报
回复
to:yzlz888()
这样大的图片你什么样的计算机打开呢?或者没有这样的计算机可以打开这样大的图片呢?
如果可以确定我的问题,我认为这个方案本身就存在问题。
yzlz888 2007-06-12
  • 打赏
  • 举报
回复
高手们都出来帮忙啊
zhiang75 2007-06-12
  • 打赏
  • 举报
回复
to:yzlz888()
使用文件的方式就是说你自己去写一个BMP文件,查一下BMP的文件格式,然后一个象素一个象素的写到这个文件里吧。
goneaway1981 2007-06-12
  • 打赏
  • 举报
回复
考虑换思路吧,模仿googlemap,ajax
yzlz888 2007-06-08
  • 打赏
  • 举报
回复
如果不能在内存里操作 那要如何实现呢?
cll0320 2007-06-08
  • 打赏
  • 举报
回复
真的有那么大的图你就不能在内存里面操作了。
建议去研究一下图片文件的格式,小图读到内存,然后直接操作要生成的大图文件数据。
yzlz888 2007-06-08
  • 打赏
  • 举报
回复
没人会么????????????

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧