2013-10-04 3 views
-1

Я использовалImageIO написать сохранить черное изображение

BufferedImage bi= new BufferedImage(320,240,BufferedImage.TYPE_BYTE_GRAY); 

ImageIO.write(bi, "png", outputfile);

сохранить изображение, но сохранить черное изображение. Я не понимаю, в чем проблема.

+4

Этого недостаточно, чтобы узнать, в чем проблема. Скорее всего, 'bi' является черным, но вы не показываете, как вы его создаете. – kiheru

+0

Если вы не ставите _anything_ на холст, он будет черным. Конечно, это может произойти и по ошибке. Добавьте код перед этой строкой. Что вы делали с «би» раньше? – qben

+0

как вы манипулировали 'bi' Image ?! это потому, что значения пикселей по умолчанию равны 0, а это означает черный. –

ответ

1

Как было предложено уже значение пикселя по умолчанию являются нули (RGB (0,0,0)) в BufferedImage, так что по этой линии:

BufferedImage bi= new BufferedImage(320,240,BufferedImage.TYPE_BYTE_GRAY); 

создавать черное изображение. Таким образом, результат - именно то, что ожидается в этом случае.

Если вы хотите создать белую, например, вы можете сделать это:

BufferedImage bi= new BufferedImage(320,240,BufferedImage.TYPE_BYTE_GRAY); 
Graphics gc = bi.getGraphics(); 
gc.setColor(Color.white); 
gc.fillRect(0,0,320,240); 

перед сохранением.

Смежные вопросы