Домой Классы Статические функции Перечисления (ENUM) Записи (RECORD)

{Bitmap_direct}


CLASS {Bitmap_direct} , UNTESTED, BYTES :



Класс на основе {Bitmap} для работы с пикселями как с массивом байтов. На время такой обработки следует блокировать объект (весь или часть строк), используя функции Lock / Lock_rows. Результат блокировки доступен как массив байтов Pixels[*]. Не забывайте снять блокировку по окончании работ (функция Unlock). Для системы это не критично, но могут быть проблемы в работе вашей же программы, при наличии блокировок.


IMPORT : {Bitmap} , {AL4_drawing} .


BASE CLASS {Bitmap} .


 

FUN New_bitmap_direct (
     
INT Pixels_w|idth ,
     
INT Pixels_h|eight ,
     
INT Bpp|_value ) ==> {Bitmap_direct} , NEW


BYTE Pixels|_array[*]


INT Row_width|_bytes , READ


INT Bpp||Bits_per_pixel , READ


 

METHOD Lock|_entire_bitmap ( BOOL Read|_from_source )


INT Locked_Y|_start , READ


INT Locked_h|eight , READ


     

METHOD Lock_rows (
     
INT Y|_top_row ,
     
INT Height_rows ,
     
BOOL Read|_from_source )



OVERRIDE Unlock ( BOOL Write|_back_to_bitmap )



ENUMERATION {rgb|a_items_of_color} :

        'R|ED_COMPONENT_ITEM' ,

        'G|REEN_COMPONENT_ITEM' ,

        'B|LUE_COMPONENT_ITEM' ,

        'A|LPHA_COMPONENT_ITEM' .



FUN Mask_RGB ( {rgb} C|omponent_item ) ==> INT



FUN Shift_RGB|_left ( {rgb} C|omponent_item ) ==> INT


END