Buffered image pixel manipulation

后端 未结 2 2040
野趣味
野趣味 2021-01-22 21:05

I have this code:

public Image toNegative()
{
    int imageWidth =  originalImage.getWidth();
    int imageHeight = originalImage.getHeight();
    int [] rgb = n         


        
2条回答
  •  别那么骄傲
    2021-01-22 21:31

    There are two problems:

    1. The width of the array is not the width of the image but the "scan size" (some image sizes get padded with extra pixels)

    2. If you call getRGB() with a null array, the method will create an array but it won't change the rgb reference - Java doesn't support "out parameters".

    To make this work, use

    rgb = originalImage.getRGB(0, 0, imageWidth, imageHeight, null, 0,imageWidth);
    

提交回复
热议问题