Processing 使用迷你图像制作图像(处理)

Processing 使用迷你图像制作图像(处理),processing,Processing,在我的素描中,有一组迷你图像,它们将构成一个输入图片。 目前,我的输入是一张手的图片,我的小图片是: 3个测试迷你图像是透明的,所以从imgur中拖动它们,它们当前是黑色的 我当前的输出如下所示: 我不知道为什么它们会像这样重叠,我已经使每个迷你图像的背景透明,这样它们就可以重叠,所以我需要一种方法来缩小它们 我想解决的主要问题是,我需要确保我的迷你图像只构成手,而不是手周围的白色背景。我想如果这些迷你图像只分配给手部的阴影,那么白色背景就不算了 我不知道该怎么做。帮忙 代码: 最终整数长度=

在我的素描中,有一组迷你图像,它们将构成一个输入图片。 目前,我的输入是一张手的图片,我的小图片是: 3个测试迷你图像是透明的,所以从imgur中拖动它们,它们当前是黑色的 我当前的输出如下所示:

我不知道为什么它们会像这样重叠,我已经使每个迷你图像的背景透明,这样它们就可以重叠,所以我需要一种方法来缩小它们

我想解决的主要问题是,我需要确保我的迷你图像只构成手,而不是手周围的白色背景。我想如果这些迷你图像只分配给手部的阴影,那么白色背景就不算了

我不知道该怎么做。帮忙

代码:

最终整数长度=25; 最终浮动脱粒=170; 布尔newDesign=false; 皮马杰图片; ArrayList imgContainer; int n=3; 无效设置{ 尺寸800,800,P2D; 彩色图像,255; 背景250250250; 直肠中心; //图像处理中心; pic=loadImagehand.jpg; 图:调整宽度、高度; 颜色c1=颜色200,25,25; 颜色c2=颜色252552500; imgContainer=新阵列列表; PImage pimg1=loadImagetest0.png; pimg1.resize50,50; imgContainer.addpimg1; PImage pimg2=loadImagetest1.png; pimg2.resize50,50; imgContainer.addpimg2; PImage pimg3=loadImagetest2.png; pimg1.resize50,50; imgContainer.addpimg3; 诺洛普; 仰泳; } 抽真空{ 如果newDesign==false{ 回来 } pic.loadPixels; 对于int y=0;y我认为这个网站上的代码为您的问题提供了解决方案


这是一个德国网站,一些代码注释也是德语的,因此如果您有任何问题,请随时询问。

很难回答一般性的“我该如何做”这类问题。堆栈溢出是为更具体的问题而设计的,我尝试了X,预期是Y,但得到了Z。但我会尽力在一般意义上提供帮助

你在问如何只在大图像的特定部分显示小图像

在较高的层次上,您要做的是在大图像中的坐标上循环,在这里您要绘制小图像,然后在每个坐标上获取像素,检查它,并且仅在像素与某些标准匹配时绘制小图像

您可以使用嵌套的for循环在坐标上循环,您已经完成了这一部分,并且您可以使用get函数获取该坐标的像素颜色。然后,您可以使用if语句检查该颜色,并仅在符合某些条件时绘制小图像

可以在中找到更多信息,但有一个非常基本的示例:

对于int y=0;y<高度;y+=100{ 对于int x=0;x128{ 图像,x,y; } } } 此代码假定窗口与大图像的大小相同。然后,它在大图像中的坐标上循环,只查看每100个像素,并获取该像素处的颜色。然后检查该像素的红色值是否大于128,如果是,则在该坐标处绘制小图像

这只是一个例子,因此您必须修改方法以满足您的需要。但是基本的想法仍然存在:迭代像素,获得颜色,检查颜色,只有当颜色符合某些标准时才绘制较小的图像


这也是您使用彩色字母发布的图像的工作原理,只是它们使用基础像素的颜色绘制字符,而不是绘制较小的图像。

请将代码粘贴到编辑器中,突出显示,以修复代码的格式,然后按“代码”按钮将其全部格式化为单个块,而不是将每行格式化为单独的块。还请提供一个链接到我们需要的所有图像文件。更好的办法是,发布一个代码笔的链接,显示你的程序正在运行。修复了,很抱歉。你可以从imgur中拖拽所有的图片,我仍然不能完全确定你想要什么效果。你是否有一个你期望这段代码做什么的模拟?当你说我认为如果迷你图像只分配给手的阴影,那么白色背景就不算了,这到底是什么意思?你在哪里只给手上的阴影分配了什么?嘿。因此,我正试图做到这一点:但我想使用自己的迷你图像,而不是文字字符。现在
当我不需要的时候,迷你图像被分配到我手部图像的背景中。现在我没有给阴影分配任何东西。好的,谢谢你的解释。在您的代码中,您在哪里阻止图像显示在背景上,或者导致图像仅显示在手的顶部?这应该可以工作!我没有见过这个版本,我上面使用的代码是一个不同的生成格式塔片段的修改版本。退房后会给你回复。这是一个文本版本,还是也适用于图像?我看到你的白色背景是固定的。我会使用你修改过的代码的哪一部分,因为我认为这是文本而不是图像?我看到了灰度线,但我不确定我会如何使用它?请不要只发布链接问题。@Thomas Sallaberger我试着从你的修改版本中输入,但它似乎不起作用。有什么想法吗?太好了!!我不太了解LargeImages和smallImage部分,这些是函数还是我要将它们更改为put in hand.jpg和PImage中的小图像?这只是示例代码,但是的,LargeImages将是您的手图像,smallImage将是您较小的黑色图像。您可能希望扩展此代码以绘制三个小图像,而不是一个,但总体思路是相同的。明白了。我只是不知道如何格式化它。现在我有:color pixelValue=loadImagehand.jpg.getx,y;对吗?你试着这么做的时候发生了什么?它可能会起作用,但您可能希望将其分为两个步骤。在开始时,在设置功能中加载图像一次。你已经在做我建议的大部分了。您可以使用pic变量代替我的largeImage变量。同样,我的代码只是一个例子。我之所以使用largeImage,是因为我想弄清楚代码将使用哪个图像。我认为它是有效的-我没有收到错误,但我仍然不知道如何将小图像放入,因为它们位于自己的Pimage容器中。对不起,我是个新手。