问题标签 [eraser]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 在 Android 绘图应用程序中实现橡皮擦 - 黑色轨迹然后透明
我有一个适用于 Android 的绘图应用程序,我目前正在尝试为其添加一个真正的橡皮擦。以前,我只是用白色油漆做橡皮擦,但现在我允许使用背景颜色和图像,所以不再这样做了。我通过在透明画布下方放置一个图像视图来做到这一点。
我面临的问题是,每当我启用橡皮擦时,它会在我的手指向下时画出一条纯黑色的轨迹,但一旦我松开它就会变成透明的。请参阅下面的屏幕截图:
这就是我的手指在屏幕上时的样子——一条纯黑色的轨迹
这就是我将手指从屏幕上移开后的样子
因此,似乎我已经接近了,但我找不到正确的设置组合来避免在擦除时手指触摸时出现黑色痕迹。以下是一些相关的代码片段:
绘制
触摸事件
当前尝试橡皮擦设置
还有其他几篇关于橡皮擦的帖子,但大多数都只是说使用PorterDuff.Mode.CLEAR
,setMakFilter(null)
而且应该可以。在我的情况下,它没有。无论我尝试什么,我都会先得到黑色轨迹,然后只有在发布后才能得到想要的结果。
如有必要,我可以提供更多代码。
java - 为 Android 绘图应用程序创建橡皮擦
我正在开发一个绘图应用程序,并且非常接近发布,但我遇到了应用程序的橡皮擦部分的问题。我有 2 个主屏幕(片段),其中一个只是一个空白的白色画布,用户可以在上面绘制一些选项等等。另一个是笔记片段。这个笔记片段看起来像笔记本纸。所以为了擦除绘图片段,我可以简单地使用画布的背景,用户不会知道区别。在笔记片段上,虽然我不能这样做,因为我需要保持背景完好。我研究了 PorterDuffer 模式并尝试了清晰版本并尝试绘制到单独的位图上,但没有任何效果。如果有一种方法可以控制在什么之上绘制什么,那将很有用。我愿意接受任何建议,我似乎无法得到任何工作。
我还玩过在擦除之前启用绘图缓存,但这不起作用。此外,我尝试了硬件启用,这使我的自定义视图表现得很奇怪。下面是相关代码。我的绘制方法经历了很多路径,因为我正在查询它们以允许其他一些功能。
和我的绘制背景方法
android - Android: Painting app with eraser not working
I am working on a painting app, with undo/redo function and would like to add eraser function.
Code for MainActivity
DrawView
Question:
Normal painting and undo / redo can be performed perfectly. However, the eraser does not work.
After pressing (
touch_start
) the eraser button and touch the screen, all the previous drawn line immediately turn black.When using the eraser upon
touch_move
, the eraser itself is drawing black lines, even though it was onCLEAR
mode.Upon
touch_up
, All other drawn lines maintained at black color. The "erased" area was also in black color. However, when drawing a new path subsequently, the original line turned to their original color, the area "erased" by the eraser turn its color to the last color chosen and the paths retained in the View.
How could the code on eraser be written in a proper way? (keeping undo / redo)
Thanks a lot in advance!
android - 旋转android时在画布上以相反方向绘制路径
嗨,我正在擦除用触摸(手指)在画布上绘制的位图,它工作正常我面临的问题是在画布路径上旋转位图后以相反方向绘制意味着位图擦除在我的手指触摸的相反方向上。
DrawingPane.class
android - Android绘图应用程序中的撤消和擦除功能(重复)
这个问题已经被问过很多次,比如Android 绘图、擦除和撤消操作, 但没有人给出正确的解决方案。我正在制作一个绘图应用程序,一切正常,直到我添加了撤消功能。添加撤消功能橡皮擦后无法正常工作。它使以前的绘图变黑并且也不会擦除。这是我的 DrawingView 类的构造函数:
这是 onDraw 方法
这是touchEvent Handler
这是我的 SetErase 方法
最后我的撤消方法
有没有办法在绘图应用程序中同时实现撤消和擦除功能?如果是?那么请提供一些帮助。谢谢
ios - ipad擦除图像性能缓慢
我有一个 iOS 应用程序,可以让我通过触摸擦除图像。它在 iphone 上运行良好,但在 ipad air 上却落后很多。它在 iPhone 上使用约 40MB 的内存,但在 ipad 上使用约 200MB。有任何想法吗?
javascript - Jquery 图像橡皮擦插件
我正在寻找一个可以擦除部分实际图像的 jquery 图像橡皮擦插件。例如,如果用户上传了一张猴子的图像并决定不想要尾巴,那么他应该能够将鼠标移到尾巴上并将其擦除。为了简单起见,我们假设所有图像都是黑白的,背景总是白色的。
我已经搜索了很长一段时间,大多数“jquery 橡皮擦”插件都指向画布橡皮擦,而不是真正的图像橡皮擦。例如: http: //minimal.be/lab/jQuery.eraser/ 这会在图像顶部创建一个画布,然后您可以擦除画布 - 这不是要求
stackoverflow 上的其他几个线程很有趣:比如 如何使用 javascript 擦除部分图像并且擦除像素的结果是透明的?
有没有可以用画布做到这一点的插件
java - 使用画布的橡皮擦效果
我有一个扩展视图的自定义视图类。我正在使用覆盖的 onDraw 方法在画布上涂鸦。我有一个 POJO 列表,其中包括 Path 和 Paint,借助它我可以重新创建绘制的旧路径,如下所示:
我想实现擦除功能,它应该像正确的擦除一样工作。我知道一种方法来写入位图并使用 setXfermode 到 CLEAR 可以正常工作。但是像素化在较小分辨率的设备上看起来并不好。我不想使用白色颜料,因为在此视图下方我有一个 ImageView,因此将其着色为白色也会影响 ImageView。任何解决此问题的想法或片段都将受到高度赞赏。
html - 如何撤消 HTML5 Canvas 绘图应用程序的橡皮擦操作
我创建了一个 HTML5 绘图应用程序,它具有允许用户选择要绘制的颜色、更改绘图工具的大小(半径)、撤消、重做和完全清除画布的基本功能。
我最近使用 globalCompositionProperty (destination-out) 添加了一个橡皮擦工具来擦除画布的选定区域。这部分工作正常,但是当我去撤消擦除时,整个画布都被清除了,重做功能不起作用。当我使用常规绘图工具(使用源代码)恢复绘图时,撤消/重做工作。我已经包含了应用程序中使用的一些功能的代码。每次关闭绘图工具时,我都会存储画布的快照。这被添加到用于撤消和恢复画布的数组中。
有人可以解释我在这里做错了什么吗?我不确定我是否了解 globalCompositeOperation 属性如何影响已保存的画布 DataURI。
更新:玩了一段时间后,我尝试了一些可以解决我的问题的方法。我不确定这是否是正确的做事方式,但我想我会向你展示我所做的一切。
我有一个在鼠标启动时触发的脱离功能。这是之前的功能:
我添加了一些代码,这允许用户使用橡皮擦工具并撤消/重做操作。我还不确定为什么会这样,所以如果有人有见识,我将不胜感激。