image - 可以在图像上绘制“可擦除”箭头和线条吗?
问题描述
假设您有一个图像文件,例如 myimage.png。然后打开 Windows Paint 并在该图像文件上绘制一个红色箭头,然后保存它。当您再次打开该图像时,似乎无法“删除”红色箭头以使图像文件恢复其原始文件。
但是,我问,真的有可能“删除”箭头和其他在图像上绘制的东西吗?我们是否可以有一个包含两层的图像,第一层是不可变的,第二层是我们画线、箭头等的地方,这样我们就只在层堆栈的顶部编辑第二个图像?如果是这样,我应该从哪里开始搜索?我完全迷路了。提前感谢您的帮助!
解决方案
如果您创建一种新的文件格式来保存原始图像以及对它所做的所有修改,这将是可能的。请注意,这可能会占用大量磁盘空间,具体取决于进行了多少修改以及您实际保存所做修改的方式。此外,根据您是否实际保存修改后图像的最后状态,打开此类图像可能需要一些时间,因为所有操作都需要再次应用于原始图像。当然,如果您保存图像的最新状态,则可以轻松加载该状态。
但我不知道执行此类任务的任何常见文件格式,因此您可能必须为此编写自己的实现。GIMPs XCF 文件格式不会保存对图像执行的每个操作,但它能够保存“除其他外,每一层、当前选择、通道、透明度、路径和指南”。如果每个提到的箭头实际上都将添加到自己的图层中,那么您将能够简单地删除相应的图层,从而删除箭头。
推荐阅读
- tensorflow - 根据另一个张量排列一个张量的每个像素
- rust - 如何减少(折叠)迭代器并保留中间结果(例如累积和)?
- c++ - 在 C++ 标准文档中,如何知道下标“opt”的作用范围?
- typescript - 用于 RealmIO 和 typescript 的 nativescript cocoapods 插件
- c# - 使用 WPF Mediakit 检测网络摄像头的分辨率和帧速率选项
- asp.net-core - .NET Core 中的 IdentityServer 令牌授权
- python - 如何从数据框中删除行,其中字段仅包含破折号/连字符(-),而不影响 python 中的负值
- apache-spark - hive表选择sql列类型异常
- java - 未调用 ZuulFilter
- liquid - 按 Liquid Markup 中对象内的日期时间属性对列表进行排序