Rechercher : dans
Par :

BMP image

Dernière réponse le 21 mai 2009 à 21:25:11 firmin, le 20 mai 2009 à 13:47:14 
 Signaler ce message aux modérateurs

Bonjour, dans le cadre d'un projet de traitement d'image,je dois écrire un porgramme qui lit et affiche à l'écran une image au format BMP, j'ai trouvé ce code source, mais j'ai du mal à écrire la classe main donc appéler les méthodes svp aidez moi, je suis encore débutant en java

/**
* * <p>Titre : BMPImage</p>
* * <p>Description : Classe décrivant la maniére d'enregistrer un fichier image BMP</p>
* * <p>Société : Perso</p>
* * @author Indiana_jules
* * @version 1.0
* */
//Importation des packages nécessaires
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.*;
import java.io.DataInputStream;
* import java.io.DataOutputStream;
* import java.io.File;
* import java.io.FileInputStream;
* import java.io.FileOutputStream;
public class BMPImage {
//Constantes
private static final int MASK = 0xFF;/**Constante de masque pour la comparaison bit à bit*/
/**Méthode permettant de lire une image au format BMP
* * @param filename Fichier image
* * @return Image généré*/
public static Image readBMP(File filename) {
try{
DataInputStream inBMP = new DataInputStream(new FileInputStream(filename));

//On va lire le début de l'entête
inBMP.skipBytes(18);

//Maintenant, on lit la largeur et la hauteur de l'image
int width = readInt(inBMP);
int height = readInt(inBMP);

//On saute les données inutiles del'entête
inBMP.skipBytes(28);

//Nous allons remplir le BufferedImage
BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
int sup = (width * 3) % 4;

//Lecture des données
for(int y = height - 1; y >= 0; y--){
for(int x = 0; x < width; x++){
//Récupération des couleurs
img.setRGB(x, y, readColor(inBMP));
}

//On saute le bourrage
inBMP.skipBytes(sup);
}

inBMP.close();
return img;
}
catch(Exception e){
return null;
}
}

/**Méthode permettant de lire une image au format BMP
* * @param filename Endroit où il faut le sauver
* * @return Image généré*/
public static Image readBMP(String filename) {
return readBMP(new File(filename));
}

/**Méthode permettant de lire un entier dans un fichier BMP
* * @param in Flux d'entrée
* * @return Entier lu*/
private static int readInt(DataInputStream in){
byte[] b = new byte[4];
int result = 0;

try{
in.read(b);
result = b[0] & MASK;
result = result + ((b[1] & MASK) << 8);
result = result + ((b[2] & MASK) << 16);
result = result + ((b[3] & MASK) << 24);

}
catch(Exception e){

}

return result;
}

/**Méthode permettant de lire une "couleur" dans un fichier BMP
* * @param in Flux d'entrée
* * @return Entier lu*/
private static int readColor(DataInputStream in){
byte[] b = new byte[3];
int result = 0;

try{
in.read(b);
result = b[0] & MASK;
result = result + ((b[1] & MASK) << 8);
result = result + ((b[2] & MASK) << 16);
}
catch(Exception e){

}

return result;
}


/**Méthode permettant de créer une image au format BMP
* * @param img Image à sauver
* * @param filename Endroit où il faut le sauver
* * @return Permet de savoir si l'enregistrement s'est bien passé*/
public static boolean writeBMP(BufferedImage img, String filename) {
try{
DataOutputStream outBMP = new DataOutputStream(new FileOutputStream(filename));
int resx = img.getWidth();
int resy = img.getHeight();

//écriture de l'entête du fichier
outBMP.write(0x42); //Type
outBMP.write(0x4D); //Type
writeInt(outBMP,resx*resy*3+54); //Taille du fichier
writeInt(outBMP,0); //Réservé
writeInt(outBMP,54);
writeInt(outBMP,40);
writeInt(outBMP,resx); //Largeur
writeInt(outBMP,resy); //Hauteur
outBMP.write(0);
outBMP.write(0);
outBMP.write(24); //Nombre de bits par pixel
outBMP.write(0);
writeInt(outBMP,0);
writeInt(outBMP,resx*resy*3);
writeInt(outBMP,2851);
writeInt(outBMP,2851);
writeInt(outBMP,0);
writeInt(outBMP,0);

//Ecriture du corps dufichier BMP
int sup = (resx * 3) % 4;

for (int y = resy - 1; y >= 0; y--) {
for (int x = 0; x < resx; x++) {
//On écrit la couleur
writeColor(outBMP, img.getRGB(x, y));
}

//Bourrage
for (int j = 0; j < sup; j++)
outBMP.writeByte(0);
}

//Fermeture du fichier
outBMP.close();

return true;
}
catch(Exception e){
return false;
}
}

/**Méthode permettant d'écrire un int dans un DataOutputStream selon les format Intel
* * @param sortie Stream de destination
* * @param n int à écrire*/
private static void writeInt(DataOutputStream sortie, int n) {
try {
sortie.write((n) & MASK);
sortie.write((n>>8) & MASK);
sortie.write((n>>16) & MASK);
sortie.write((n>>24) & MASK);
}
catch (Exception e) {

}
}

/**Méthode permettant d'écrire une "couleur" dans un DataOutputStream
* * @param sortie Stream de destination
* * @param couleur Couleur à écrire */
private static void writeColor(DataOutputStream sortie, int couleur) {
try {
sortie.write((couleur) & MASK);
sortie.write((couleur>>8) & MASK);
sortie.write((couleur>>16) & MASK);
}
catch (Exception e) {

}
}

Configuration: Windows XP Internet Explorer 6.0

Meilleures réponses pour « BMP image » dans :
Images bitmap et vectorielles Voir Images bitmap et images vectorielles On distingue généralement deux grandes catégories d'images : les images bitmap (appelées aussi images raster) : il s'agit d'images pixellisées, c'est-à-dire un ensemble de points (pixels) contenus dans un...
[PDF] Convertir des PDF en images (JPEG, BMP, GIF, etc...) VoirSi vous avez des documents PDF et que vous voulez les convertir en images (JPEG, GIF, BMP, ou n'importe quel format), de manière à les exploiter, par exemple dans un logiciel d'OCR ou de retouche/création d'images : Note : Cet article présente une...
Hébergement gratuit d'images, de photos et d'autres fichiers VoirPlusieurs sites vous permettent d'héberger gratuitement toutes vos images : PixyUp.com imgur.com IMAGEDream Web-Images ImageVenue xs.to ImageShack CJoint Servimg Mabul UpandPost HostinPics Lacr@p zimage.biz Imagilive.com
Les images ne s'affichent pas sur le site VoirDans une page web, les images sont spécifiées grâce à la balise IMG, avec la notation suivante : Les formats d'images supportés sur le web sont les formats GIF, JPG et PNG. Le format BMP n'est pas supporté par les...
Télécharger Free Word/Doc Txt to Image Jpg/Jpeg Bmp Tiff Png VoirD'habitude, ce sont les images que l'on insère dans les documents Word, Excel ou PowerPoint. Cette fois ci, c'est un peu l'inverse, parce qu'on va convertir ces documents au format image. All to Image Jpg/Jpeg Bmp Tiff Png Converter est un outil...
Télécharger FastStone Image Viewer VoirFastStone Image Viewer est un visualisateur d'images permettant de convertir et d'afficher la plupart des formats graphiques actuels, à commencer par les formats BMP, JPEG, JPEG 2000, GIF, PNG, PCX, TIFF, WMF, ICO et TGA. Il possède de nombreuses...
Le format BMP VoirLe format BMP Le format BMP est un des formats les plus simples développé conjointement par Microsoft et IBM, ce qui explique qu'il soit particulièrement répandu sur les plates formes Windows et OS/2. Un fichier BMP est un fichier bitmap, c'est-à...
Fichier ISO (Image ISO) VoirFormat ISO Un fichier possédant l'extension .ISO est une image ISO, c'est-à-dire une image d'un disque (CD, DVD ou disque dur) sous forme de fichier, créer avec un logiciel de gravure. Comment lire un fichier ISO ? En l'absence de graveur, il...
Gestion des images en HTML VoirComment afficher des images sur une page web? Quelques images sur un site Web peuvent le rendre plus attractif et plus convivial, cependant il est important de ne pas sombrer dans l'excès car les images peuvent impliquer un temps de chargement...

1

bizu53, le 20 mai 2009 à 14:25:41

Tu t'embêtes pour rien... c'est déjà fait par Java.
Regarde du côté de ImageIO et BufferedImage.

http://java.sun.com/...
http://java.sun.com/j2se/1.4.2/docs/api/java/awt/image/Buffe­redImage.html

Répondre à bizu53

2

firmin, le 20 mai 2009 à 20:49:19

Merci bizu53 c'est très gentil de votre part ,mais j'ai toujours du mal à executer ce code

Répondre à firmin

3

 firmin, le 21 mai 2009 à 21:25:11

Bsr une fois de plus svp ce je veux pour ce programme c"est la classe main j'ai du mal à l'ecrire
merci

Répondre à firmin
Collection CommentÇaMarche.net