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:
  1. pfDevice
  2. pf1bit
  3. pf4bit
  4. pf8bit
  5. pf15bit
  6. pf16bit
  7. pf24bit
  8. pf32bit
pf24bit-image

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.

Kapcsolódó cikkek