标签: image-masking

如何在SKSpriteNodes中剪切随机孔

除了这里提出的问题:用SpriteKit在矩形中画一个洞?由于两者之间没有令人满意的答案,两者之间最显着的区别是这个问题需要缺少解决方法,特别是要求扭转SKCropNodes的功能.

由于孔的随机性,孔的数量以及孔要应用的物体的变化,上述问题可以解决的hacky方式的类型无法解决这个问题中的主要问题.

因此瑞士奶酪的例子如下:

想象一堆随机大小的矩形SKSpriteNodes,充满各种色调的奶酪色.

如何通过从每片奶酪中切出随机圆圈来制作瑞士奶酪?

如果SKCropNodes是圈子,他们只留下圆形的奶酪片而不是从奶酪块中切出孔.有没有办法反转SKCropNodes的行为,所以他们切换孔?

image-masking sprite-kit skspritenode skcropnode skshapenode

14
推荐指数
1
解决办法
605
查看次数

React Native - 在图像上添加蒙版圆圈覆盖

如何在 React Native 中的图像上添加不透明的圆形叠加层?类似于 Instagram 图片选择器:

在此处输入图片说明

这似乎是一项微不足道的任务,我在复制它时遇到了麻烦。有什么建议?

javascript image-masking reactjs react-native

8
推荐指数
1
解决办法
541
查看次数

使用 ImageMagick 在已经具有透明度的图像上应用渐变蒙版?

我有一个透明的 PNG 图像:

原始.png
原来的

现在我想使用 ImageMagick 将对角渐变应用于其 alpha 通道。我的意思是,它的不透明度保持在左上角,并逐渐淡出到右下角完全透明。像这样:

结果.png
结果

所以基本上我想生成一个渐变,并将其用作图像的蒙版。但图像已经有自己的 Alpha 通道(透明度)。这是我正在尝试的可视化:

手术

(为了可见性,原始和结果显示在棋盘上,但我的意思是实际透明度)

我想我了解如何生成对角渐变(重心渐变命令对此非常有用)。但这会在颜色通道中创建渐变,即彩色或灰度渐变。而我想在Alpha通道上应用渐变。

IM 手册中我了解到-compose CopyOpacity操作员可以用于此目的。然而,这似乎将阿尔法从蒙版复制到我的图像上。我需要在现有的 Alpha 通道上“应用”此渐变颜色,因此基本上我需要将图像的 Alpha 通道乘以渐变图像中的灰度颜色。

执行上面显示的操作的正确 IM 命令行是什么?

transparency mask imagemagick alpha-transparency image-masking

6
推荐指数
1
解决办法
1809
查看次数

为什么 CSS mask-image 不能与 no-repeat 一起使用?

我有一个 SVG,我想在某些事件中将其颜色更改为红色,但你不能使用 SVG 作为背景图像来做到这一点,所以你必须使用 CSS image-mask。我使用 PHP 将 CSS 回显到 div 的 style 属性上:

$jfid = "background-color:red;
        -webkit-mask-image:url(../like_icons/" . $iconfgg . ".svg);
         mask-image:url(../like_icons/" . $iconfgg . ".svg)"; 
Run Code Online (Sandbox Code Playgroud)

喜欢

$jfid = "background-color:red;
        -webkit-mask-image:url(../like_icons/" . $iconfgg . ".svg);
         mask-image:url(../like_icons/" . $iconfgg . ".svg)"; 
