求教:如何把图像完整的保存出来 ( 积分: 100 )

  • 主题发起人 主题发起人 xuehua_ljy
  • 开始时间 开始时间
X

xuehua_ljy

Unregistered / Unconfirmed
GUEST, unregistred user!
这里用canvas画了两幅图像image1和image2,我把它保存成一个图像,存放到image3中,然后进行保存,但是由于image2比较长,存到image3中只能保存image2中的一部分,不能完全保存。如何才能保存完整图像呢?
部分代码如下:
Image3.Canvas.Draw(1,1,image1.Picture.Graphic );
Image3.Canvas.Draw(1,image1.Height,image2.Picture.Graphic );

image3.Width:=image1.Width;
image3.Height:=image1.Height+image2.Picture.height;

if SavePictureDialog1.Execute then
begin
Image3.Picture.SaveToFile(SavePictureDialog1.FileName);
end;
多谢帮忙
 
这里用canvas画了两幅图像image1和image2,我把它保存成一个图像,存放到image3中,然后进行保存,但是由于image2比较长,存到image3中只能保存image2中的一部分,不能完全保存。如何才能保存完整图像呢?
部分代码如下:
Image3.Canvas.Draw(1,1,image1.Picture.Graphic );
Image3.Canvas.Draw(1,image1.Height,image2.Picture.Graphic );

image3.Width:=image1.Width;
image3.Height:=image1.Height+image2.Picture.height;

if SavePictureDialog1.Execute then
begin
Image3.Picture.SaveToFile(SavePictureDialog1.FileName);
end;
多谢帮忙
 
要求不是将两副图像合为一副吧.只是在IMAGE3上将IMAGE1显示在上半部分,将IMAGE2显示在下半部分,是不是要达到这样的效果呀,不知我有没有理解错.
 
是的,就是将两幅图像合并成一幅,不过image2比较长,超过了窗体的范围,而我想将整个这部分都保存下来,不知该怎么办?
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=667121
 
简单的方法
在你画的时候把图调整成窗体能容下的大小,再保存
复杂的方法
BMP文件的合并,查一查资料BMP文件的格式不复杂。
 
能否说的详细些?
多谢了
 
简单的方法
用Canvas.StretchDraw(Rect,image1.Picture.Graphic);
Canvas.StretchDraw(Rect,image1.Picture.Graphic);
这样你只要设置好两个Rect平均分布在你的Form上
就可以了。
复杂的方法
BMP文件结构:
1、文件头信息
2、位图头信息
3、调色板信息
4、位图(裸)数据
你找一下资料对这个结构进行操作就可以了
 
简单的方法是在image3里动态创建一个scrollbox,然后再把image1和image2放到scrollbox里;这时你会发现在scrollbox的右边有个滚动条;这样你就不用愁3放不下1和2的问题了;
不知道能得多少分...
 

Similar threads

后退
顶部