从本质上讲,我有周围绘制,其中一个小盒子的功能的图像上的用户点击,通过使用在PIL的ImageDraw.Draw.rectangle方法。它的伟大工程,但问题是,我需要的能力,这样,当用户点击新的盒子里面,它应该被删除。然而,由于盒成为图像的一部分,我不能这样做。
有没有解决这个办法?有PIL的外库,将简化这个过程?
谢谢!
要做到这一点的方法之一是让你的基础,背景图像的原始的,未标注的副本,并保持注释的列表(这是我给你打电话提广场什么的),就像这样:
然后,每次时间重新绘制屏幕,把你的背景图像和循环的副本通过注释绘制每一个在列表中。
当谈到时间进行删除,浏览清单,并删除与最近的中心进入,并重新绘制屏幕。
你可以结合了@ Mika72的在评论中建议这种方法。所以,你将有你原来的,干净的形象,并为您的叠加单独的图像是相同的大小,开始时为空纯粹的透明画布。画出你的注释(正方形和矩形)到该层作为用户点击次数和每次的时间重新绘制屏幕,复合材料在原图片的注释层。现在您只需通过注释和列表迭代重新绘制他们时,一个被删除,因此重新油漆会更快。
另一种选择是“橡皮条”通过与异或绘图,请参阅回答here。