我没有进过图像处理。 我想在JAVA中读取.jpeg图像文件,并根据颜色值在画布上绘制像素。 即首先绘制所有黑色像素,然后绘制所有灰色像素,依此类推.....和最后的白色像素。
我还想在每个绘制的像素之间引入一个非常小的间隙,以便我可以看到图像是如何绘制的。
任何帮助都将不胜感激。
答案 0 :(得分:2)
这是一个简短的,精简的指令示例,可以帮助您入门。此代码分解图像中的RGB值。然后,您可以对数据执行任何操作。
public static BufferedImage exampleForSO(BufferedImage image) {
BufferedImage imageIn = image;
BufferedImage imageOut =
new BufferedImage(imageIn.getWidth(), imageIn.getHeight(), BufferedImage.TYPE_4BYTE_ABGR);
int width = imageIn.getWidth();
int height = imageIn.getHeight();
int[] imageInPixels = imageIn.getRGB(0, 0, width, height, null, 0, width);
int[] imageOutPixels = new int[imageInPixels.length];
for (int i = 0; i < imageInPixels.length; i++) {
int inR = (imageInPixels[i] & 0x00FF0000) >> 16;
int inG = (imageInPixels[i] & 0x0000FF00) >> 8;
int inB = (imageInPixels[i] & 0x000000FF) >> 0;
if ( conditionChecker_inRinGinB ){
// bla bla bla
} else {
// yada yada yada
}
}
imageOut.setRGB(0, 0, width, height, imageOutPixels, 0, width);
return imageOut;
}