如何将此程序转换为颜色更改? https://processing.org/tutorials/pixels/处理:像素通过鼠标指针改变颜色
回答
添加到凯文的优秀答案:首先分解它。
“改变颜色”= set()或pixels[]。 (虽然集可以是较慢的,也可能是更直观的开始和获得的挂起)
“黑/白(灰度)” - 具有相同的R,G一个color()
,B值基本上灰度。您可以使用恰当地命名为 brightness()函数的get()像素的亮度。get()
将检索光标对于给定的x,y坐标(例如像mouseX,mouseY
)对
这将超级简单实现:
- 负载图像
- 在光标坐标得到的像素颜色
- 获得像素的亮度
- 设置基于亮度相同坐标处的灰度值
这里有一个快速片段:
PImage image;
void setup(){
size(200,200);
image = loadImage("https://processing.org/tutorials/pixels/imgs/tint1.jpg");
}
void draw(){
//modify output - cheap grayscale by using the pixel brightness
image.set(mouseX,mouseY,color(//make a gray scale colour...
brightness(//from the brightness...
image.get(mouseX,mouseY)//of the pixel under cursor
)
));
//draw the result;
image(image,0,0);
}
它将采取运动的很多事情,使整幅图像的灰度。
另一种选择是将图像的一个副本filtered设为灰度级,您可以将其应用于mask()。当您移动鼠标时,此遮罩会越来越多地显示灰度图像。一个简单的方法来使这个面具动态是使用PGraphics凯文已经提到。它基本上作为一个单独的层来使用典型的处理绘图功能。唯一的问题是你需要在beginDraw()
/endDraw()
调用中放置这些绘图函数调用。
这里有一个注释演示:
PImage input;//original image
PImage output;//grayscale image
PGraphics mask;
void setup(){
size(200,200);
input = loadImage("https://processing.org/tutorials/pixels/imgs/tint1.jpg");
//copy input pixels into output
output = input.get();
//make it grayascale
output.filter(GRAY);
//setup mask
mask = createGraphics(width,height);
mask.beginDraw();
mask.background(0);//nothing black passes through the mask
mask.noStroke();
mask.fill(255);//everything white passes through the mask
mask.endDraw();
}
void draw(){
//draw color image
image(input,0,0);
//apply mask
output.mask(mask);
//draw masked output
image(output,0,0);
}
//draw into the mask
void mouseDragged(){
mask.beginDraw();
mask.ellipse(mouseX,mouseY,20,20);
mask.endDraw();
}
很酷的事情是,你可以使用其他形状的面具和软蒙使用gradients
哇,谢谢大家 – Sara
@Sara随意投票,如果他们有帮助,请打勾回答:) –
很难回答一般的“我该怎么做”类型的问题,因为有很多不同的方法来做这样的事情。堆栈溢出的设计更多的是“我试过X,预计Y,但得到了Z”类型的问题。这就是说,我会尽力在一般意义上提供帮助。
您需要将问题分解为更小的步骤。你应该只关注一小步,而不是一次尝试完成一个大的最终目标。
步骤1:您可以加载并显示黑白图像吗?别担心别的事情。只需创建一个加载彩色图像并以黑白显示的简单草图。解决这个问题的一种方法可能是使用filter()
函数。
第2步:你可以采取一些黑白图像的小节,并显示该小节的原始颜色?不要担心鼠标的位置。只需使用硬编码的位置,也许从一个矩形开始,使其更容易。您可以使用PGraphics
类或set()
函数执行此步骤。
第3步:当你有硬编码的步骤工作后,你可以添加你的逻辑获取鼠标位置。
你必须退后一步,真正理解你发布的例子在做什么。你不能破解代码并期望它能够工作。将问题分解成更小的部分,然后逐个处理这些部分。如果您遇到这些特定步骤之一,那么您可以提出具体问题并发布MCVE,并且帮助您会容易得多。祝你好运!
好吧,明白了! ..我猜;)谢谢。 – Sara
- 1. 通过鼠标改变颜色
- 2. 当我们移动鼠标指针时改变jlabel的颜色
- 3. 图像预处理 - 通过颜色
- 4. 通过片段/像素着色器改变特定的像素颜色?(opengl)
- 5. 如何更改鼠标指针颜色tkinter?
- 6. 如何在鼠标指针上读取SWT画布上像素的颜色?
- 7. 在鼠标上改变div的颜色
- 8. 使鼠标指针图像
- 9. 改变ui主题颜色和鼠标点击鼠标悬停?
- 10. FLEX:在鼠标上改变图像颜色
- 11. 鼠标处理:打印像素位置
- 12. PagerSlidingTabStrip改变指标的颜色
- 13. 如何通过指向颜色名称的指针设置颜色?
- 14. 通过指针指向结构指针来更改变量
- 15. 通过javascript函数改变颜色
- 16. 更改像素的颜色
- 17. 功能不改变通过指针C++
- 18. 通过styles.xml更改EditText光标颜色
- 19. 更改背景颜色,改变鼠标位置
- 20. 鼠标悬停图像背景颜色没有改变的特定图像
- 21. HTML DOM的鼠标光标,改变背景和文字颜色
- 22. 如何将鼠标指针更改为手指指针?
- 23. 如何判断鼠标指针图标是否改变
- 24. WebRTC鼠标指针
- 25. 更改鼠标悬停的颜色svg
- 26. 鼠标悬停更改图片颜色
- 27. 使用鼠标更改背景颜色通过类JQuery的超过引用
- 28. 将鼠标指针移到图像上
- 29. 将鼠标指针改为R(Shiny
- 30. 将textfield()鼠标指针更改为
什么语言是什么?请[编辑]您的问题并添加相关标签。谢谢! –
是否有另一个字段,我应该将该程序标记为Processing草图?如果我一直不准确,请告诉我方式:) – Sara
我发现你已经找到它了! :-)但是我注意到还有一件事要调整,我已经提交了一个更多的编辑到你的问题,以便现在图像自动显示。 –