java中bmp的整数像素数组
如何从包含像素的int数组(从pixelGrabber类的getPixel()中)在java中创建新的bmp图像java中bmp的整数像素数组,java,pixel,bmp,Java,Pixel,Bmp,如何从包含像素的int数组(从pixelGrabber类的getPixel()中)在java中创建新的bmp图像 谢谢制作一个BuffereImage并调用setPixel BuffereImage: 如果您想要BMP文件,那么可以使用ImageIO.write(buffereImage,“BMP”,新文件(“mybmp.BMP”) 我会给你ImageIO类的链接,但堆栈溢出阻止了我的垃圾邮件。在Kotlin: // As it happens default color model h
谢谢制作一个BuffereImage并调用setPixel BuffereImage: 如果您想要BMP文件,那么可以使用ImageIO.write(buffereImage,“BMP”,新文件(“mybmp.BMP”) 我会给你ImageIO类的链接,但堆栈溢出阻止了我的垃圾邮件。在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))
以ARGB格式保存位图可能有问题,请参见:OP搜索Java解决方案。虽然Kotlin确实被转换为与JVM兼容的字节码,但其源代码肯定与Java编译器不兼容,例如OP pobably只能使用该思想,而不能使用代码本身。@在提供的示例中,Java和Kotlin之间的差异很小,只需将
val
更改为完整的类型名称,并在此处或此处添加new
,您将获得编译java解决方案。无论如何,我为自己添加了这个答案,因为这是我在谷歌搜索“将int数组保存到bmp”时弹出的第一个问题。我添加了我的代码,它与OP问题无关,但可能会节省一些人几个小时的研究。。。