Delphi világ - amin a pixelformat
Bitmap.Scanline az PixelFormat
Valaki Olaszország megkért, hogy egy példát pf1bit a képek (képek), küldtem gyakori válasz a meglévő előforma, gondolta, és itt hozzáadott egyéb részleteket és pf8bit pf24bit.
Új Delphi 3 scanline tulajdonság lehetővé teszi a könnyű hozzáférést biztosít az egyes pixelek, de meg kell határozni, hogy hogyan Bitmap.PixelFormat dolgozik, mielőtt hozzáférhet a pixel.
Lehetséges PixelFormats tartalmazza:- pfDevice
- pf1bit
- pf4bit
- pf8bit
- pf15bit
- pf16bit
- pf24bit
- pf32bit
Mert pf24bit-image szükséges meghatározni:
Megjegyzés: TRGBTriple Windows.PAS modulban meghatározott.
Ahhoz, hogy a meglévő 24 bites képek férnek mind a létrehozott kép felbontása 3 bájt pixelenként, kövesse az alábbi lépéseket:
Hozzáférés az ilyen formátum a kép könnyen kaphatunk használatával TByteArray (meghatározott SysUtils.PAS):
(Azt hiszem, (de még nem próbáltam ezt a magam), akkor képes lesz elérni pf16bit-képeket az alábbi definíciók SysUtils.PAS:
Annak érdekében, hogy feldolgozza a 8 bites (pf8bit) esetén használja a kivitelező, mint ez, amely létrehoz egy hisztogram a kép:
Hozzáférés az pf8bit-képek végezzük nagyon könnyen, mivel kezdték használni egy byte pixelenként. De lehet menteni egy csomó memóriát, ha szüksége van egy kicsit pixelenként (mint például a különböző maszkok) abban az esetben, pf1bit képet.
Mivel ez a helyzet pf8bit-képek esetében TByteArray eléréséhez pf1bit-NYM váltakozás vonalak (soronkénti). De ahhoz, hogy hozzáférjen az egyes pixelek kell dolgozni a bit egy byte. Így, a szélessége a vonal interlace Bitmap.Width DIV egyenlő 8 bájt.
A következő kód azt mutatja, hogyan lehet létrehozni egy sablont 1 bites kép: fekete, fehér, csíkos, „g”, „nyíl” és alkalmi - opció „fordított” is rendelkezésre áll. (Remélem osvoete technológia könnyen.)
Hozzon létre egy űrlapot Image1: TImage használjak egy kép mérete 256x256 és Image1 ingatlan Stretch: = TRUE, hogy az egyes képpontok könnyű felismerni. Gombok Fekete, fehér csíkokkal és megvan az a tulajdonsága címkéket, c megfelelő értékei 0, 255 és 85 ($ 55 = 01010101 bináris számolás) okozó megnyomásával ButtonStripesClick eseménykezelő.
Gomb „g” és „nyíl” saját eseménykezelőkkel, amelyek lehetővé teszik a megfelelő nyomtatási teszt képek a HP LaserJet nyomtató.
„Random” véletlenszerűen állítja a biteket 1 bites kép.
„Invert” megváltoztatni a nullák edinichki és fordítva.