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.
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);
***
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;
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.