Rev 2388 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
2388 | dunkaist | 1 | .pbm: |
2 | stdcall img.create, [width], [height], Image.bpp1 |
||
3 | test eax, eax |
||
4 | jz .quit |
||
5 | mov [retvalue], eax |
||
6 | mov ebx, eax |
||
7 | |||
8 | mov edi, [ebx+Image.Palette] |
||
9 | mov [edi], dword 0x00ffffff |
||
10 | mov [edi + 4], dword 0x00000000 |
||
11 | |||
12 | cmp [data_type], PNM_ASCII |
||
13 | je .pbm.ascii |
||
14 | |||
15 | .pbm.raw: |
||
16 | mov ecx, [ebx+Image.Width] |
||
17 | add ecx, 7 |
||
18 | shr ecx, 3 |
||
19 | imul ecx, [ebx+Image.Height] |
||
20 | mov edi, [ebx+Image.Data] |
||
21 | rep movsb |
||
22 | jmp .quit |
||
23 | |||
24 | .pbm.ascii: |
||
25 | mov edi, [ebx+Image.Data] |
||
26 | .pbm.next_line: |
||
27 | mov edx, [width] |
||
28 | mov ecx, 7 |
||
29 | xor eax, eax |
||
30 | .pbm.next_char: |
||
31 | lodsb |
||
32 | cmp al, ' ' |
||
33 | jna .pbm.next_char |
||
34 | .pbm.get_number: |
||
35 | cmp al, '1' |
||
36 | sete bl |
||
37 | shl bl, cl |
||
38 | or ah, bl |
||
39 | dec ecx |
||
40 | jns @f |
||
41 | shr eax, 8 |
||
42 | stosb |
||
43 | mov ecx, 7 |
||
44 | @@: |
||
45 | dec edx |
||
46 | jnz .pbm.next_char |
||
47 | test byte[width], 0x07 |
||
48 | jz @f |
||
49 | shr eax, 8 |
||
50 | stosb |
||
51 | @@: |
||
52 | dec [height] |
||
53 | jnz .pbm.next_line |
||
54 | jmp .quit |