Rev 1648 | Rev 1684 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1535 | IgorA | 1 | |
2 | |||
3 |
|
||
4 | |||
5 | |||
6 | body |
||
7 | { |
||
8 | font-size: 15px; |
||
9 | font-family: "Bookman Old Style"; |
||
10 | color: black; |
||
11 | text-align: justify; |
||
12 | } |
||
13 | h1 { color: green; font-size: 23px; } |
||
14 | h2 { color: green; font-size: 21px; } |
||
15 | h3 { color: green; font-size: 19px; } |
||
16 | h4 { color: #803f00; font-size: 17px; } |
||
17 | i { color: #0099cc; } |
||
18 | b { color: #0099cc; } |
||
19 | p { |
||
20 | text-indent: 1em; |
||
21 | margin-top: 3px; |
||
22 | margin-bottom: 2px; |
||
23 | margin-left: 0px; |
||
24 | margin-right: 0px; |
||
25 | } |
||
26 | ol, ul, dl{ |
||
27 | margin-top: 3px; |
||
28 | margin-bottom: 2px; |
||
29 | } |
||
30 | pre |
||
31 | { |
||
32 | padding: 2px; |
||
33 | padding-left: 20px; |
||
34 | margin-top: 5px; |
||
35 | margin-bottom: 5px; |
||
36 | margin-left: 0px; |
||
37 | margin-right: 0px; |
||
38 | font-family: "Courier New"; |
||
39 | font-size: 15px; |
||
40 | color: #004000; |
||
41 | background-color: #ffd0ff; |
||
42 | } |
||
43 | table { font-size: 15px; } |
||
44 | |||
45 | |||
46 | |||
47 | |||
48 | |||
49 |
|
||
50 | |||
51 | |||
52 | |||
53 | |||
54 | |||
55 | |||
56 | |||
57 | |||
58 | |||
59 |
|
||
60 |
|
||
61 | Эта библиотека создана для работы с 2d изображениями. |
||
1648 | IgorA | 62 | С ее помощью можно создавать буфера с изображениями в памяти, и при необходимости выводить их на экран. |
1535 | IgorA | 63 | Изображения можно накладывать одно на другое, поддерживается работа с прозрачными изображениями, есть функция рисования лини пока на этом все. |
64 | |||
1648 | IgorA | 65 |
|
1535 | IgorA | 66 | |
67 |
|
||
68 |
|
||
69 | Каждая функция при работе с буферами может быть расчитана на работу с определенными форматами изображений. |
||
70 | |||
71 |
|
||
72 |
|
||
73 |
|
||
74 |
|
||
75 |
|
||
76 |
|
||
77 | |||
78 |
|
||
79 | |||
80 |
|
||
81 | из которой могут использоваться параметры, нужные для работы конкретной функции. |
||
82 | Пример структуры буфера изображения: |
||
83 | align 4 |
||
84 | buf_0: |
||
85 | dd 0 ;+ 0 указатель на буфер изображения |
||
86 | dw 100 ;+ 4 отступ слева |
||
87 | dw 10 ;+ 6 отступ справа |
||
88 | dd 150 ;+ 8 ширина |
||
89 | dd 100 ;+12 высота |
||
90 | dd 0x80 ;+16 фоновый цвет |
||
91 | db 24 ;+20 бит на пиксель |
||
92 | |||
93 |
|
||
94 |
|
||
95 | |||
96 |
|
||
97 |
|
||
98 | |||
99 |
|
||
100 |
|
||
101 | |||
102 |
|
||
103 |
|
||
104 | |||
105 |
|
||
106 |
|
||
107 | |||
108 |
|
||
109 |
|
||
110 | |||
111 |
|
||
1648 | IgorA | 112 |
|
1535 | IgorA | 113 | stdcall [buf2d_line], buf_0, 30,10, 110,70, 0xffff00 ;рисуем линию |
114 |
|
||
115 | |||
1634 | IgorA | 116 |
|
1642 | IgorA | 117 |
|
1634 | IgorA | 118 | stdcall [buf2d_rect_by_size], buf_0, 10,10,150,100, 0x8080 |
119 |
|
||
120 | |||
1642 | IgorA | 121 |
|
122 |
|
||
123 | stdcall [buf2d_rect_by_size], buf_0, 10,10,150,100, 0x8080 |
||
124 |
|
||
125 | |||
1535 | IgorA | 126 |
|
1648 | IgorA | 127 |
|
1535 | IgorA | 128 | stdcall [buf2d_circle], buf_0, 25, 70, 15, 0xff0000 |
129 |
|
||
130 | |||
131 |
|
||
132 |
|
||
133 | |||
134 |
|
||
135 |
|
||
136 | |||
137 |
|
||
138 |
|
||
139 | При преобразовании указывается какой цвет берать: 0-синий, 1-зеленый, 2-красный. |
||
140 | Остальные цвета при преобразовании теряются. |
||
141 | |||
142 |
|
||
143 |
|
||
144 | При преобразовании указывается также 8-битный буфер, который будет использован для создания альфа канала. Пример: |
||
145 | stdcall [buf2d_conv_24_to_32],buf_a,buf_b ;делаем буфер rgba 32бит |
||
146 |
|
||
147 | После выполнения функции буфер buf_a станет 32 битным, буфер buf_b не изменится. |
||
148 | |||
149 |
|
||
1648 | IgorA | 150 |
|
151 | stdcall [buf2d_bit_blt], buf_0, 50,30, buf_1 ;прорисовка среднего скина |
||
152 |
|
||
153 | buf_1 - структура буфера с рисуемым изображением (источник); |
||
154 | 50,30 - координаты для вывода изображения, определяют положение рисуемой картинки в buf_0. |
||
1535 | IgorA | 155 | |
156 |
|
||
157 |
|
||
158 | Буфер который будет нарисован должен быть 32 битным, а тот в котором рисуют 24 битным. |
||
159 | |||
160 |
|
||
161 |
|
||
162 | Буфер который будет нарисован должен быть 8 битным, а тот в котором рисуют 24 битным. |
||
163 | |||
164 |
|
||
165 |
|
||
166 | |||
167 |
|
||
168 |
|
||
169 | stdcall [buf2d_create_f_img], buf_1,[image_data] ;создаем буфер 24 бит на основе данных изображения |
||
170 | stdcall [buf2d_conv_24_to_8], buf_1,1 ;делаем буфер прозрачности 8 бит |
||
171 | stdcall [buf2d_convert_text_matrix], buf_1 |
||
172 |
|
||
173 | image_data - данные изображения текстовой матрицы в формате rgb, размером 16*16 символов. |
||
174 | |||
175 |
|
||
176 |
|
||
177 | stdcall [buf2d_draw_text], buf_0, buf_1,some_text,20,10,0x4040ff ;рисуем строку с текстом |
||
178 |
|
||
179 | buf_1 - структура буфера с текстовой матрицей в формате 8 бит, размером 1*256 символов; |
||
180 | some_text - текст, который будет выведен в буфер buf_0. |
||
181 | |||
182 |
|
||
183 |
|
||
184 | stdcall [buf2d_crop_color], buf_0,0xffffff,BUF2D_OPT_CROP_TOP+BUF2D_OPT_CROP_BOTTOM |
||
185 |
|
||
186 | 0xffffff - цвет по которому будет обрезаться буфер; |
||
187 | BUF2D_OPT_CROP_TOP и BUF2D_OPT_CROP_BOTTOM - константы, указывающие с каких сторон обрезать буфер. |
||
188 | |||
189 |
|
||
190 |
|
||
191 | |||
192 |
|
||
193 |
|
||
194 |
|
||
1538 | IgorA | 195 |
|
196 |
|
||
1535 | IgorA | 197 |
|
198 |
|
||
199 |
|
||
200 |
|
||
201 | |||
202 |
|
||
203 |
|
||
204 | align 4 |
||
205 | import_buf2d_lib: |
||
206 | dd sz_lib_init |
||
207 | buf2d_create dd sz_buf2d_create |
||
208 | buf2d_create_f_img dd sz_buf2d_create_f_img |
||
209 | buf2d_clear dd sz_buf2d_clear |
||
210 | buf2d_draw dd sz_buf2d_draw |
||
211 | buf2d_delete dd sz_buf2d_delete |
||
212 | buf2d_line dd sz_buf2d_line |
||
1634 | IgorA | 213 | buf2d_rect_by_size dd sz_buf2d_rect_by_size |
1642 | IgorA | 214 | buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size |
1535 | IgorA | 215 | buf2d_circle dd sz_buf2d_circle |
216 | buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2 |
||
217 | buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2 |
||
218 | buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8 |
||
219 | buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32 |
||
220 | buf2d_bit_blt dd sz_buf2d_bit_blt |
||
221 | buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp |
||
222 | buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha |
||
223 | buf2d_cruve_bezier dd sz_buf2d_cruve_bezier |
||
224 | buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix |
||
225 | buf2d_draw_text dd sz_buf2d_draw_text |
||
226 | buf2d_crop_color dd sz_buf2d_crop_color |
||
227 | buf2d_offset_h dd sz_buf2d_offset_h |
||
228 | |||
229 | dd 0,0 |
||
230 | sz_lib_init db 'lib_init',0 |
||
231 | sz_buf2d_create db 'buf2d_create',0 |
||
232 | sz_buf2d_create_f_img db 'buf2d_create_f_img',0 |
||
233 | sz_buf2d_clear db 'buf2d_clear',0 |
||
234 | sz_buf2d_draw db 'buf2d_draw',0 |
||
235 | sz_buf2d_delete db 'buf2d_delete',0 |
||
236 | sz_buf2d_line db 'buf2d_line',0 |
||
1634 | IgorA | 237 | sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0 |
1642 | IgorA | 238 | sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0 |
1535 | IgorA | 239 | sz_buf2d_circle db 'buf2d_circle',0 |
240 | sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0 |
||
241 | sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0 |
||
242 | sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0 |
||
243 | sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0 |
||
244 | sz_buf2d_bit_blt db 'buf2d_bit_blt',0 |
||
245 | sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0 |
||
246 | sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0 |
||
247 | sz_buf2d_cruve_bezier db 'buf2d_cruve_bezier',0 |
||
248 | sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0 |
||
249 | sz_buf2d_draw_text db 'buf2d_draw_text',0 |
||
250 | sz_buf2d_crop_color db 'buf2d_crop_color',0 |
||
251 | sz_buf2d_offset_h db 'buf2d_offset_h',0 |
||
252 | |||
253 |
|
||
254 |
|
||
255 |
|
||
256 |
|
||
257 |
|
||
258 | изменен формат буфера - для ширины и высоты используются 4-х байтные числа вместо 2-х байтных. |
||
259 |
|
||
260 | исправления в функции buf2d_delete. |
||
1634 | IgorA | 261 |
|
1642 | IgorA | 262 |
|
1648 | IgorA | 263 |
|
1653 | IgorA | 264 |
|
1535 | IgorA | 265 | |
266 |