在画布上画图后,要移动图形,如何删除原图中的文字?
解决方案 »
- dbgrid的修改问题:如何知道修改前的值?
- dephi 窗口
- 请教关于用第三方控件提取delphi程序界面工具
- c/s完成,, 具体都要哪些东西,, 用ADO来实现?
- 单一的查询谁会?
- 如何实现双击表格中的某条记录时,弹出对话框修改该条记录的内容?
- 高分, 一个好的软件创意!
- 请教高手,mideaplayer控件放视频信息很奇怪的问题!!!
- 如何用NMSMTP控件发送HTML格式的电子邮件?
- 如何处理三层结构中服务端死机或掉线的连接问题?
- 希望大家能帮帮我,跪求,怎样来实现服务器传文件给多台客户端,我用的是Tidtcpservert和tidtcpclient控件
- 一字段保存了多副图像的读取显示方法
将文字所在的点以背景色代替即可;
或者
以反色在同样的位置写入同样的文字
那么如何才能获得字体的区域呢?
先,谢谢了!!
如何才能“将文字所在的点以背景色代替;”
比如,我要在Canvas上,写一个“1”。
怎么写?
而且实现起来也不是几句话那么简单
不过可以使用图象处理的第三方控件
如果字是你自己写的,不要直接写在Canvas上,可以先建立一个memBitmap,定点写在一个位置里,然后,变色,覆盖,alpha就随便你用了。gdi+可能能对你有帮助。
image.Canvas.FillRect(image.Canvas.ClipRect);
在新位置重画图吧
因为,即使你用OCR(字符识别)技术找出字符位置,擦掉字符后,其背景也不可能再恢复,
这样一来,仍然会看到字,只是字的颜色是你所用的擦去的颜色而已.最好的办法是写字时就考虑到要擦,把这些字所在的背景图像保留起来,
要擦掉它,就是把背景图像覆盖上去就行了.
把图像画在一层(即一个image1)上,字符写在另一层(image2)上,
并将image2设置为transparent.要擦掉字符,就是把image2删掉就行了.
擦掉比较难。
可以用TBitmap的变量记录,然后再恢复。