关于image的问题具体请进来看一下。谢谢了

sum008 2003-10-15 03:30:13
我把EXCEL里的图片复制到剪贴板后,在导到image里,但是我没办法知道图片的格式。
所以我用image.picture.assige(Clipboard);但是这样导进去的图片我要保存的时候问题就来了.用Image1.Picture.bitmap.savetostream(tfstream);存进去图片是空的.
用Image1.Picture.Graphic.savetostream(tfstream);存进去的图片打不开.
请问大家发表一下办法谢谢了.
下面的我的程序片段:
ClipBoard.HasFormat(CF_PICTURE);
Clipboard.Create;//创建剪贴板
ExcelWorksheet1.Shapes.Item(i).copy;//复制图片
image1.Picture.Assign(Clipboard); //导入.如果用.image1.picture.bitmap.assign(clipboard);会出错晕啊.
Image1.Picture.Graphic.savetostream(tfstream);
tfStream.Position:=0;
tblobfield(fieldbyname('image1')).loadfromstream(tfstream);

如果看不懂的我要问的问题,请说一下我在注释.
...全文
38 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
2312 2003-10-28
  • 打赏
  • 举报
回复
意思是:Image1中图像大小根据FBitmap的大小而显示呀!

出错?是那一句?
sum008 2003-10-16
  • 打赏
  • 举报
回复
to:2312(007)
rect1:=rect(0,0,FBitmap.Width,FBitmap.Height);
Image1.Canvas.CopyRect(rect1,FBitmap.Canvas,rect1);
上面这两句是什么意思啊能不能注释一下。
我用你上面的试了一下出错了。出错提示:Unsupported clipboard format.
-------------------
我问这个问题的其实目的是要把EXCEL中的图片存到数据库里。但是存的时候我要先导到image里看一下。而且要以TBitmap格式存进去,因为我别的地方有用到对图片处理。但是每次FBitmap.Assign(Clipboard)或者fBitmap.assign(image.picture.Graphic)都出错。

liudean626 2003-10-15
  • 打赏
  • 举报
回复
别那么麻烦了啦,用TBLOBFIELD类试试,很简单的
在Ttable下右键add all fields
注意,是不是多了一个Tblobfield类的实例?
用这个实例的savetofile与loadfromfile通过中间文件就可以了其他的二进制类型也可以这样处理(要在数据库中加一列‘类型’
如:
...
adotablepicture.savetofile('temp.jpg');
image1.picture.loadfromfile('temp.jpg');
deletefile('temp.jpg')
...
2312 2003-10-15
  • 打赏
  • 举报
回复
你试试:
var
rect1:trect;
FBitmap: TBitmap;
begin
FBitmap := TBitmap.Create;
if clipboard.hasformat(cf_picture) then
begin
FBitmap.Assign(Clipboard)
rect1:=rect(0,0,FBitmap.Width,FBitmap.Height);
Image1.Canvas.CopyRect(rect1,FBitmap.Canvas,rect1);
Image1.Picture.SaveToFile(path);
end;
FBitmap .free;
end;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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