• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

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多小图到一个大图?

我的小图是有序的 所以只考虑一个一个合并排列起来 不考虑边界问题
...全文
702 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
没人会么????????????
回复
相关推荐
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2007-06-08 10:53
社区公告

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