我现在正在使用函数渲染,它基本上为函数赋值并“绘制”图像中的相应像素。出于某种原因,生成了图像,但它绝对是空白的。有什么想法吗?
public class Main {
public static void main(String[] args) {
BufferedImage bi = new BufferedImage(500, 250,
BufferedImage.TYPE_INT_ARGB);
for (int x = -100; x <= 100; x++) {
try {
int y = f(x);
bi.setRGB(xconverter(x), yconverter(y), 0);
System.out.println("f(" + x + ") = " + y);
} catch (Exception e) {
}
}
try {
File f = new File("/home/pitazzo/Escritorio/Final.png");
ImageIO.write(bi, "png", f);
} catch (Exception e) {
e.printStackTrace();
}
}
public static int xconverter(int x) {
return x + 250;
}
public static int yconverter(int y) {
return y + 125;
}
public static int f(int x) {
return ((x * x) + (7 * x) - 2) / (x + 18);
}
}
提前致谢:D
答案 0 :(得分:0)
问题在于颜色:
bi.setRGB(xconverter(x), yconverter(y), 0);
0表示0 alpha,0表示红色,0表示绿色,0表示蓝色。而0 alpha意味着透明 - 哎呀!您需要使用不透明的颜色(0xFF alpha)。
使用此:
bi.setRGB(xconverter(x), yconverter(y), 0xFF_00_00_00); // Black