问题标签 [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.

0 投票
1 回答
1240 浏览

android - 如何在android中触摸绘图和擦除

我在互联网上没有得到这个问题的答案,我正在尝试用用户可以选择的不同颜色进行绘制,问题是这个 drawview 没有绘制任何东西,我不知道如何使用触摸橡皮擦只擦除触摸点是 customview :

如果有人能提供答案,将不胜感激,这是我的日志:

0 投票
0 回答
45 浏览

android - 使用可拖动对象擦除

我正在尝试创建一个将删除部分图像的 Android 应用程序。我试图通过使用可拖动的对象(橡皮擦的图像)来实现这一点。

我已经实现了将橡皮擦图像拖动到应用程序中的任何位置并在拖动手指时擦除背景图像的功能。现在我想桥接这两个功能,以便仅在拖动橡皮擦图像时才擦除背景图像。我怎样才能完成这项任务?

以下是我到目前为止所做的:

MainActivity.java

MyCustomView.java

activity_main.xml

任何帮助是极大的赞赏。谢谢!

0 投票
1 回答
371 浏览

uwp - 在 UWP 中擦除部分描边

通过在 UWP 中使用 InkCanvas/InkPresenter,我正在使用适用于 Windows 10 的新 Ink 技术。墨水渲染真的很好,除了我似乎无法只擦除笔画的一部分。我正在查看 OneNote,我假设它使用的是相同的技术,它们确实提供擦除部分笔划的功能。我知道在首次引入 InkCanvas/InkPresenter 时这是不可能的,但我想知道是否有一种方法可以实现这一点?有什么方法可以掩盖笔划来伪造橡皮擦,也许吧?有人有建议吗?

0 投票
0 回答
27 浏览

java - 擦除画布 SandLab.java

我在java上创建一个游戏,我想在屏幕上绘画后重置整个画布。我想通过在游戏侧面添加一个按钮来做到这一点,但我不确定在我的代码中添加这个按钮的位置。代码的一般格式是 SandLab.java。有谁知道在哪个领域实施这个?

0 投票
0 回答
838 浏览

fabricjs - 擦除 Fabric JS 上的线条

我正在使用 FabricJS 在图像顶部绘制和擦除线条。我为画布做了两层,底层作为背景图像,顶层用于素描。每当我擦除标记时,如果我使用 freeDrawingBrush.color =white 或任何基本颜色,它就会被擦除。但是,如果我使用透明的 'rgba(0,0,0,0)' 作为 freeDrawingBrush 的颜色,则不会擦除标记。

如何擦除顶层上的标记,透明作为我擦除时创建的路径的背景?

我在 html https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.22/fabric.min.js上使用fabricjs

任何帮助将不胜感激。提前致谢!

0 投票
0 回答
37 浏览

canvas - 哪些是访问图像像素数据的不同方式并且可以替换该数据?

我正在开发一种图像编辑工具,我想制作图像背景去除器的功能。

我使用fabric js - 1.7.22 进行图像处理。此功能还包含放大/缩小画布和擦除背景的功能。


当前工作流程:

我使用以下方法使用画布上下文从图像中选择一个像素。

然后用我的新目标颜色替换该颜色。


问题

我的画布根据窗口大小显示(使用放大/缩小画布自动调整)。

现在,当我的窗口尺寸太小或我的图像在 5000 像素 X 5000 像素左右太大时,它会自动缩小以适应屏幕。

现在,当我使用画布上的鼠标位置获取图像数据时。我的图像数据将获得缩放画布大小的大小。然后在我将该数据转换为图像之后。它会模糊我的形象。


有什么方法可以在不使用的情况下访问图像像素数据canvas?有什么方法可以在不使用的情况下轻松擦除图像canvas

请帮我。

0 投票
1 回答
2249 浏览

ios - 如何在 Swift 中使用 CAShapeLayer 为 CALayer.SubLayer 创建橡皮擦

我一直在到处寻找一个被问了很多次的问题的答案。我花了几个小时浏览 SO 和 Google。必须有一个不费吹灰之力的答案。

我正在开发一个矢量绘图应用程序,最终使绘图和撤消功能正常工作。现在我需要一个橡皮擦:-o

编辑:根据@DonMag 的精彩文章,我能够非常接近橡皮擦,但有些东西仍然不太正确。因此,我将尝试解释我的视图和图层在应用程序中的位置以及我这样做的原因:

从底部视图/层到顶部...

  1. BackgroundImageView - 我正在使用这个图像视图来保存绘图表面的“背景”。这是一个可以更改的层,可以保存和调用新的“模板”。我将它分开,以便用户无法擦除绘图表面。背景由 CAShapeLayers 组成,它们被绘制来代表不同的纸张类型。

  2. MainImageView - 我正在使用这个图像视图来完成用户启动的所有绘图。所以我触摸并拖动手指,新的 CAShapeLayer 被添加到图像视图中。这使用户的绘图与“绘图表面”分开。这也是我希望擦除发生的地方

  3. PageImagesView - 我使用这个视图来保存用户可以添加到页面的图像,并移动/调整它们的大小。我不希望橡皮擦影响图像,但是如果在 MainImageView 中绘制的一条线穿过图像并需要擦除,它应该让图像显示出来,而不是删除图像的一部分。

我还添加了另一层试图让橡皮擦工作,并将其命名为“EraserImageView”,并将“蒙版”绘制到其中,然后尝试将该蒙版应用于 MainImageView。

这是我的绘图代码,每次调用 touchesMoved 时都会调用:

编辑: 将橡皮擦的代码添加到我的绘图代码中。

上面的代码导致所有用户绘图消失,除了“橡皮擦”触摸的部分。我知道我有问题,或者我没有正确使用面罩。有没有人有办法解决吗?

画了一些线条,看起来很棒......

[我画了一些线条,看起来很棒!

当我尝试橡皮擦时,会发生这种情况......

当我开始擦除时,一切都消失了,除了我用橡皮擦碰到的地方。

正如您在上面看到的,我可以画线,但是一旦我将橡皮擦触摸到页面上,它就会删除除我用橡皮擦触摸的部分之外的所有内容。

有谁知道我哪里出错了??

编辑: 如此接近! 当我移动手指时,我能够让橡皮擦去除部分画线。但它不是使用尺寸进行绘制,而是在制作形状。使用橡皮擦后,只要我触摸绘图表面,它就会替换所有“已擦除”的部分。

这是我的新橡皮擦代码:

结果如下: 在此处输入图像描述

关于如何让橡皮擦像线条一样绘制的任何想法?

编辑:应@DonMag 的要求添加背景“绘图”的代码

以下是将其添加到 BackgroundImageView 的方式:

希望能帮助更多...

0 投票
2 回答
1619 浏览

android - 如何为颤振绘图应用程序实现橡皮擦功能

有一个关于通过颤振(YouTube)创建绘图应用程序的视频,它支持在用户点击屏幕时绘制线/点,但我找不到像 Android 原生(如这里)那样擦除用户绘制的内容的功能/方法,尤其是为线。我不能只在它们上面覆盖一些像白色这样的颜色,因为我在手势检测器下有背景图像。

有人可以给我一些建议吗?

我的示例项目:

谢谢。

0 投票
0 回答
385 浏览

flutter - 在 Flutter 中使用橡皮擦覆盖图像

我正在制作一种绘画应用程序,让您在背景图像上绘画。有一些工具,比如笔,然后是橡皮擦。理想情况下,我们只在背景颜色上绘画,但它是一个图像。当我们在屏幕上平移时,我们的想法是删除手指下的点,但偏移量和本地位置不匹配(它们就像 40(单位?)关闭)。

如果我可以使用另一种方法,那就太好了,但我现在还看不到。

0 投票
0 回答
87 浏览

python - aggdraw:以透明方式绘画或擦除至透明。似乎没有办法擦除或绘制透明像素

这使用 aggdraw 和 PIL Image。

所以我正在尝试使用贝塞尔曲线生成一些形状。但问题是移除绘图的内部部分。如果我使用内部路径和外部路径,它只会填充两者,如果我将它们分开并为内部使用透明画笔,它不会做任何事情。

说如果你想画一个甜甜圈,你如何去除这个洞?

似乎不可能用 aggdraw 擦除像素,所以....也许我错过了一些东西。

问题一:你能用透明画笔在像素变成透明的地方画画吗?

问题二:如何擦除像素、多边形和路径?当然我可以使用面具,但我必须创建面具,所以回到同样的问题。

最后,有一些图像是我的要点,下面的链接。一种是使用代码生成路径数据,然后用gimp进行绘制,也就是目标渲染。另一个是我的代码实际生成的图像。

要点示例:[ https://gist.github.com/ismaelharunid/49df974a59ad98be6934deb8d38154ce

好的,所以我的问题仍然存在,但我找到了一种解决方法,这可能是大多数人的做法。使用蒙版,是的,我可以在 L 模式(灰度)下绘画,然后在东边画出或在每个你想做的蒙版中画出或画出。然后你必须应用面具。有点乏味,但它完成了工作。修改后的代码有效...

还有田……

[ https://user-images.githubusercontent.com/26759688/84541494-16bdf180-ad2a-11ea-805e-29388f992070.png