2010-09-13 2 views

ответ

-1

В Котлин:

// 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

+0

OP поиск для ** Java ** решение. В то время как ** Kotlin ** действительно преобразуется в * JVM * совместимый * Bytecode *, его исходный код, безусловно, несовместим с * компилятором Java *, такой OP может только использовать идею, но не сам код. – Zabuza

+0

@ Zabuza В приведенном примере различия между Java и Kotlin невелики, просто измените 'val' на полное имя типа и добавьте' new' здесь и там, и вы получите компиляцию java-решения. В любом случае я добавил этот ответ для * себя *, так как это первый вопрос, который появляется, когда я googled для «сохранения int array в bmp». Я добавил свой код, он не имеет ничего общего с проблемой OP, но может спасти кого-то несколько часов исследований ... – csharpfolk