Bonjour,

Je suis en train d'essayer de créer une image monochrome 1421x640 pixels en Java avec une résolution de 200 dpi mais je rencontre des soucis

Avec un logiciel comme GIMP, si l'on créée une nouvelle image, la spécification de la résolution est possible.

Sur base d'exemples trouvés sur le net j'utilise le bout de code posté ci dessous. L'idée consiste à aller modifier les datas du header BMP.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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();
        } 
    }
Lorsque j'ouvre l'image dans MSPaint, dans les propriétés de l'image créée, la résolution reste toujours affichée à 85x85...

L'un d'entre vous aurait-il quelques conseils / aide à m'apporter ?

D'avance je vous remercie.

Sébastien