Subversion Repositories Kolibri OS

Rev

Rev 6906 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6906 Rev 8442
1
;
1
;
2
; Œ ªà®áë ¤«ï ¤¥ª®¤¨à®¢ ­¨ï ¨§®¡à ¦¥­¨© ç१ ä㭪樨 ¡¨¡«¨®â¥ª¨ libimg.
2
; Œ ªà®áë ¤«ï ¤¥ª®¤¨à®¢ ­¨ï ¨§®¡à ¦¥­¨© ç१ ä㭪樨 ¡¨¡«¨®â¥ª¨ libimg.
3
;
3
;
4
; (1) ¬ ªà®á load_image_file:
4
; (1) ¬ ªà®á load_image_file:
5
;
5
;
6
; à®¢¥àï¥â à §¬¥à ¯®«ã祭­®£® ä ©«  á ¨§®¡à ¦¥­¨¥¬.
6
; à®¢¥àï¥â à §¬¥à ¯®«ã祭­®£® ä ©«  á ¨§®¡à ¦¥­¨¥¬.
7
; ‚뤥«ï¥â ¯®¤ ­¥£® ¯ ¬ïâì ¨ § £à㦠¥â â㤠 ä ©«.
7
; ‚뤥«ï¥â ¯®¤ ­¥£® ¯ ¬ïâì ¨ § £à㦠¥â â㤠 ä ©«.
8
; Ž¯à¥¤¥«ï¥â à §¬¥à ¯ ¬ï⨠­¥®¡å®¤¨¬®© ¤«ï à á¯ ª®¢ª¨ ¨§®¡à ¦¥­¨ï.
8
; Ž¯à¥¤¥«ï¥â à §¬¥à ¯ ¬ï⨠­¥®¡å®¤¨¬®© ¤«ï à á¯ ª®¢ª¨ ¨§®¡à ¦¥­¨ï.
9
; ¥à¥¢ë¤¥«ï¥â ¯ ¬ïâì, ¨ à á¯ ª®¢ë¢ ¥â ¨§®¡à ¦¥­¨¥ ¨§ ä®à¬ â®¢ jpg, png, ...
9
; ¥à¥¢ë¤¥«ï¥â ¯ ¬ïâì, ¨ à á¯ ª®¢ë¢ ¥â ¨§®¡à ¦¥­¨¥ ¨§ ä®à¬ â®¢ jpg, png, ...
10
;    ¢ ä®à¬ â rgb ª®â®àë© ¬®¦­® ¢ë¢®¤¨âì ­  íªà ­ ç¥à¥§ á¨áâ. äã­ªæ¨î.
10
;    ¢ ä®à¬ â rgb ª®â®àë© ¬®¦­® ¢ë¢®¤¨âì ­  íªà ­ ç¥à¥§ á¨áâ. äã­ªæ¨î.
11
; à¨ ­¥®¡å®¤¨¬®á⨠¬®¦­® â ª¦¥ ¯®«ãç¨âì à §¬¥àë ®âªà뢠¥¬®£® ¨§®¡à ¦¥­¨ï ¤«ï
11
; à¨ ­¥®¡å®¤¨¬®á⨠¬®¦­® â ª¦¥ ¯®«ãç¨âì à §¬¥àë ®âªà뢠¥¬®£® ¨§®¡à ¦¥­¨ï ¤«ï
12
;    ¨å ¤ «ì­¥©è¥£® ¨á¯®«ì§®¢ ­¨ï ¢ ¯à®£à ¬¬¥.
12
;    ¨å ¤ «ì­¥©è¥£® ¨á¯®«ì§®¢ ­¨ï ¢ ¯à®£à ¬¬¥.
13
;
13
;
14
; ‚ ¨á¯®«ì§ãî饩 ¯à®£à ¬¬¥ ¤®«¦­  ¡ëâì ¯®¤ª«î祭  ¡¨¡«¨®â¥ª  libimg,
14
; ‚ ¨á¯®«ì§ãî饩 ¯à®£à ¬¬¥ ¤®«¦­  ¡ëâì ¯®¤ª«î祭  ¡¨¡«¨®â¥ª  libimg,
15
;    ®¡ê¥­  ¯¥à¥¬¥­­ ï file_name à §¬¥à®¬ ®ª®«® 4096 ¡ ©â,
15
;    ®¡ê¥­  ¯¥à¥¬¥­­ ï file_name à §¬¥à®¬ ®ª®«® 4096 ¡ ©â,
16
;      â ª¦¥ áâàãªâãà  run_file_70 ⨯  FileInfoBlock.
16
;      â ª¦¥ áâàãªâãà  run_file_70 ⨯  FileInfoBlock.
17
;
17
;
18
; (2) ¬ ªà®á include_image_file:
18
; (2) ¬ ªà®á include_image_file:
19
;
19
;
20
; ‚­¥¤àï¥â ¨§®¡à ¦¥­¨¥ ¢ ä ©« ¯à®£à ¬¬ë.
20
; ‚­¥¤àï¥â ¨§®¡à ¦¥­¨¥ ¢ ä ©« ¯à®£à ¬¬ë.
21
; Ž¯à¥¤¥«ï¥â à §¬¥à ¯ ¬ï⨠­¥®¡å®¤¨¬®© ¤«ï à á¯ ª®¢ª¨ ¨§®¡à ¦¥­¨ï.
21
; Ž¯à¥¤¥«ï¥â à §¬¥à ¯ ¬ï⨠­¥®¡å®¤¨¬®© ¤«ï à á¯ ª®¢ª¨ ¨§®¡à ¦¥­¨ï.
22
; ‚뤥«ï¥â ¯ ¬ïâì, ¨ à á¯ ª®¢ë¢ ¥â ¨§®¡à ¦¥­¨¥ ¨§ ä®à¬ â®¢ jpg, png, ...
22
; ‚뤥«ï¥â ¯ ¬ïâì, ¨ à á¯ ª®¢ë¢ ¥â ¨§®¡à ¦¥­¨¥ ¨§ ä®à¬ â®¢ jpg, png, ...
23
;    ¢ ä®à¬ â rgb ª®â®àë© ¬®¦­® ¢ë¢®¤¨âì ­  íªà ­ ç¥à¥§ á¨áâ. äã­ªæ¨î.
23
;    ¢ ä®à¬ â rgb ª®â®àë© ¬®¦­® ¢ë¢®¤¨âì ­  íªà ­ ç¥à¥§ á¨áâ. äã­ªæ¨î.
24
; à¨ ­¥®¡å®¤¨¬®á⨠¬®¦­® â ª¦¥ ¯®«ãç¨âì à §¬¥àë ¢­¥¤à¥­­®£® ¨§®¡à ¦¥­¨ï ¤«ï
24
; à¨ ­¥®¡å®¤¨¬®á⨠¬®¦­® â ª¦¥ ¯®«ãç¨âì à §¬¥àë ¢­¥¤à¥­­®£® ¨§®¡à ¦¥­¨ï ¤«ï
25
;    ¨å ¤ «ì­¥©è¥£® ¨á¯®«ì§®¢ ­¨ï ¢ ¯à®£à ¬¬¥.
25
;    ¨å ¤ «ì­¥©è¥£® ¨á¯®«ì§®¢ ­¨ï ¢ ¯à®£à ¬¬¥.
26
 
26
 
27
; ¯®¤ª«î祭¨¥ ­¥ª®â®àëå ­¥®¡å®¤¨¬ëå ä ©«®¢:
27
; ¯®¤ª«î祭¨¥ ­¥ª®â®àëå ­¥®¡å®¤¨¬ëå ä ©«®¢:
28
include 'dll.inc'
28
include 'dll.inc'
29
include 'develop/libraries/box_lib/load_lib.mac'
29
;include 'load_lib.mac'
30
include 'develop/libraries/libs-dev/libio/libio.inc'
30
include 'develop/libraries/libs-dev/libio/libio.inc'
31
 
31
 
32
align 4
32
align 4
33
open_b rb 560
33
open_b rb 560
34
 
34
 
35
txt_err_img_file:
35
txt_err_img_file:
36
if lang eq ru
36
if lang eq ru
37
	db 'Žè¨¡ª  N'
37
	db 'Žè¨¡ª  N'
38
.n: db '* ¯à¨ ®âªàë⨨ ä ©«  '
38
.n: db '* ¯à¨ ®âªàë⨨ ä ©«  '
39
else
39
else
40
	db 'Error N'
40
	db 'Error N'
41
.n: db '*. Can',39,'t open file '
41
.n: db '*. Can',39,'t open file '
42
end if
42
end if
43
.f: dd 0,0
43
.f: dd 0,0
44
 
44
 
45
; path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥­­®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬
45
; path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥­­®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬
46
; buf - ¯¥à¥¬¥­­ ï ªã¤  ¡ã¤¥â § ¯¨á ­ 㪠§ â¥«ì ­  ¨§®¡à ¦¥­¨¥ ¢ ä®à¬ â¥ rgb,
46
; buf - ¯¥à¥¬¥­­ ï ªã¤  ¡ã¤¥â § ¯¨á ­ 㪠§ â¥«ì ­  ¨§®¡à ¦¥­¨¥ ¢ ä®à¬ â¥ rgb,
47
;    ¢ á«ãç ¥ ¥á«¨ ä ©« ­¥ ®âªà®¥âáï â® ¡ã¤¥â § ¯¨á ­ 0
47
;    ¢ á«ãç ¥ ¥á«¨ ä ©« ­¥ ®âªà®¥âáï â® ¡ã¤¥â § ¯¨á ­ 0
48
; img_w, img_h - ¯¥à¥¬¥­­ë¥ ªã¤  ¡ã¤ãâ § ¯¨á ­ë à §¬¥àë ®âªà뢠¥¬®£®
48
; img_w, img_h - ¯¥à¥¬¥­­ë¥ ªã¤  ¡ã¤ãâ § ¯¨á ­ë à §¬¥àë ®âªà뢠¥¬®£®
49
;    ¨§®¡à ¦¥­¨ï, ­¥ ®¡ï§ â¥«ì­ë¥ ¯ à ¬¥âàë
49
;    ¨§®¡à ¦¥­¨ï, ­¥ ®¡ï§ â¥«ì­ë¥ ¯ à ¬¥âàë
50
; bytes_p_p - ᪮«ìª® ¡ ©â ¯ ¬ï⨠¡à âì ­  ¯¨ªá¥«ì, ­¥ ®¡ï§ â¥«ì­ë© ¯ à ¬¥âà
50
; bytes_p_p - ᪮«ìª® ¡ ©â ¯ ¬ï⨠¡à âì ­  ¯¨ªá¥«ì, ­¥ ®¡ï§ â¥«ì­ë© ¯ à ¬¥âà
51
;    ¥á«¨ ­¥ 㪠§ ­ ¡¥à¥âáï 3. Œ¨­¨¬ «ì­®¥ §­ ç¥­¨¥ ¤®«¦­® ¡ëâì ­¥ ¬¥­ìè¥ 3.
51
;    ¥á«¨ ­¥ 㪠§ ­ ¡¥à¥âáï 3. Œ¨­¨¬ «ì­®¥ §­ ç¥­¨¥ ¤®«¦­® ¡ëâì ­¥ ¬¥­ìè¥ 3.
52
macro load_image_file path, buf, img_w, img_h, bytes_p_p
52
macro load_image_file path, buf, img_w, img_h, bytes_p_p
53
{
53
{
54
local .err_open
54
local .err_open
55
local .end_open
55
local .end_open
56
 
56
 
57
if path eqtype '' ;¯à®¢¥à塞 § ¤ ­ «¨ áâப®© ¯ à ¬¥âà path
57
if path eqtype '' ;¯à®¢¥à塞 § ¤ ­ «¨ áâப®© ¯ à ¬¥âà path
58
	local .path_str
58
	local .path_str
59
	jmp @f
59
	jmp @f
60
		.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
60
		.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
61
		db 0
61
		db 0
62
	@@:
62
	@@:
63
	;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
63
	;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
64
	copy_path .path_str,[32],file_name,0
64
	copy_path .path_str,[32],file_name,0
65
else
65
else
66
	copy_path path,[32],file_name,0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
66
	copy_path path,[32],file_name,0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
67
end if
67
end if
68
	mov dword[buf],0
68
	mov dword[buf],0
69
 
69
 
70
	mov [run_file_70.Function], SSF_GET_INFO
70
	mov [run_file_70.Function], SSF_GET_INFO
71
	mov [run_file_70.Position], 0
71
	mov [run_file_70.Position], 0
72
	mov [run_file_70.Flags], 0
72
	mov [run_file_70.Flags], 0
73
	mov dword[run_file_70.Count], 0
73
	mov dword[run_file_70.Count], 0
74
	mov dword[run_file_70.Buffer], open_b
74
	mov dword[run_file_70.Buffer], open_b
75
	mov byte[run_file_70+20], 0
75
	mov byte[run_file_70+20], 0
76
	mov dword[run_file_70.FileName], file_name
76
	mov dword[run_file_70.FileName], file_name
77
	mcall SF_FILE,run_file_70
77
	mcall SF_FILE,run_file_70
78
	or eax,eax
78
	or eax,eax
79
	jnz .err_open
79
	jnz .err_open
80
 
80
 
81
		mov ecx,dword[open_b+32] ;+32 qword: à §¬¥à ä ©«  ¢ ¡ ©â å
81
		mov ecx,dword[open_b+32] ;+32 qword: à §¬¥à ä ©«  ¢ ¡ ©â å
82
		stdcall mem.Alloc,ecx ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
82
		stdcall mem.Alloc,ecx ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
83
		mov [buf],eax
83
		mov [buf],eax
84
		mov [run_file_70.Function], SSF_READ_FILE
84
		mov [run_file_70.Function], SSF_READ_FILE
85
		mov [run_file_70.Position], 0
85
		mov [run_file_70.Position], 0
86
		mov [run_file_70.Flags], 0
86
		mov [run_file_70.Flags], 0
87
		mov [run_file_70.Count], ecx
87
		mov [run_file_70.Count], ecx
88
		mov [run_file_70.Buffer], eax
88
		mov [run_file_70.Buffer], eax
89
		mov byte[run_file_70+20], 0
89
		mov byte[run_file_70+20], 0
90
		mov [run_file_70.FileName], file_name
90
		mov [run_file_70.FileName], file_name
91
		mcall SF_FILE,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
91
		mcall SF_FILE,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
92
		test eax,eax
92
		test eax,eax
93
		jnz .err_open
93
		jnz .err_open
94
		cmp ebx,0xffffffff
94
		cmp ebx,0xffffffff
95
		je .end_open
95
		je .end_open
96
			;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¨è¥¬ ¥£® ¯ à ¬¥âàë
96
			;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¨è¥¬ ¥£® ¯ à ¬¥âàë
97
			stdcall [img_decode], [buf],ebx,0
97
			stdcall [img_decode], [buf],ebx,0
98
			mov ebx,eax
98
			mov ebx,eax
99
			;®¯à¥¤¥«ï¥¬ à §¬¥à ¤¥ª®¤¨à®¢ ­­®£® ¨§®¡à ¦¥­¨ï
99
			;®¯à¥¤¥«ï¥¬ à §¬¥à ¤¥ª®¤¨à®¢ ­­®£® ¨§®¡à ¦¥­¨ï
100
			mov ecx,[eax+4] ;+4 = image width
100
			mov ecx,[eax+4] ;+4 = image width
101
if img_w eq
101
if img_w eq
102
else
102
else
103
			mov dword[img_w],ecx
103
			mov dword[img_w],ecx
104
end if
104
end if
105
if img_h eq
105
if img_h eq
106
			imul ecx,[eax+8] ;+8 = image height
106
			imul ecx,[eax+8] ;+8 = image height
107
else
107
else
108
			mov eax,[eax+8] ;+8 = image height
108
			mov eax,[eax+8] ;+8 = image height
109
			mov dword[img_h],eax
109
			mov dword[img_h],eax
110
			imul ecx,eax
110
			imul ecx,eax
111
end if
111
end if
112
if bytes_p_p eq
112
if bytes_p_p eq
113
			imul ecx,3 ;need for r,g,b
113
			imul ecx,3 ;need for r,g,b
114
else
114
else
115
			imul ecx,bytes_p_p
115
			imul ecx,bytes_p_p
116
end if
116
end if
117
			stdcall mem.ReAlloc,[buf],ecx ;¨§¬¥­ï¥¬ à §¬¥à ¤«ï ¡ãä¥à 
117
			stdcall mem.ReAlloc,[buf],ecx ;¨§¬¥­ï¥¬ à §¬¥à ¤«ï ¡ãä¥à 
118
			mov [buf],eax
118
			mov [buf],eax
119
			stdcall [img_to_rgb2], ebx,[buf] ;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
119
			stdcall [img_to_rgb2], ebx,[buf] ;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
120
			stdcall [img_destroy], ebx ;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à á ¯ à ¬¥âà ¬¨ ¨§®¡à ¦¥­¨ï
120
			stdcall [img_destroy], ebx ;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à á ¯ à ¬¥âà ¬¨ ¨§®¡à ¦¥­¨ï
121
			jmp .end_open
121
			jmp .end_open
122
	.err_open:
122
	.err_open:
123
		add al,'0'
123
		add al,'0'
124
		mov byte[txt_err_img_file.n],al
124
		mov byte[txt_err_img_file.n],al
125
if path eqtype ''
125
if path eqtype ''
126
		mov eax,dword[.path_str]
126
		mov eax,dword[.path_str]
127
		mov dword[txt_err_img_file.f],eax
127
		mov dword[txt_err_img_file.f],eax
128
		mov eax,dword[.path_str+4]
128
		mov eax,dword[.path_str+4]
129
else
129
else
130
		mov eax,dword[path]
130
		mov eax,dword[path]
131
		mov dword[txt_err_img_file.f],eax
131
		mov dword[txt_err_img_file.f],eax
132
		mov eax,dword[path+4]
132
		mov eax,dword[path+4]
133
end if
133
end if
134
		mov dword[txt_err_img_file.f+4],eax
134
		mov dword[txt_err_img_file.f+4],eax
135
		mov byte[txt_err_img_file.f+7],0
135
		mov byte[txt_err_img_file.f+7],0
136
		notify_window_run txt_err_img_file
136
		notify_window_run txt_err_img_file
137
	.end_open:
137
	.end_open:
138
}
138
}
139
 
139
 
140
 
140
 
141
 
141
 
142
; path - ¨¬ï ¢ª«îç ¥¬®£® ä ©« 
142
; path - ¨¬ï ¢ª«îç ¥¬®£® ä ©« 
143
; buf - ¯¥à¥¬¥­­ ï ªã¤  ¡ã¤¥â § ¯¨á ­ 㪠§ â¥«ì ­  ¨§®¡à ¦¥­¨¥ ¢ ä®à¬ â¥ rgb
143
; buf - ¯¥à¥¬¥­­ ï ªã¤  ¡ã¤¥â § ¯¨á ­ 㪠§ â¥«ì ­  ¨§®¡à ¦¥­¨¥ ¢ ä®à¬ â¥ rgb
144
; img_w, img_h - ¯¥à¥¬¥­­ë¥ ªã¤  ¡ã¤ãâ § ¯¨á ­ë à §¬¥àë ¨§®¡à ¦¥­¨ï,
144
; img_w, img_h - ¯¥à¥¬¥­­ë¥ ªã¤  ¡ã¤ãâ § ¯¨á ­ë à §¬¥àë ¨§®¡à ¦¥­¨ï,
145
;    ­¥ ®¡ï§ â¥«ì­ë¥ ¯ à ¬¥âàë
145
;    ­¥ ®¡ï§ â¥«ì­ë¥ ¯ à ¬¥âàë
146
; bytes_p_p - ᪮«ìª® ¡ ©â ¯ ¬ï⨠¡à âì ­  ¯¨ªá¥«ì, ­¥ ®¡ï§ â¥«ì­ë© ¯ à ¬¥âà
146
; bytes_p_p - ᪮«ìª® ¡ ©â ¯ ¬ï⨠¡à âì ­  ¯¨ªá¥«ì, ­¥ ®¡ï§ â¥«ì­ë© ¯ à ¬¥âà
147
;    ¥á«¨ ­¥ 㪠§ ­ ¡¥à¥âáï 3. Œ¨­¨¬ «ì­®¥ §­ ç¥­¨¥ ¤®«¦­® ¡ëâì ­¥ ¬¥­ìè¥ 3.
147
;    ¥á«¨ ­¥ 㪠§ ­ ¡¥à¥âáï 3. Œ¨­¨¬ «ì­®¥ §­ ç¥­¨¥ ¤®«¦­® ¡ëâì ­¥ ¬¥­ìè¥ 3.
148
macro include_image_file path, buf, img_w, img_h, bytes_p_p
148
macro include_image_file path, buf, img_w, img_h, bytes_p_p
149
{
149
{
150
local .beg_file
150
local .beg_file
151
local .end_file
151
local .end_file
152
 
152
 
153
jmp .end_file
153
jmp .end_file
154
align 4
154
align 4
155
.beg_file:
155
.beg_file:
156
	file path
156
	file path
157
.end_file:
157
.end_file:
158
 
158
 
159
	;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¨è¥¬ ¥£® ¯ à ¬¥âàë
159
	;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¨è¥¬ ¥£® ¯ à ¬¥âàë
160
	stdcall [img_decode], .beg_file,.end_file-.beg_file,0
160
	stdcall [img_decode], .beg_file,.end_file-.beg_file,0
161
	mov ebx,eax
161
	mov ebx,eax
162
	;®¯à¥¤¥«ï¥¬ à §¬¥à ¤¥ª®¤¨à®¢ ­­®£® ¨§®¡à ¦¥­¨ï
162
	;®¯à¥¤¥«ï¥¬ à §¬¥à ¤¥ª®¤¨à®¢ ­­®£® ¨§®¡à ¦¥­¨ï
163
	mov ecx,[eax+4] ;+4 = image width
163
	mov ecx,[eax+4] ;+4 = image width
164
if img_w eq
164
if img_w eq
165
else
165
else
166
	mov dword[img_w],ecx
166
	mov dword[img_w],ecx
167
end if
167
end if
168
if img_h eq
168
if img_h eq
169
	imul ecx,[eax+8] ;+8 = image height
169
	imul ecx,[eax+8] ;+8 = image height
170
else
170
else
171
	mov eax,[eax+8] ;+8 = image height
171
	mov eax,[eax+8] ;+8 = image height
172
	mov dword[img_h],eax
172
	mov dword[img_h],eax
173
	imul ecx,eax
173
	imul ecx,eax
174
end if
174
end if
175
if bytes_p_p eq
175
if bytes_p_p eq
176
	imul ecx,3 ;need for r,g,b
176
	imul ecx,3 ;need for r,g,b
177
else
177
else
178
	imul ecx,bytes_p_p
178
	imul ecx,bytes_p_p
179
end if
179
end if
180
	stdcall mem.Alloc,ecx ;¨§¬¥­ï¥¬ à §¬¥à ¤«ï ¡ãä¥à 
180
	stdcall mem.Alloc,ecx ;¨§¬¥­ï¥¬ à §¬¥à ¤«ï ¡ãä¥à 
181
	mov [buf],eax
181
	mov [buf],eax
182
	stdcall [img_to_rgb2], ebx,[buf] ;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
182
	stdcall [img_to_rgb2], ebx,[buf] ;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
183
	stdcall [img_destroy], ebx ;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à á ¯ à ¬¥âà ¬¨ ¨§®¡à ¦¥­¨ï
183
	stdcall [img_destroy], ebx ;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à á ¯ à ¬¥âà ¬¨ ¨§®¡à ¦¥­¨ï
184
}
184
}