C-ben hogy lehet BMP képet beolvasni, majd fekete-fehérré átkonvertálni?
Ez a feladatom, de nagyon nem értek a programozáshoz. Tudna-e valaki segíteni, hogyan kell ezt a programot megírni?
P.S.:Annyi még a feladatról, hogy nem csak fekete-fehérré kell átalakítani, hanem tetszés szerint kék, piros, zöld árnyalatossá.
Előre is köszönöm a segítséget!
1) Tanulmányozod a BMP formátumot - angol wikipédián fenn van a fájlszerkezet
2) Keresel egy szimpatikus formulát az RGB színkód szürkeárnyalatossá alakításához
- A legegyszerűbb, ha átlagolod az értékeket
- Átkonvertálhatod HSB formátumra és veheted a nulla telítettségű színt
- Vannak ennél is jobb képletek, nézd meg az angol wiki "Grayscale" oldalát
3) Megírod a programot:
- Elkéred a fájl nevét (argumentumként, vagy kiírod konzolra, vagy feldobsz egy browser dialog-ot)
- Megnézed, hogy meg tudod-e nyitni. HA nem hibaüzenet, és vissza az elejére.
- Megnézed, hogy valóban BMP formátumú-e (ld. a BMP formátum leírását)
- Elkéred a célfájl nevét a júzertől (mint fent, ha nem tudod írni a célt, hibaüzenet, és másik célfájlt kérsz be)
- Beolvasod a méretet és a pixelformátumot (monokróm, 16 szín, 256 szín palettával, 16 bit, 24bit, 32 bit. stb)
- Elindítod a konverziót.
a) Ronda megoldás: berántod az egész fájlt a memóriába, foglalsz egy "célterületet", és memóriából memóriába konvertálsz
b) Szebb megoldás: létrehozod a cél-fájlt (szürkeárnyalatos BMP kép) és kövzetlenül fájlból fájlba konvertálsz
- Bezárod a fájlokat
- Kiírod, hogy kész vagy
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!