HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Egy mappában lévő BMP állományok konvertálása más formátumra két kattintással


Példaprogram letöltése

5740 bájt

Ha gyakori feladatunk, hogy bizonyos mappákban lévő Bitmap-eket konvertáljunk más formátumra, mondjuk GIF, JPG, stb., akkor célszerű egy kis programot írni erre a célra, valamint kiegészíteni a Windows Intéző gyorsmenüjét egy olyan paranccsal, amelyen keresztül elindíthatjuk a konvertáló programunkat. Így nincs más dolgunk, mint jobb gombbal kattintani az Intézőben azon a mappán, melyben a Bitmap-ek vannak és kiválasztani a saját programunkhoz tartozó menüpontot és máris rendelkezésre áll az összes Bitmap konvertált változata.

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.

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 350. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |