Rev 2388 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
2388 | dunkaist | 1 | .pgm: |
2733 | dunkaist | 2 | stdcall img.create, [width], [height], Image.bpp8g |
2388 | dunkaist | 3 | test eax, eax |
4 | jz .quit |
||
5 | mov [retvalue], eax |
||
6 | mov ebx, eax |
||
7 | |||
8 | mov edi, [ebx+Image.Data] |
||
9 | mov ecx, [ebx+Image.Width] |
||
10 | imul ecx, [ebx+Image.Height] |
||
11 | |||
12 | cmp [data_type], PNM_ASCII |
||
13 | je .pgm.ascii |
||
14 | |||
15 | .pgm.raw: |
||
16 | cmp [maxval], 0xff |
||
17 | jne .pgm.raw.scale |
||
18 | rep movsb |
||
19 | jmp .quit |
||
20 | |||
21 | .pgm.raw.scale: |
||
22 | mov edx, [maxval] |
||
23 | mov eax, 0 |
||
24 | @@: |
||
25 | lodsb |
||
26 | mov ebx, eax |
||
27 | shl eax, 8 |
||
28 | sub eax, ebx |
||
29 | div dl |
||
30 | stosb |
||
31 | dec ecx |
||
32 | jnz @b |
||
33 | jmp .quit |
||
34 | |||
35 | .pgm.ascii: |
||
36 | xor eax, eax |
||
37 | cmp [maxval], 0xff |
||
38 | jne .pgm.ascii.scale |
||
39 | .pgm.ascii.next_char: |
||
40 | lodsb |
||
41 | cmp al, ' ' |
||
42 | jna .pgm.ascii.next_char |
||
43 | call pnm._.get_number |
||
44 | mov eax, ebx |
||
45 | stosb |
||
46 | dec ecx |
||
47 | jnz .pgm.ascii.next_char |
||
48 | jmp .quit |
||
49 | |||
50 | .pgm.ascii.scale: |
||
51 | mov edx, [maxval] |
||
52 | .pgm.ascii.scale.next_char: |
||
53 | lodsb |
||
54 | cmp al, ' ' |
||
55 | jna .pgm.ascii.scale.next_char |
||
56 | call pnm._.get_number |
||
57 | mov eax, ebx |
||
58 | shl eax, 8 |
||
59 | sub eax, ebx |
||
60 | div dl |
||
61 | stosb |
||
62 | dec ecx |
||
63 | jnz .pgm.ascii.scale.next_char |
||
64 | jmp .quit |
||
65 |