
A mellékelt program használatához a ConvertBmpToGif.reg állományban a ConvertBmp.exe elérési útját változtassa meg annak függvényében, hogy hol érhető el az alkalmazás. Ezt követően fűzze hozzá a registry-hez, majd fordítsa le a projektet. Ezek után a Windows Intézőben ha egy mappán jobb gombbal kattint, akkor megjelenik egy új menüpont „Convert BMP to GIF” névvel.
Nézzük mi is kerül a registry-be. Létre kell hoznunk a Folder bejegyzésben egy újat.
[HKEY_CLASSES_ROOT\Folder\shell\Convert BMP to GIF]
@="Convert BMP to GIF"
Ezen belül a Command kulcs alatt adhatjuk meg az új menüponthoz tartozó alkalmazást. A %L biztosítja, hogy a menüpont kiválasztásakor futó program megkapja paraméterként annak a könyvtárnak az elérési útvonalát, melynél a gyorsmenü használatra került. Innen fogja tudni alkalmazásunk, hogy mely mappában lévő Bitmap-eket kell konvertálnia.
[HKEY_CLASSES_ROOT\Folder\shell\Convert BMP to GIF\Command]
@="F:\\So\\Cso\\0222\\ConvertBmp\\ConvertBmp.exe %L"
A konvertálást megvalósító alkalmazásnál nem lesz szükségünk felhasználói felületre, így egy konzolalkalmazást készítünk. Első dolgunk az lesz, hogy meghatározzunk melyik mappában is kell konvertálnunk. Mivel ezt paraméterként kapjuk, így csak ki kell olvasnunk.
...
s=Environment.CommandLine.Split(' ')[1]+@"\";
...
Ha adott az elérési út, akkor a Directory osztály GetFiles függvényének hívásával előkerestetjük az összes BMP kiterjesztésű állományt. Eredményül egy sztringeket tartalmazó tömböt kapunk, melynek minden eleme egy-egy Bitmap állományt tartalmaz, teljes elérési úttal.
string[] bmps = Directory.GetFiles(s, "*.bmp");
Nincs más dolgunk, mint ezen a tömbön végigmennünk és minden BMP-t betölteni egy Bitmap osztályba, majd menteni GIF formátumba.
foreach (string filename in bmps)
{
bmp = Bitmap.FromFile(filename);
bmp.Save(Path.ChangeExtension(filename, "gif"), ImageFormat.Gif);
}
Tudnunk kell, hogy GDI+-ban a GIF formátum fix palettával dolgozik, nincs optimalizálás. Ennek eredménye az lesz, hogy a GIF képek nem a legszebb formáját mutatják az eredeti képnek. Konvertálásnál viszont választhatunk más formátumot is. Ilyen lehet például a PNG, mely true color-ban tárolja a képet, az állomány sok esetben kisebb, mint a GIF állomány ugyanannál a képnél és a mai böngészők is kezelik a PNG formátumot.