0

如何从包含像素的 int 数组(来自 pixelGrabber 类的 getPixel())在 java 中创建新的 bmp 图像?

谢谢

4

2 回答 2

1

制作一个 BufferedImage 并调用 setPixel。

BufferedImage:http: //download.oracle.com/javase/1.4.2/docs/api/java/awt/image/BufferedImage.html

如果你想要 BMP 文件,那么你可以使用 ImageIO.write(bufferedImage,"BMP", new File("mybmp.bmp"));

我会给你 ImageIO 类的链接,但 Stack Overflow 阻止我发送垃圾邮件。

于 2010-09-13T01:58:04.743 回答
-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

于 2017-07-22T11:05:32.407 回答