ΠΠ΅Π·Π΄Π΅, Π³Π΄Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° TColor, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΡΡ TColorRef, Ρ.Π΅. Π²ΡΠ΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠ° TCanvas, ΠΈΠΌΠ΅ΡΡΠΈΠΌ ΡΠΈΠΏ TColor ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ TColorRef, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ API. ΠΠ±ΡΠ°ΡΠ½ΠΎΠ΅ Π½Π΅Π²Π΅ΡΠ½ΠΎ: API-ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΡΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Ρ 255-ΠΌ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ TColor. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· TColor Π² TColorRef ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ColorToRGB. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ, ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ clNone ΠΈ clDefault ΠΎΠ½Π° ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ 255-Π³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½ΡΠ»Π΅Π²ΠΎΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ GetSysColor. ΠΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΡΠΈΠΏΠ° TColor Π² ΡΡΠ½ΠΊΡΠΈΠΈ GDI.
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΈΡΡΠ΅ΠΉ, ΠΏΠ΅ΡΡΠ΅Π² ΠΈ ΡΡΠΈΡΡΠΎΠ² Π² GDI ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π² VCL. ΠΠ»Π°ΡΡ TCanvas ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° Pen, Brush, ΠΈ Font, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π²ΡΠ±ΠΎΡΡ ΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ°, ΠΊΠΈΡΡΠΈ, ΡΡΠΈΡΡΠ°. Π GDI ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½Ρ, Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ, ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ²ΠΎΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ, "Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ" Π² Π½ΡΠΆΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ SelectObject ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΈΡΠ΅ΠΌ ΡΠ΄Π°Π»ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²ΡΠ±ΡΠ°Π½Ρ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅. ΠΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π½ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ, Π½ΠΈ ΡΠ΄Π°Π»ΡΡΡ. ΠΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ GetStockObject. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΈΡΡΡΡΠ΅ΠΉ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠΌ DC Π΄Π²Π΅ Π»ΠΈΠ½ΠΈΠΈ: ΡΠΈΠ½ΡΡ ΠΈ ΠΊΡΠ°ΡΠ½ΡΡ (Π»ΠΈΡΡΠΈΠ½Π³ 1.18). Π ΡΡΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ SelectObject Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌΠΎΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π²ΡΠ±ΡΠ°Π½ ΡΠ°Π½Π΅Π΅. Π’Π°ΠΊ, ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ° ΠΎΠ½Π° Π²Π΅ΡΠ½Π΅Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ»ΠΎ Π²ΡΠ±ΡΠ°Π½ΠΎ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ.
ΠΠΈΡΡΠΈΠ½Π³ 1.18. Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠ΅ΡΡΡΠΌΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ GDISelectObject(DC, CreatePen(PS_SOLID, 1, RGB(255, 0, 0)));
MoveToEx(DC, 100, 100, nil);
LineTo(DC, 200, 200);
DeleteObject(SelectObject(DC, CreatePen(PS_SOLID, 1, RGB(0, 0, 255))));
MoveToEx(DC, 200, 100, nil);
LineTo(DC, 100, 200);
DeleteObject(SelectObject(DC, SetStockObject(BLACK_PEN)));
ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² GDI ΠΈΠΌΠ΅ΡΡ ΡΠΌΡΡΠ» ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡ ΡΠΎΠ·Π΄Π°Π», ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ Π½Π΅Π»ΡΠ·Ρ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΈΠ·ΡΠ΅Π΄ΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ, ΡΡΠΎ ΡΠ°ΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°. ΠΡΡΠΎΡΠ½ΠΈΠΊ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΠΎΠΌ. ΡΡΠΎ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² GDI ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ Π² ΡΡΠ°ΡΡΡ , 16-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ Π²Π΅ΡΡΠΈΡΡ Windows, ΡΠ°ΠΊ ΡΡΠΎ Π²ΡΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡΡ Π½Π° ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΡ .
ΠΠ»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΡΡΡΠΎΠ²ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² Windows ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΡΠΈ ΡΠΎΡΠΌΠ°ΡΠ°: DDB, DIB ΠΈ DIB-ΡΠ΅ΠΊΡΠΈΡ. DDB β ΡΡΠΎ Device Dependent Format, ΡΠΎΡΠΌΠ°Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄. DIB β ΡΡΠΎ Device Independent Bitmap, ΡΠΎΡΠΌΠ°Ρ, Π΅Π΄ΠΈΠ½ΡΠΉ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ². Π€ΠΎΡΠΌΠ°Ρ DIB β ΡΡΠΎ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ GDI Π΄Π»Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ, ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ: Π²ΡΡΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡ ΡΠ²Π΅ΡΠ° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ². Π 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ Π²Π΅ΡΡΠΈΡΡ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΎΡΠΌΠ°Ρ β DIB-ΡΠ΅ΠΊΡΠΈΡ. ΠΠΎ ΡΡΡΠΈ Π΄Π΅Π»Π° ΡΡΠΎ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ DIB, Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π½Π΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ GDI-ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΡΡΠ΅ΠΌΡ ΡΠΎΡΠΌΠ°ΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π² Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ [1]; ΠΌΡ ΠΆΠ΅ Π·Π΄Π΅ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΡΠ°ΡΠΊΠΈΠΌ ΠΈΡ ΠΎΠ±Π·ΠΎΡΠΎΠΌ.
Π€ΠΎΡΠΌΠ°Ρ DDB ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΌΠΎΠΉ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΠΎΠΉ (ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ Π²ΡΠ²ΠΎΠ΄Π°), ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΡΠ΅ΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»Ρ Π³ΡΠ°ΡΠΈΠΊΠΈ. DDB-ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² Π²ΡΠ³ΡΡΠΆΠ°Π΅ΠΌΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΠΏΡΠ»Π΅ ΠΏΠ°ΠΌΡΡΠΈ (Windows NT/2000/XP) ΠΈΠ»ΠΈ Π² ΠΊΡΡΠ΅ GDI (Windows 9x/ME). ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ°Π·ΠΌΠ΅Ρ DDB-ΡΠ°ΡΡΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ 16 ΠΠ±Π°ΠΉΡ Π² Windows 9x/ME ΠΈ 48 ΠΠ±Π°ΠΉΡ Π² Windows NT/2000/XP. Π€ΠΎΡΠΌΠ°Ρ DDB Π½Π΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° Π΄ΡΡΠ³ΠΎΠ΅, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π²ΡΡΡΠ½ΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ, Ρ.ΠΊ. ΡΠΎΡΠΌΠ°Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌ. ΠΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ DDB ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ GDI. Π¦Π²Π΅ΡΠΎΠ²Π°Ρ Π³Π»ΡΠ±ΠΈΠ½Π° DDB-ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ.
DIB-ΡΠ΅ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ, Π΅Π΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠ½ΠΊΡΠΈΠΈ GDI Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ°ΠΊΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΈΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»Ρ. DIB-ΡΠ΅ΠΊΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ²Π΅ΡΠΎΠ²ΡΡ Π³Π»ΡΠ±ΠΈΠ½Ρ ΠΈ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. DIB-ΡΠ΅ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠ° Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° Π΄ΡΡΠ³ΠΎΠ΅. BMP-ΡΠ°ΠΉΠ»Ρ Ρ ΡΠ°Π½ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ DIB.
Π‘ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ DIB-ΡΠ΅ΠΊΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ (Π° ΠΎΠ½ΠΈ, Π½Π°Π΄ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² Windows ΠΎΡΠ΅Π½Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ). Π‘ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ DDB Π·Π°Π²ΠΈΡΠΈΡ Π΅ΡΠ΅ ΠΈ ΠΎΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»Ρ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΡ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»Ρ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² (Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΡΠΈΡΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ°: ΡΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄ΡΠ°ΠΉΠ²Π΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ GetDeviceCaps). ΠΠΎ Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π±ΡΠ»Π° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ Π½Π° DDB-ΡΠ°ΡΡΡΠ΅ ΠΈ Π²ΡΠ²ΠΎΠ΄ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°ΡΡΡΠ° Π½Π° ΡΠΊΡΠ°Π½ Π±ΡΠ»ΠΈ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ (ΠΈΠ½ΠΎΠ³Π΄Π° β Π² Π΄Π²Π°-ΡΡΠΈ ΡΠ°Π·Π°) Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ DIB-ΡΠ΅ΠΊΡΠΈΠ΅ΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°Π·Π½ΠΈΡΠ° ΡΡΠ°Π»Π° ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠ΅Π»ΠΎΠΌ Π²ΡΡΠΎΡΠ»Π° ΡΠΈΠ»ΡΠ½Π΅Π΅, ΡΠ΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»Π΅ΠΉ (Π²ΠΈΠ΄ΠΈΠΌΠΎ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΡΠΈΡΠ°ΡΡ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΡ Π³ΡΠ°ΡΠΈΠΊΡ ΡΠ·ΠΊΠΈΠΌ ΠΌΠ΅ΡΡΠΎΠΌ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠ»ΠΈ ΡΠ²ΠΎΠΈ ΡΡΠΈΠ»ΠΈΡ Π½Π° ΡΠ°Π·Π²ΠΈΡΠΈΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»Π΅ΠΉ 3D-Π³ΡΠ°ΡΠΈΠΊΠΈ). ΠΠ° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΡΠΈΡΡΠ°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΠ³Π΄Π° DDB-ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΡΡΠ°Π΅Ρ ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΡ DIB.
ΠΠ»Π°ΡΡ TBitmap ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π² Π²ΠΈΠ΄Π΅ DDB, ΡΠ°ΠΊ ΠΈ Π² Π²ΠΈΠ΄Π΅ DIB- ΡΠ΅ΠΊΡΠΈΠΈ β ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π° PixelFormat. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ pfDevice ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ DDB, ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ β DIB-ΡΠ΅ΠΊΡΠΈΠΈ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ Π³Π»ΡΠ±ΠΈΠ½ΠΎΠΉ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ TBitmap ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ pfDevice, Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΡΠΌΠ°Ρ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ°, ΡΡΠ°ΡΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΡΠ΅ΡΡΡ Π² Π½Π΅Π³ΠΎ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅ΡΡΡ.
Π‘ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ PixelFormat ΡΠ΅ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ HandleType, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ bmDIB ΠΈ bmDDB. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° PixelFormat ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° HandleType, ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΡΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ΡΡ Π² TBitmap, ΡΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΡΠ²ΠΎΠΉΡΡΠ² PixelFormat ΠΈΠ»ΠΈ HandleType ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΎΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ DIB. ΠΠΎΠΏΡΡΠΊΠ° Π²ΡΠ²Π΅ΡΡΠΈ DDB-ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ½ΡΠ΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ (ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ) ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΏΡΠΈΠ½ΡΠ΅ΡΠ° Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΡΠΌΠ°Ρ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΠΎΠΉ.
ΠΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°, ΡΠ΅ΡΡΡΡΠ° ΠΈΠ»ΠΈ ΠΏΠΎΡΠΎΠΊΠ° ΠΊΠ»Π°ΡΡ TBitmap ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ DIB-ΡΠ΅ΠΊΡΠΈΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ ΠΏΠΎ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ Π³Π»ΡΠ±ΠΈΠ½Π΅. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠΆΠ°ΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ (ΡΠΎΡΠΌΠ°Ρ BMP ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΆΠ°ΡΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ 16- ΠΈ 256-ΡΠ²Π΅ΡΠ½ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ) β Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ DDB. Π ΡΠ°ΠΉΠ»Π΅ Graphics ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ DDBsOnly, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π²Π½Π° False. ΠΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° True, Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΡΠΌΠ°Ρ DDB.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅Π ΡΠΏΡΠ°Π²ΠΊΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° DDBsOnly = False, Π²Π½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Ρ ΡΠ°Π½ΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ DIB-ΡΠ΅ΠΊΡΠΈΠΉ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΈΠ·-Π·Π° ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Graphics (ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π΄ΠΎ 2007-ΠΉ Π²Π΅ΡΡΠΈΠΈ Delphi Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ) Π²Π½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³Π΄Π° Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΊΠ°ΠΊ DDB Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ DDBsOnly.
ΠΠ»Π°ΡΡ TBitmap ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ScanLine, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ², ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. Π ΡΠΏΡΠ°Π²ΠΊΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ, ΡΡΠΎ ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ DIB-ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ DDB-ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, Ρ ΠΎΡΡ ΠΈ Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΡΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² DDB- ΡΠΎΡΠΌΠ°ΡΠ΅, ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ScanLine ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΅Π³ΠΎ DIB-ΠΊΠΎΠΏΠΈΡ, ΠΈ ScanLine Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΌΠ°ΡΡΠΈΠ² ΡΡΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ. ΠΠΎΡΡΠΎΠΌΡ, Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ScanLine ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ DDB-ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΎΡΠ΅Π½Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π° Π²ΠΎ-Π²ΡΠΎΡΡΡ , ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π° Ρ Π΅Π³ΠΎ ΠΊΠΎΠΏΠΈΠ΅ΠΉ, ΠΎΡΠΊΡΠ΄Π° Π²ΡΡΠ΅ΠΊΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ:
1. ΠΠΎΠΏΠΈΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ScanLine, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ GDI-ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ, Π±ΡΠ΄ΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ.
2. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ScanLine ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠΏΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π° ΡΡΠ°ΡΠ°Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅ΡΡΡ. ΠΠ°ΡΠ°Π½ΡΠΈΠΈ, ΡΡΠΎ Π½ΠΎΠ²Π°Ρ ΠΊΠΎΠΏΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π² ΡΠΎΠΉ ΠΆΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ, Π½Π΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΏΡΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ScanLine, Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
3. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ², Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΏΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ ΡΠ°ΠΌΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π² ΡΠ»ΡΡΠ°Π΅ DDB ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ScanLine Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ, Π½ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.