2010-09-13 11 views

Répondre

-1

En Kotlin:

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

Il peut y avoir un problème avec bitmap enregistrement au format ARGB, voir ceci: ImageIO.write bmp does not work

+0

recherches OP pour une solution Java ** **. Alors que ** Kotlin ** est effectivement converti en * JVM * compatible * Bytecode * son code source n'est sûrement pas compatible avec le * compilateur Java * tel OP ne peut utiliser que l'idée mais pas le code lui-même. – Zabuza

+0

@Zabuza Dans l'exemple fourni, les différences entre Java et Kotlin sont faibles, il suffit de changer 'val' en nom de type complet et d'ajouter' new' ici et là et vous obtiendrez la solution Java de compilation. Quoi qu'il en soit, j'ai ajouté cette réponse pour * moi-même *, car c'est la première question qui apparaît quand je googlé pour "sauver int array to bmp". J'ai ajouté mon code, cela n'a rien à voir avec le problème d'OP mais peut sauver quelques heures de recherche ... – csharpfolk