我的目的就是。
Canvas.TextOut(10,10,'1')
然后,怎么才能将这个1擦掉呢?
不能用Image.Picture.LoadFromFile
Canvas.TextOut(10,10,'1')
然后,怎么才能将这个1擦掉呢?
不能用Image.Picture.LoadFromFile
解决方案 »
- FastReport3.0 为什么我预浏的时候是两页?急~在线等,解决就给分。
- 请问有没有人看过《Inside VCL(深入核心——VCL架构剖析)》这本值不值得买
- 在MIDAS编程中,怎样用网络协议提高数据存储速度
- 请问在ActiveFormX 中如何使用多线程?
- 求一函数?
- mdi 窗口的怪事 帮帮我
- 串口难题,请看看!先给100,不够还有。
- 如何在TListView的列中加入图标?
- 三个小问题!麻烦哥哥姐姐们了!
- 那儿有支持.jpg格式的dbimage控件下载?
- 怎么判断一个文件夹中有几张图片,并分别用Timage打开这些图片,急啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 使用fastreport的问题,需要限制可用表的选择
vColor: TColor;
begin
vColor := Font.Color;
Font.Color := Color;
Canvas.TextOut(10, 10, '1');
Font.Color := vColor;
end;
begin
Canvas.TextOut(22, 44, 'Hello');
end;procedure TForm1.Button2Click(Sender: TObject);
begin
SetTextColor(Canvas.Handle, $CCCCCC);
Canvas.TextOut(22, 44, 'Hello');
SetTextColor(Canvas.Handle, 0);
end;
但是Delphi未提供这个方法
可以使用FillRect方法实现目的
vColor: TColor;
begin
vColor := Font.Color;
Font.Color := Color;
Canvas.TextOut(10, 10, '1');
Font.Color := vColor;
end;
image.Canvas.FillRect(image.Canvas.ClipRect);
因为,即使你用OCR(字符识别)技术找出字符位置,擦掉字符后,其背景也不可能再恢复,
这样一来,仍然会看到字,只是字的颜色是你所用的擦去的颜色而已.最好的办法是写字时就考虑到要擦,把这些字所在的背景图像保留起来,
要擦掉它,就是把背景图像覆盖上去就行了.还有一种办法(我常用),就是分层显示:
把图像画在一层(即一个image1)上,字符写在另一层(image2)上,
并将image2设置为transparent.要擦掉字符,就是把image2删掉就行了.