Как создать новое изображение bmp в java из массива int, содержащего пиксели (из getPixel() класса pixelGrabber)?int pixels array to bmp in java
Благодаря
Как создать новое изображение bmp в java из массива int, содержащего пиксели (из getPixel() класса pixelGrabber)?int pixels array to bmp in java
Благодаря
Сделать BufferedImage и вызвать SetPixel.
BufferedImage: http://download.oracle.com/javase/1.4.2/docs/api/java/awt/image/BufferedImage.html
Если вы хотите BMP-файл, то вы можете использовать ImageIO.write (BufferedImage, "BMP", новый файл ("mybmp.bmp"));
Я бы дал вам ссылку на класс ImageIO, но Stack Overflow мешает мне спамить.
В Котлин:
// As it happens default color model has AARRGGBB format
// in other words alpha + RBG
val colorModel = ColorModel.getRGBdefault()
val raster = colorModel.createCompatibleWritableRaster(
horizontalRes, verticalRes)
val bufferedImage = BufferedImage(
colorModel, raster, colorModel.isAlphaPremultiplied, null)
// rawArgbData = array of int's.
// every int has format = 0xFF|R|G|B (MSB is alpha)
raster.setDataElements(
0, 0, horizontalRes, verticalRes,
rawArgbData)
// finally save
ImageIO.write(bufferedImage, "PNG", File(filePath))
Там может быть проблема с сохранением растрового изображения в формате ARGB, увидеть это: ImageIO.write bmp does not work
OP поиск для ** Java ** решение. В то время как ** Kotlin ** действительно преобразуется в * JVM * совместимый * Bytecode *, его исходный код, безусловно, несовместим с * компилятором Java *, такой OP может только использовать идею, но не сам код. – Zabuza
@ Zabuza В приведенном примере различия между Java и Kotlin невелики, просто измените 'val' на полное имя типа и добавьте' new' здесь и там, и вы получите компиляцию java-решения. В любом случае я добавил этот ответ для * себя *, так как это первый вопрос, который появляется, когда я googled для «сохранения int array в bmp». Я добавил свой код, он не имеет ничего общего с проблемой OP, но может спасти кого-то несколько часов исследований ... – csharpfolk