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