1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| @Test
public void testCreateBitmap() {
BufferedImage image = new BufferedImage(1421, 640, BufferedImage.TYPE_BYTE_BINARY);
saveBMP(image, 200, "c:\\temp\\newBMP.bmp");
}
public void saveBMP(BufferedImage bufferedImage, int dpi, String file)
{
try
{
// Image writer
BMPImageWriter imageWriter = (BMPImageWriter) ImageIO.getImageWritersBySuffix("bmp").next();
ImageOutputStream ios = ImageIO.createImageOutputStream(new File(file));
imageWriter.setOutput(ios);
// Compression
BMPImageWriteParam bmpParams = (BMPImageWriteParam) imageWriter.getDefaultWriteParam();
bmpParams.setCompressionMode(BMPImageWriteParam.MODE_DISABLED);
// Metadata (dpi)
IIOMetadata data = imageWriter.getDefaultImageMetadata(new ImageTypeSpecifier(bufferedImage), bmpParams);
Element tree = (Element)data.getAsTree("javax_imageio_bmp_1.0");
tree.getElementsByTagName("X").item(0).setNodeValue(""+dpi);
tree.getElementsByTagName("Y").item(0).setNodeValue(""+dpi);
// Write and clean up
imageWriter.write(data, new IIOImage(bufferedImage, null, null), bmpParams);
ios.close();
imageWriter.dispose();
}
catch (Exception e)
{
e.printStackTrace();
}
} |
Partager