Conver­tir une image en c# vers le format HDPhoto

closeCet article a été publié il y a 9 ans 2 mois 29 jours, il est donc possible qu’il ne soit plus à jour. Les infor­ma­tions propo­sées sont donc peut-être expi­rées.

Le format HD Photo de Micro­soft dispo­nible depuis la sortie de Windows Vista permet de gagner de la place sur la taille des images .

Cita­tion Wiki­pe­dia :

HD Photo est un format permet­tant la compres­sion et la décom­pres­sion en n’uti­li­sant que des calculs sur des entiers, sans opéra­tion en virgule flot­tante, ce qui permet des gains de perfor­mance inté­res­sants. Il supporte le mono­chrome et les codages de couleur RGB et CYMK. On peut adjoindre à l’image un canal alpha pour la trans­pa­rence et le support des formats de méta­don­nées Exif et XMP est dispo­nible. Il n’est en outre pas néces­saire de décom­pres­ser l’image pour effec­tuer certaines opéra­tions, comme le crop­ping, les inver­sions et les rota­tions

Passons main­te­nant à la partie code pour la conver­sion ..

.

   1:  public static void FileToWmp(string inFile, string outFile)
   2:  {
   3:      // Container for bitmap frames
   4:      BitmapDecoder bdFile = null;
   5:      // Read the source file into a FileStream object
   6:      FileStream readFile = File.OpenRead(inFile);
   7:      // Set the BitmapDecoder object from the source file
   8:      bdFile = BitmapDecoder.Create(readFile, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.None);
   9:      // Prepare the output file
  10:      FileStream writeFile = File.OpenWrite(outFile);
  11:      // All the magic done by WmpBitmapEncoder
  12:      WmpBitmapEncoder wbeFile = new WmpBitmapEncoder();
  13:      // Set the quality level to... pretty good
  14:      wbeFile.ImageQualityLevel = 0.9f;
  15:      // Add the bitmap frame to the encoder object
  16:      wbeFile.Frames.Add(bdFile.Frames[0]);
  17:      // Write the output file
  18:      wbeFile.Save(writeFile);
  19:      writeFile.Close();
  20:      readFile.Close();
  21:  }

Cet extrait de code vient du blog de RaptorXP qui l’a pris sur GeekPe­dia

Blog de l’équipe HDVIEW (micro­soft)

PS: Ce format n’est pas recon­nue sous XP et ses versions anté­rieures .

Par contre sous vista avec IE 7 aucun problème .

Tech­no­rati tags: ,

3 réflexions au sujet de « Conver­tir une image en c# vers le format HDPhoto »

  1. Ah, en voilà une bonne source ^^.
    L’idéal serait de linker HDView, pour que les utilisateurs puissent se faire une idée du potentiel de la bestiole…

  2. Salut excuse-moi, mais « Le format HD Photo de Microsoft disponible depuis la sortie de Windows Vista permet de gagner de la place sur la taille des images. » ne veut pas dire grand chose.

  3. Bein ça veut dire que la compression du format HD Photo permet de gagner de la place vis à vis des ses concurrents comme le JPG par rapport à l’espace disque occupé

Les commentaires sont fermés.