Conversion d'un BMP en JPG

Signaler
Messages postés
5
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
8 avril 2003
-
Messages postés
1
Date d'inscription
mercredi 22 juin 2005
Statut
Membre
Dernière intervention
28 juin 2005
-
Bonjour,
Je cherche, par besoin de place, à convertir une image bmp en jpeg.
Celle ci est, dans un premier temps, destiné a être placé en image (img src) dans une page HTML qui sera envoyé par mail. Donc, nécessité de place utilisé.
Dans un second temps, stocker cette image dans un fichier Word (.doc) afin d'éviter une connexion supplémentaire au client lors de la réception du mail.

En clair, je voudrai savoir comment convertir un bmp en jpg et comment insérer une image dans un fichier Word.

Merci de votre patience,

Simplet

3 réponses

Messages postés
2
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
4 avril 2003

Bonjour,

Pour tes deux problèmes :
***
1) convertir l'image en jpeg : çà tombe bien, GDI+ a toutes les méthodes pour faire cela. Le plus dur, c'est de lui indiquer la qualité de la conversion que l'on souhaite

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

string myPath=@"monimage.bmp";
Bitmap myBmp=new Bitmap(myPath);
ImageCodecInfo encoderJPEG = null;
foreach(ImageCodecInfo ici in ImageCodecInfo.GetImageEncoders())
{
if (ici.MimeType=="image/jpeg")
{
encoderJPEG=ici;
break;
}
}
if (encoderJPEG == null)
throw new InvalidOperationException("JPEG codec introuvable");
EncoderParameters epJPEG=new EncoderParameters(1);
long[] alQuality=new long[1];
alQuality[0]=2;
epJPEG.Param[0]=new EncoderParameter(Encoder.Quality, alQuality);

myBmp.Save(Path.ChangeExtension(myPath, ".jpg"), encoderJPEG, epJPEG);

***
2) Pour l'insertion de cette image convertie dans un fichier word, il faut utiliser Automation. Pour pouvoir utiliser les objets de Word, il faut auparavant ajouter une référence au composant Word dans ton projet si tu utilises VS.Net. (c'est le fichier msword9.olb pour office 2000).

En C#, la syntaxe est assez lourde à cause des paramètres optionnels. Le code ci-dessous fonctionne avec Word 2000.

// pour les paramètres optionnels
object missing = System.Reflection.Missing.Value;

Word.Application word=new Word.ApplicationClass();
object fileName="myDoc.doc";
word.Visible=true;
Word.Document doc= word.Documents.Add(ref missing, ref missing, ref missing, ref missing);
doc.Activate();
word.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
word.Selection.Font.Bold = (int)Word.WdConstants.wdToggle;
word.Selection.TypeText("Voici l'image");
word.Selection.TypeParagraph();
object units=Word.WdUnits.wdParagraph;
word.Selection.InlineShapes.AddPicture(picturePath, ref missing, ref missing, ref missing);
doc.SaveAs(ref fileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
word.Quit(ref missing, ref missing, ref missing);

et voilà ! Je pense qu'on pourrait même rendre les deux étapes plus fluides en faisant directement un copier coller de l'image convertie et ainsi éviter l'enregistrement d'un fichier temporaire sur le disque.

J'espère que cela va pouvoir t'aider

Sooly
Messages postés
5
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
8 avril 2003

Bah merci bien, je test tout cela demain, cela fera gagner de la place sur le serveur et diminuera la taille du mail :p

Merci encore
Simplet
Messages postés
1
Date d'inscription
mercredi 22 juin 2005
Statut
Membre
Dernière intervention
28 juin 2005

bonjour,
je dois une methode qui fait la concatination de deux images.