IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

2D Java Discussion :

afficher un BufferImage contenant une BMP monochrome


Sujet :

2D Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut afficher un BufferImage contenant une BMP monochrome
    Bonjour Messieurs

    Je commence à coder en Java. J'ai un problème, je suis en train de faire un programme permettant d'afficher un format de document propriétaire. L’affichage doit se faire en 3 temps :
    1 la page est transformée en BMP monochrome (ok)
    2 récupération de la BMP dans un BufferedImage
    3 affichage de la BufferedImage dans une frame

    Pour le moment, j'affiche toujours une page noire et j’ai bien du mal à comprendre où est le problème.

    Merci d’avance pour votre aide.
    Je suis en train de voir ce que je peux faire pour vous ouvrir un ftp
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    public class AfficheBmp extends JComponent {
    	static BufferedImage 	afpImage;
    	static JFrame 			frame;
    	static int byteArrayToInt (byte[] tabByte, int borneDebut, int nombreByte) {
    		  //converti un ensemble de byte consécutif dans un tableau vers un int
    		  System.out.println("nombreByte : "+nombreByte);      	
    		  System.out.println("borneDebut : "+borneDebut);      	
    		  System.out.println("tabByte lenght : "+tabByte.length);   
    		  ByteBuffer byteBuffer = ByteBuffer.wrap(tabByte,borneDebut,nombreByte);
    		  byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
    	    System.out.println("Bytes buffer lenght : "+byteBuffer); 
    	    int intRetour = byteBuffer.getInt();
    	    return (intRetour);	
    	  }
    	public static void main(String[] args) {
    //		 Stream to read file
    		AfficheBmp toto = new AfficheBmp ();
    		FileInputStream	fin;		
    		byte[]			tabBmp;
    		try
    		{
    		    // Open an input stream
    		    fin = new FileInputStream ("output2.bmp");
    		    tabBmp = new byte [fin.available()];
    		    fin.read(tabBmp);
    		    // Close our input stream
    		    fin.close();
    			if (tabBmp.length >0 ) {
    				int intLargeur = byteArrayToInt(tabBmp,18,4);
    				int intHauteur = byteArrayToInt(tabBmp,22,4);
    				int intOffsetPixel = byteArrayToInt(tabBmp,10,4);
    				System.out.println("largeur : "+intLargeur);      	
    				System.out.println("Hauteur : "+intHauteur);
    				System.out.println("Offset  : "+intOffsetPixel);
    				ColorModel monoChromeModel = new IndexColorModel(1,2,
    	    			new byte[] {(byte)0, (byte)255},
    	    			new byte[] {(byte)0, (byte)255},
    	    			new byte[] {(byte)0, (byte)255});
    				ByteBuffer BufferTabPixel = ByteBuffer.allocate (tabBmp.length-intOffsetPixel);
    				byte[] tabPixel = BufferTabPixel.array();
    				DataBuffer db = new DataBufferByte(tabPixel,tabPixel.length);
    				WritableRaster wr = Raster.createPackedRaster(db,intLargeur,intHauteur,1,null);
    				afpImage = new BufferedImage (monoChromeModel,wr,false,null);
    				Image monImage = Toolkit.getDefaultToolkit().createImage(afpImage.getSource());
    				frame = new JFrame ("Affiche BMP");
    				frame.setVisible(true);
    				frame.setSize(300,300);
    				frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    				ImageIcon tempIcon = new ImageIcon (monImage);
    				JLabel labelImage = new JLabel (tempIcon);
    				//pane.add(monImage);
    				frame.getContentPane().add (new JScrollPane(labelImage));
     
    			}
     
    		}
    		// Catches any error conditions
    		catch (IOException e)
    		{
    			System.err.println ("Unable to read from file");
    			System.exit(-1);
    		}
     
    	}
    }
    [/code]

  2. #2
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Tu peux aussi simplement utiliser un RGBFilter pour faire ta conversion.

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 867
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 867
    Points : 22 929
    Points
    22 929
    Billets dans le blog
    53
    Par défaut
    N'est-il pas possible de creer une image de type BufferedImage.TYPE_BYTE_BINARY et d'utiliser image.setRGB() uniquement avec des valeurs Color.WHITE.getRGB() et Color.BLACK.getRGB() ?

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Merci Messieurs
    Je vais voir ce qu'il en est. Merci pour votre réponse

Discussions similaires

  1. Sauvegarder une BMP monochrome depuis une PictureBox
    Par rvg_79 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 03/01/2012, 13h44
  2. Afficher une vue contenant une image au format postscript *.eps
    Par pobsteta dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 21/11/2007, 11h11
  3. créer une zone pour afficher une BMP scrollable
    Par hansaplast dans le forum wxWidgets
    Réponses: 15
    Dernier message: 14/03/2006, 10h25
  4. afficher une BMP venant de l'API windows
    Par hansaplast dans le forum wxWidgets
    Réponses: 8
    Dernier message: 02/02/2006, 12h03
  5. Comment afficher un Bitmap contenant une couche alpha ?
    Par pwozniak dans le forum Composants VCL
    Réponses: 9
    Dernier message: 17/01/2005, 20h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo