Le format HD Photo de Microsoft disponible depuis la sortie de Windows Vista permet de gagner de la place sur la taille des images .
Citation Wikipedia :
HD Photo est un format permettant la compression et la décompression en n’utilisant que des calculs sur des entiers, sans opération en virgule flottante, ce qui permet des gains de performance intéressants. Il supporte le monochrome et les codages de couleur RGB et CYMK. On peut adjoindre à l’image un canal alpha pour la transparence et le support des formats de métadonnées Exif et XMP est disponible. Il n’est en outre pas nécessaire de décompresser l’image pour effectuer certaines opérations, comme le cropping, les inversions et les rotations
Passons maintenant à la partie code pour la conversion ..
..csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; }
.csharpcode .lnum { color: #606060; }
--> 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 est vient du blog de RaptorXP qui l’a pris sur GeekPedia
PS: Ce format n’est pas reconnue sous XP et ses versions antérieures .
Par contre sous vista avec IE 7 aucun problème .
Technorati tags: c#, HD_Photo