Как создать изображение в градациях серого с помощью java

Может ли кто-нибудь помочь мне и сказать мне, как создать изображение в градациях серого, где один пиксель изображения отображается в виде квадрата размером 2 x 2?

Я уже искал помощь и нашел это как создать изображение в градациях серого из значений пикселей с помощью java, но я не знаю, как создать градации серого с информацией о том, что один пиксель отображается в виде квадрата размером 2 x 2.

Благодарность!


person goldenone    schedule 08.06.2016    source источник
comment
Можете ли вы добавить макет пикселей, который вы надеетесь достичь, к вопросу, пожалуйста?   -  person Peter    schedule 09.06.2016


Ответы (1)


чтобы создать изображение, где каждый пиксель имеет размер 2x2, вы должны либо масштабировать изображение (коэффициент 2) только для отображения... или если вы хотите создать изображение, вы должны сделать это вручную и создать изображение и нарисовать с коэффициентом масштабирования 2 на нем

int[] pixels = ... //we already have our gray scale pixels here
int widthOriginal = ... //size of original image
int heightOriginal = ...

//let's create an buffered Image twice the size
BufferedImage img = 
    new BufferedImage(2*widthOriginal, 2*heightOriginal, BufferedImage.TYPE_4BYTE_ABGR);

//we paint on the buffered image's graphic...
Graphics gr = img.getGraphics();

//we draw all pixels on the graphic
for(int y = 0; y < heightOriginal; y ++){
    for(int x = 0; x < widthOriginal; x ++){
        int index = y*widthOriginal + x;
        int gray = pixels[index];

        //to draw we first set the color
        gr.setColor(new Color(gray));

        //then draw the pixel
        gr.drawRect(2*x, 2*y,2,2); //draw a 2x2 pixel instead of a 1x1 pixel
    }
}

хм - честно говоря, я написал этот код полностью из головы, так что могут быть небольшие проблемы с компиляцией... но техника объяснена правильно...

person Martin Frank    schedule 15.06.2016