|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
dalas (dalas) |
★☆☆☆☆ |
-
|
普通会员 |
|
2020/11/27 23:15:47 |
标题: |
遇到个很奇怪的问题,在Image上写字,保存为文件时总报错 |
浏览:1137 |
|
加入我的收藏 |
楼主: |
var Image:TImage; begin Image:=TImage.Create(Self); try Image.Parent:=Self; Image.Align:=alClient; //Image.SendToBack; Image.Picture.LoadFromFile('Z:\A.png'); Image.Canvas.Brush.Color := clwhite; Image.Canvas.Font.Color:=clRed; Image.Canvas.TextOut(50,50,'中华人民共和国'); Image.Picture.SaveToFile('Z:\B.PNG'); finally Image.Free; end; 这段代码,在新建一个工程里执行,完全没问题。但在我程序里,完全相同的代码,在保存为b.png时,总报错:
此帖子包含附件:
大小:4,043B |
----------------------------------------------
- |
作者: |
dalas (dalas) |
★☆☆☆☆ |
-
|
普通会员 |
|
2020/11/27 23:18:23 |
1楼: |
要疯了
此帖子包含附件:
大小:66.0K |
----------------------------------------------
-
|
作者: |
dalas (dalas) |
★☆☆☆☆ |
-
|
普通会员 |
|
2020/11/27 23:25:09 |
2楼: |
新建工程运行就不报错,但有个问题,控件上看不到画上的字,但保存出来的文件里有字。
此帖子包含附件:
大小:309.5K |
----------------------------------------------
-
|
作者: |
xjia (xjia) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2020/11/29 15:35:52 |
3楼: |
因为你载入的是PNG,如果你载入的是BMP就没问题
----------------------------------------------
-
|
作者: |
lsuper (lsuper) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2020/11/30 10:13:26 |
4楼: |
1、Delphi Image 插件机制,你用了 Png 需要 uses Vcl.Imaging.pngimage 2、拆开你加载过程,你一个函数里 image 改了之后没有刷新 ui 然后 free 了,没来及显示
----------------------------------------------
-
|
作者: |
|
2020/11/30 13:39:28 |
5楼: |
用ImageEn,没任何问题
----------------------------------------------
-
|
作者: |
dalas (dalas) |
★☆☆☆☆ |
-
|
普通会员 |
|
2020/11/30 13:57:16 |
6楼: |
@3楼:说的没错,载入BMP是没这个问题。 @4楼:1、肯定是已经 uses 了 pngimage的。2、可能是你说的这个原因,不过我关系不大,因为我主要是为了在图片上写字,写完字就保存文件了,那个image都不需要显示出来。
最后,这个报错的问题,用了很low的办法,通过多用一个TImage作为过渡,从源Image.Picture.Graphic里复制图形过来,再在临时Image里写字就可以。将就着先解决需求了。
虽然之前那个报错,我还是没搞明白原因。
----------------------------------------------
-
|
作者: |
|
2020/12/2 16:36:23 |
7楼: |
如同jpg, timage创建时其canvas不可用, 你必须用个bitmap assign, 或用其他方法建立canvas 如果是bitmap就可以直接用canvas
这是很多年前就有的问题, 查查老资料应该有不少讨论
----------------------------------------------
-
|
|