我是初学者,最近开始学习java。 我试图写一些代码,但无法找到确切的方法,所以我来到这里! 现在关于代码..这个代码基本上是一个灰度转换器,它的工作原理我导入了一个库,我正在使用那个。我想让图像变成灰色的灰色,所以它看起来就像一个灰度图像,但是红色而不是灰色...
import edu.duke.*;
public class Grayscaleconverter {
public ImageResource makeGray(ImageResource inImage){
ImageResource outImage=new ImageResource(inImage.getWidth(),inImage.getHeight());
for (Pixel pixel:outImage.pixels()){
Pixel inPixel=inImage.getPixel(pixel.getX(),pixel.getY());
double red=(inPixel.getRed()*0.25);
double blue=(inPixel.getBlue()*0.25);
double green=(inPixel.getGreen()*0.25);
pixel.setRed(red);
pixel.setGreen(green);
pixel.setBlue(blue);
}
return outImage;
}
public void testGray(){
ImageResource ir= new ImageResource();
ImageResource red=makeGray(ir);
red.draw();
要使图像变为灰色,您只需要获取每个像素的所有平均值,并将红色,绿色和蓝色设置为该平均值。但在这里,我试图改变色彩 但第一个错误是在pixel.setred(红色)它说可能有损转换从double到int我已经尝试在括号pixel.setred((双红))内写双,但它不起作用。你也可以告诉我,如果我的代码方式是否会给我我想要的输出?如果不是任何人都可以编写代码并解释..请简单的抱歉花时间。
谢谢你。 p.soutimage是结果,inimage是必须被包含的图像