Run Code Online (Sandbox Code Playgroud)
.buttonlikee {
    background: transparent;
    outline: none;
    border: none;
    margin-left: 10px;
    transition: 0.8s all ease
}
.ts{
  width: 34px;
  height: 32px;
  background-color:red;
  -webkit-mask-image:url(https://svgshare.com/i/CB7.svg);
  mask-image:url(https://svgshare.com/i/CB7.svg) 
}
Run Code Online (Sandbox Code Playgroud)

这按预期工作,但返回同一 SVG 的重复图像。所以解决方案是no-repeat最后添加如下:

$jfid = "background-color:red;
         -webkit-mask-image:url(../like_icons/" . $iconfgg . ".svg) no-repeat; …
Run Code Online (Sandbox Code Playgroud)

html css image image-masking

6
推荐指数
1
解决办法
5532
查看次数

在pylab中以不同颜色显示多个蒙版

我有一个数组,包括体面的观察,不相关的观察(我想掩盖),以及没有观察的区域(我也想掩盖).我希望将此数组显示为具有两个单独掩码的图像(使用pylab.imshow),其中每个掩码以不同的颜色显示.

我找到了某种颜色的单个掩码(此处)的代码,但两个不同的掩码没有任何代码:

masked_array = np.ma.array (a, mask=np.isnan(a))
cmap = matplotlib.cm.jet
cmap.set_bad('w',1.)
ax.imshow(masked_array, interpolation='nearest', cmap=cmap)
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我想避免使用严重扭曲的颜色图,但接受这是一个选项.

python matplotlib image-masking

5
推荐指数
1
解决办法
3895
查看次数

使用ImageMagick删除收据图像边框

在使用tesseract-OCR引擎提取文本之前,我正在使用ImageMagick服务预处理收据图像.我需要删除收据的背景.我已经通过掩蔽来移除这里的边界.但是我无法为收据创建掩码.

但是,我试图从收据图像中删除阴影.

初始图像(示例收据)

在此输入图像描述

convert input.png -colorspace gray \
      \( +clone -blur 0x2 \) +swap -compose divide -composite \
      -linear-stretch 5%x0%   photocopy.png
Run Code Online (Sandbox Code Playgroud)

应用代码后:

在此输入图像描述

我已经尝试了下面的代码来制作除了白色到黑色的所有颜色,但这似乎并没有完全消除photocopy.png的背景.

convert receipt.jpg -fill black -fuzz 20% +opaque "#ffffff" black_border.jpg
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有没有办法删除收据图像的边框?或者从图像中创建任何类型的蒙版?注意:我需要删除具有不同背景的多个图像的噪点和边框.

ruby ocr tesseract imagemagick image-masking

5
推荐指数
1
解决办法
891
查看次数

Svg 遮罩在生成时不会渲染

<svg x="0" y="0" height="2048" width="4096" style="position: absolute; top: 0px; left: 0px; pointer-events: none;">
   <defs>
      <mask x="0" y="0" id="shadowLayerMask">
         <polygon fill="#FFF" points="1042,1578 630,2048 3902,2048 3370,1464"></polygon>
      </mask>
   </defs>
   <rect x="0" y="0" fill="red" mask="url(#shadowLayerMask)" maskContentUnits="userSpaceOnUse" height="2048" width="4096"></rect>
</svg>
Run Code Online (Sandbox Code Playgroud)

简单吧?事情是这样的,如果我把这个 svg 放到一个 html 文件中,遮罩就可以完美地工作。但是当我用 virtual dom 生成相同的 svg 时,遮罩没有效果,我们只有一个巨大的红色矩形。

<defs></defs>烦人的是,如果我打开开发人员工具并向 svg添加毫无意义的内容,我可以让它在生成时显示。这似乎以某种方式踢了 svg 并提醒它需要遮罩。

有人知道这是怎么回事吗?是否有一种解决方法,不涉及设置计时器来注入空defs

更新:

这是来源

render : Layer -> Html
render { key, shader, mask, size } =
  let
    key' =
      key ++ "LayerMask"

    style' =
      [ "position" => "absolute" …
Run Code Online (Sandbox Code Playgroud)

svg image-masking elm virtual-dom

5
推荐指数
1
解决办法
404
查看次数

QT:屏蔽图像 - 建议?

我不知道我在这里使用的术语是否正确。然而,这就是我想要实现的目标,我想就如何实现这一目标提出一些建议。我想要一个边框可见的圆圈。现在这是困难的部分,我什至不知道如何开始。我想以这样的方式操纵圆圈,即圆圈的边界可见而其中心不可见(即它几乎有一个洞并会显示它下面放置的内容)然后我想要另一个图像放置在圆圈下方,以便仅显示圆圈透明部分下方的图像部分,圆圈透明边界外的部分变得不可见。关于我如何实现这一目标的任何建议。似乎谷歌搜索对我没有帮助。

qt image-masking

3
推荐指数
1
解决办法
2906
查看次数

如何剪切和变换图像,添加圆角和透视图?

我如何使用HTML和CSS制作一个div,其中包含一个被剪裁和屏蔽的图像,使其看起来如下所示:

包含相似变换图像的透视偏斜div

我一直试图找到一种方法来做这个约2个小时现在无处可去所以我只是希望有人可以指出我正确的方向.具体到这里,我希望剪切图像使得顶部的两个角是圆形的,并将其嵌入具有四个圆角和1/4底部填充的div元素中,两个元素都被转换为使其看起来是右边缘比左边更远离观察者.

css css3 image-clipping image-masking css-shapes

3
推荐指数
2
解决办法
359
查看次数

HTML 画布,使用灰度图像作为掩码

我正在尝试应用蒙版,因为它在 Photoshop 中有效。黑色是透明的,白色是可见的。但是,我认为复合模式不允许这样做。

我只能找到使用 alpha 通道的模式,但我想使用 jpg 来减小文件大小...

html javascript canvas image-masking

2
推荐指数
1
解决办法
1164
查看次数

iOS:将UIImage中的黑色更改为其他颜色

我的图像里面有白色边框和黑色.我想在运行时将黑色更改为另一种颜色.用户将以HSB格式在运行时选择颜色.我怎样才能做到这一点?我通过采用 const float colorMasking [4] = {255,255,255,255}来尝试CGImageCreateWithMaskingColors ; 但我每次都得到一个没有CGImageRef.请帮忙.

- (UIImage*) maskBlackInImage :(UIImage*) image color:(UIColor*)color
{
    const CGFloat colorMasking[4] = { 222, 255, 222, 255 };
    CGImageRef imageRef = CGImageCreateWithMaskingColors(image.CGImage, colorMasking);
    UIImage* imageB = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    return imageB;

}
Run Code Online (Sandbox Code Playgroud)

我附加灯泡的图像 - 灯泡与黑色填充,白色边框和透明背景 黑色填充的灯泡,白色边框和透明背景

更新:

在使用接受的答案中的代码后,我能够用另一种颜色填充黑色.但是,我可以在白色边框上看到一点颜色.图像看起来不那么尖锐.附加输出:

输出 - 黑色填充颜色

colors objective-c uiimage ios image-masking

1
推荐指数
1
解决办法
3108
查看次数

使用二进制掩码屏蔽RGB图像

我在读入的MATLAB中有一个RGB图像(M x N x 3矩阵).我还有一个图像的二进制掩码(M x N矩阵),对于某些感兴趣的区域只有0,在其他地方只有1.

我试图找出如何使用该二进制掩码屏蔽RGB图像.我已经尝试改变数据类型(使用double或uint8来查看结果是否有变化,但有时它们没有或我得到错误)并且我尝试使用各种函数,如conv2,immultiply,imfilter等等.

我目前所做的是尝试将掩模单独应用(因为它的大小为M x N)到原始图像的每个R,G和B通道.在掩码为0的任何地方,我希望在原始图像中准确地为0,而在掩模为1的任何地方,我只想单独留下.

到目前为止,上述这些功能似乎都没有奏效.显然,我所知道的方法是有效的,如果我刚刚完成所有这一切的for循环,但由于MATLAB具有这些图像功能,这将是非常糟糕的,但我似乎无法让它们工作.

有时imfilter或immultiply(取决于我如何搞乱图像)将完全停止并崩溃MATLAB.有时他们很快就会完成,但我要么得到全白图像,要么得到全黑图像(通过imshow和imagesc).

我已经检查过以确保我的图像通道与掩码大小匹配,并且我已经检查了图像和掩码中的值,它们是正确的.我似乎无法让实际的屏蔽操作工作.

有什么想法吗?也许我在MATLAB的规则中遗漏了一些东西?

这是当前的尝试:

% NOTE: The code may not be "elegant" but I\'ll worry about optimization later.
%
% Setup image and size
image = imread(im);
[numrows, numcols, temp] = size(image); % not used currently

% Request user polygon for ROI
bw = roipoly(image);

% Set up the mask -- it is indeed all 0's and 1's
t = double(imcomplement(bw));

% "Mask" the image
z = double(image); …
Run Code Online (Sandbox Code Playgroud)

matlab image image-processing masking image-masking

0
推荐指数
1
解决办法
1万
查看次数