Conversion d'un BMP en JPG

projetbts Messages postés 5 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 8 avril 2003 - 4 avril 2003 à 16:23
magra1 Messages postés 1 Date d'inscription mercredi 22 juin 2005 Statut Membre Dernière intervention 28 juin 2005 - 28 juin 2005 à 17:03
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
A voir également:

3 réponses

cs_Sooly Messages postés 2 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 4 avril 2003
4 avril 2003 à 23:47
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
0
projetbts Messages postés 5 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 8 avril 2003
8 avril 2003 à 18:57
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
0
magra1 Messages postés 1 Date d'inscription mercredi 22 juin 2005 Statut Membre Dernière intervention 28 juin 2005
28 juin 2005 à 17:03
bonjour,
je dois une methode qui fait la concatination de deux images.
0
Rejoignez-nous