/programs/develop/libraries/exif/examples/viev_exif.asm |
---|
10,7 → 10,7 |
include '../../../../develop/libraries/box_lib/trunk/box_lib.mac' |
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
caption db 'à®á¬®âà ¨ä®à¬ 樨 Exif 10.03.16',0 ;¯®¤¯¨áì ®ª |
caption db 'à®á¬®âà ¨ä®à¬ 樨 Exif 11.03.16',0 ;¯®¤¯¨áì ®ª |
run_file_70 FileInfoBlock |
268,7 → 268,7 |
mov eax,1 |
mov ebx,1 |
.cycle_0: |
stdcall [exif_get_app1_tag], h_app1,eax,txt_buf,80 |
stdcall [exif_get_tag], h_app1,eax,txt_buf,80 |
stdcall [buf2d_draw_text], buf_0, buf_1,txt_buf,3,ebx,0xb0 |
inc eax |
add ebx,10 |
276,7 → 276,7 |
jne .cycle_0 |
;áç¨âë¢ ¥¬ ¤®ç¥à¨¥ ⥣¨ ¤«ï 0x8769 |
stdcall [exif_get_app1_child], h_app1,h_child,0x8769 |
stdcall [exif_get_child], h_app1,h_child,0x8769 |
cmp dword[h_child],0 |
je .no_found_child |
283,7 → 283,7 |
mov eax,1 |
sub ebx,5 |
.cycle_1: |
stdcall [exif_get_app1_tag], h_child,eax,txt_buf,80 |
stdcall [exif_get_tag], h_child,eax,txt_buf,80 |
stdcall [buf2d_draw_text], buf_0, buf_1,txt_buf,3,ebx,0xb00000 |
inc eax |
add ebx,10 |
314,7 → 314,7 |
mov eax,1 |
mov ebx,1 |
.cycle_0: |
stdcall [exif_get_app1_tag], h_app1,eax,txt_buf,80 |
stdcall [exif_get_tag], h_app1,eax,txt_buf,80 |
stdcall [buf2d_draw_text], buf_0, buf_1,txt_buf,3,ebx,0xb0 |
inc eax |
add ebx,10 |
322,7 → 322,7 |
jne .cycle_0 |
;áç¨âë¢ ¥¬ ¤®ç¥à¨¥ ⥣¨ ¤«ï 0x8825 |
stdcall [exif_get_app1_child], h_app1,h_child,0x8825 |
stdcall [exif_get_child], h_app1,h_child,0x8825 |
cmp dword[h_child],0 |
je .no_found_child |
329,7 → 329,7 |
mov eax,1 |
sub ebx,5 |
.cycle_1: |
stdcall [exif_get_app1_tag], h_child,eax,txt_buf,80 |
stdcall [exif_get_tag], h_child,eax,txt_buf,80 |
stdcall [buf2d_draw_text], buf_0, buf_1,txt_buf,3,ebx,0xb00000 |
inc eax |
add ebx,10 |
360,7 → 360,7 |
mov eax,1 |
mov ebx,1 |
.cycle_0: |
stdcall [exif_get_app1_tag], h_app1,eax,txt_buf,80 |
stdcall [exif_get_tag], h_app1,eax,txt_buf,80 |
stdcall [buf2d_draw_text], buf_0, buf_1,txt_buf,3,ebx,0xb0 |
inc eax |
add ebx,10 |
375,7 → 375,7 |
mov eax,1 ;25 |
sub ebx,5 |
.cycle_1: |
stdcall [exif_get_app1_tag], h_child,eax,txt_buf,80 |
stdcall [exif_get_tag], h_child,eax,txt_buf,80 |
stdcall [buf2d_draw_text], buf_0, buf_1,txt_buf,3,ebx,0xb00000 |
inc eax |
add ebx,10 |
403,27 → 403,42 |
cmp dword[open_file_size],0 |
je .open_file |
mov eax,1 |
mov ebx,1 |
;¢ë¢®¤¨¬ ®¡éãî ¨ä®à¬ æ¨î ¯® ᨬªã: |
;0x010f - Manufacturer of digicam |
;0x0110 - Model |
;0x0132 - Modify date |
mov ebx,3 |
stdcall [exif_get_tag_id], h_app1,0x010f,txt_buf,80 |
stdcall [buf2d_draw_text], buf_0, buf_1,txt_buf,3,ebx,0xb0 |
add ebx,10 |
stdcall [exif_get_tag_id], h_app1,0x0110,txt_buf,80 |
stdcall [buf2d_draw_text], buf_0, buf_1,txt_buf,3,ebx,0xb0 |
add ebx,10 |
stdcall [exif_get_tag_id], h_app1,0x0132,txt_buf,80 |
stdcall [buf2d_draw_text], buf_0, buf_1,txt_buf,3,ebx,0xb0 |
add ebx,20 |
; 室¨¬ app2 |
stdcall [exif_get_app2], h_app1,h_child |
cmp dword[h_child],0 |
je .no_found_child |
;áç¨âë¢ ¥¬ ¤®ç¥à¨¥ ⥣¨ |
stdcall [exif_get_app1_child], h_child,h_child,0x0011 |
;0x0011 - Preview IFD |
stdcall [exif_get_child], h_child,h_child,0x0011 |
cmp dword[h_child],0 |
je .no_found_child |
stdcall [exif_get_app1_child], h_child,h_child_siz,0x0202 |
;0x0202 - Preview Image Length |
stdcall [exif_get_child], h_child,h_child_siz,0x0202 |
cmp dword[h_child_siz],0 |
je .no_found_child |
stdcall [exif_get_app1_child], h_child,h_child,0x0201 |
;0x0201 - Preview Image Start |
stdcall [exif_get_child], h_child,h_child,0x0201 |
cmp dword[h_child],0 |
je .no_found_child |
;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥ë© ¡ãä¥à ebx |
stdcall [img_decode],dword[h_child],dword[h_child_siz],0 |
cmp dword[eax+4],1 |
jl .no_found_child |
433,15 → 448,16 |
stdcall [buf2d_resize],buf_thumb,[eax+4],[eax+8],1 |
;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥¨¥ ª ä®à¬ âã rgb |
stdcall [img_to_rgb2],ebx,[buf_thumb] |
;㤠«ï¥¬ ¢à¥¬¥ë© ¡ãä¥à ebx |
stdcall [img_destroy],ebx |
stdcall [img_destroy],ebx ;㤠«ï¥¬ ¢à¥¬¥ë© ¡ãä¥à ebx |
stdcall [buf2d_bit_blt], buf_0, 0,15, buf_thumb ;à¨á㥬 ¨§®¡à ¦¥¨¥ |
stdcall [buf2d_draw_text], buf_0, buf_1,txt_thumb,3,3,0xb000 |
mov ebx,43 |
stdcall [buf2d_draw_text], buf_0, buf_1,txt_thumb,3,ebx,0xb000 |
add ebx,10 |
stdcall [buf2d_bit_blt], buf_0, 0,ebx, buf_thumb ;à¨á㥬 ¨§®¡à ¦¥¨¥ |
jmp @f |
.no_found_child: |
stdcall [buf2d_draw_text], buf_0, buf_1,txt_nochild,3,3,0xb000 |
stdcall [buf2d_draw_text], buf_0, buf_1,txt_nochild,3,ebx,0xb000 |
jmp @f |
.open_file: |
stdcall [buf2d_draw_text], buf_0, buf_1,txt_openfile,3,3,0xb000 |
475,10 → 491,10 |
cmp dword[h_child],0 |
je .end_save_file |
;áç¨âë¢ ¥¬ ¤®ç¥à¨¥ ⥣¨ |
stdcall [exif_get_app1_child], h_child,h_child,0x0011 |
stdcall [exif_get_child], h_child,h_child,0x0011 |
cmp dword[h_child],0 |
je .end_save_file |
stdcall [exif_get_app1_child], h_child,h_child,0x0201 |
stdcall [exif_get_child], h_child,h_child,0x0201 |
cmp dword[h_child],0 |
je .end_save_file |
657,15 → 673,19 |
align 4 |
import_exif: ;®¯¨á ¨¥ íªá¯®àâ¨à㥬ëå äãªæ¨© |
exif_get_app1 dd sz_exif_get_app1 |
exif_get_app1_tag dd sz_exif_get_app1_tag |
exif_get_app1_child dd sz_exif_get_app1_child |
exif_get_app2 dd sz_exif_get_app2 |
exif_get_tag dd sz_exif_get_tag |
exif_get_tag_id dd sz_exif_get_tag_id |
exif_get_child dd sz_exif_get_child |
dd 0,0 |
sz_exif_get_app1 db 'exif_get_app1',0 |
sz_exif_get_app1_tag db 'exif_get_app1_tag',0 |
sz_exif_get_app1_child db 'exif_get_app1_child',0 |
sz_exif_get_app2 db 'exif_get_app2',0 |
sz_exif_get_tag db 'exif_get_tag',0 |
sz_exif_get_tag_id db 'exif_get_tag_id',0 |
sz_exif_get_child db 'exif_get_child',0 |
sc system_colors |
align 16 |
/programs/develop/libraries/exif/trunk/about.htm |
---|
52,12 → 52,13 |
<li><a href="#fun">Ôóíêöèè</a></li> |
<ul> |
<li><a href="#f_1">exif_get_app1</a></li> |
<li><a href="#f_2">exif_get_app1_tag</a></li> |
<li><a href="#f_3">exif_get_app1_child</a></li> |
<li><a href="#f_2">exif_get_tag</a></li> |
<li><a href="#f_5">exif_get_tag_id</a></li> |
<li><a href="#f_3">exif_get_child</a></li> |
<li><a href="#f_4">exif_get_app2</a></li> |
</ul> |
</li> |
<li><a href="#const">Êîíñòàíòû äëÿ ôóíêöèè exif_get_app1_child</a></li> |
<li><a href="#const">Êîíñòàíòû äëÿ ôóíêöèè exif_get_child</a></li> |
<li><a href="#tabl_e">Òàáëèöà ýêñïîðòà</a></li> |
<li><a href="#hist">Èñòîðèÿ</a></li> |
</ul> |
86,27 → 87,38 |
<p>ãäå open_file - óêàçàòåëü íà äàííûå ôàéëà èçîáðàæåíèÿ (ïîêà ïîääåðæèâàþòñÿ òîëüêî *.jpg è *.jpeg).</p> |
<p>h_app1 - ñòðóêòóðà äëÿ çàïîìèíàíèÿ íà÷àëà Exif äàííûõ.</p> |
<h4><a name="f_2">exif_get_app1_tag</a></h4> |
<h4><a name="f_2">exif_get_tag</a></h4> |
<p>Çàïîëíÿåò òåêñòîâóþ ñòðîêó èìåíåì ïàðàìåòðà èç Exif è åãî çíà÷åíèåì. Ïðèìåð:</p> |
<pre>stdcall [exif_get_app1_tag], h_app1,3,txt_buf,80 |
<pre>stdcall [exif_get_tag], h_app1,3,txt_buf,80 |
... |
h_app1 rb 14 |
txt_buf rb 80</pre> |
<p>ãäå h_app1 - ñòðóêòóðà çàïîëåííàÿ â exif_get_app1 èëè â exif_get_app1_child.</p> |
<p>ãäå h_app1 - ñòðóêòóðà çàïîëåííàÿ â exif_get_app1 èëè â exif_get_child.</p> |
<p>3 - ïîðÿäêîâûé íîìåð ïàðàìåòðà.</p> |
<p>txt_buf - òåêñòîâûé áóôåð äëÿ çàïîëíåíèÿ.</p> |
<p>80 - ìàêñèìàëüíàÿ äëèíà òåêñòà.</p> |
<h4><a name="f_3">exif_get_app1_child</a></h4> |
<h4><a name="f_5">exif_get_tag_id</a></h4> |
<p>Çàïîëíÿåò òåêñòîâóþ ñòðîêó èìåíåì ïàðàìåòðà èç Exif è åãî çíà÷åíèåì. Ïðèìåð:</p> |
<pre>stdcall [exif_get_tag_id], h_app1,0x010f,txt_buf,80 |
... |
h_app1 rb 14 |
txt_buf rb 80</pre> |
<p>ãäå h_app1 - ñòðóêòóðà çàïîëåííàÿ â exif_get_app1 èëè â exif_get_child.</p> |
<p>0x010f - êîä òåãà â êîòîðîì ñîäåðæèòñÿ íàçâàíèå ïðîèçâîäèòåëÿ êàìåðû.</p> |
<p>txt_buf - òåêñòîâûé áóôåð äëÿ çàïîëíåíèÿ.</p> |
<p>80 - ìàêñèìàëüíàÿ äëèíà òåêñòà.</p> |
<h4><a name="f_3">exif_get_child</a></h4> |
<p>Åñòü ïðîñòûå òåãè ñ èíôîðìàöèåé à åñòü òåãè óêàçûâàþùèå íà ñïèñêè äðóãèõ òåãîâ. Ýòà ôóíêöèÿ áåðåò óêàçàòåëü íà íà÷àëî ñïèñêà äî÷åðíèõ òåãîâ. Ïðèìåð:</p> |
<pre>stdcall [exif_get_app1_child], h_app1,h_child,0x8769 |
<pre>stdcall [exif_get_child], h_app1,h_child,0x8769 |
... |
h_app1 rb 14 |
h_child rb 14</pre> |
<p>ãäå h_app1 - ñòðóêòóðà çàïîëåííàÿ â exif_get_app1 èëè â exif_get_app1_child.</p> |
<p>ãäå h_app1 - ñòðóêòóðà çàïîëåííàÿ â exif_get_app1 èëè â exif_get_child.</p> |
<p>h_child - ñòðóêòóðà äëÿ çàïîëåíèÿ äàííûõ ñïèñêà äî÷åðíèõ òåãîâ.</p> |
<p>0x8769 - êîä òåãà (íàõîäÿùåãîñÿ â ñïèñêå òåãîâ h_app1), êîòîðûé ÿâëÿåòñÿ óêàçàòåëåì íà ñïèñîê äðóãèõ äî÷åðíèõ òåãîâ.</p> |
<p> äàíîì ïðèìåðå ôóíêöèÿ áåðåò òåã 0x8769 è ïûòàåòñÿ íàéòè åãî â ñïèñêå h_app1, åñëè íàõîäèò òî çàïîëíÿåò ïî íåìó çíà÷åíèÿ â ñòðóêòóðå h_child. Äàëåå ê ñïèñêó h_child ìîæíî ïðèìåíÿòü ôóíêöèþ exif_get_app1_tag äëÿ âçÿòèÿ çíà÷åíèÿ ýòèõ òåãîâ. Ñ ïîìîùüþ ýòîé ôóíêöèè ìû êàê áû ïåðåõîäèì âíóòðü íåêîé "ïàïêè" ñ òåãàìè, êîòîðûå ñðàçó äîñòàòü íå ìîæåì.</p> |
<p> äàíîì ïðèìåðå ôóíêöèÿ áåðåò òåã 0x8769 è ïûòàåòñÿ íàéòè åãî â ñïèñêå h_app1, åñëè íàõîäèò òî çàïîëíÿåò ïî íåìó çíà÷åíèÿ â ñòðóêòóðå h_child. Äàëåå ê ñïèñêó h_child ìîæíî ïðèìåíÿòü ôóíêöèþ exif_get_tag äëÿ âçÿòèÿ çíà÷åíèÿ ýòèõ òåãîâ. Ñ ïîìîùüþ ýòîé ôóíêöèè ìû êàê áû ïåðåõîäèì âíóòðü íåêîé "ïàïêè" ñ òåãàìè, êîòîðûå ñðàçó äîñòàòü íå ìîæåì.</p> |
<h4><a name="f_4">exif_get_app2</a></h4> |
<p>Ýòà ôóíêöèÿ èùåò íà÷àëî äàííûõ Exif.app2. Åñëè îíè íàéäåíû òî çàïîëíÿåòñÿ ñòðóêòóðà app2. Åñëè íå íàéäåíû, òî ïåðâûé ïàðàìåòð â ñòðóêòóðå äåëàåòñÿ ðàâíûì 0. Ïðèìåð:</p> |
117,8 → 129,8 |
<p>ãäå h_app1 - ñòðóêòóðà c äàííûìè Exif.app1, ïðåäâàðèòåëüíî çàïîëíåííàÿ ôóíêöèåé exif_get_app1.</p> |
<p>h_app2 - ñòðóêòóðà äëÿ çàïîìèíàíèÿ íà÷àëà äàííûõ Exif.app2.</p> |
<h1><a name="const">Êîíñòàíòû äëÿ ôóíêöèè exif_get_app1_child</a></h1> |
<p>Çäåñü ïðèâåäåíû íåêîòîðûå êîíñòàíòû, êîòîðûå ìîãóò èñïîëüçîâàòñÿ êàê 3-é ïàðàìåòð äëÿ ôóíêöèè exif_get_app1_child. Ýòè êîíñòàíòû îáîçíà÷àþò ñïåöèàëüíûå òåãè, êîòîðûå ñîäåðæàò ñìåùåíèå íà äî÷åðíèå ïàðàìåòðû, êîòîðûå íàõîäÿòñÿ â Exif.</p> |
<h1><a name="const">Êîíñòàíòû äëÿ ôóíêöèè exif_get_child</a></h1> |
<p>Çäåñü ïðèâåäåíû íåêîòîðûå êîíñòàíòû, êîòîðûå ìîãóò èñïîëüçîâàòñÿ êàê 3-é ïàðàìåòð äëÿ ôóíêöèè exif_get_child. Ýòè êîíñòàíòû îáîçíà÷àþò ñïåöèàëüíûå òåãè, êîòîðûå ñîäåðæàò ñìåùåíèå íà äî÷åðíèå ïàðàìåòðû, êîòîðûå íàõîäÿòñÿ â Exif.</p> |
<h4>0x8769</h4> |
<p>Îáîçíà÷àåò äîïîëíèòåëüíûå ïàðàìåòðû Exif.</p> |
<h4>0x8825</h4> |
129,17 → 141,20 |
<pre>align 4 |
import_exif: |
exif_get_app1 dd sz_exif_get_app1 |
exif_get_app1_tag dd sz_exif_get_app1_tag |
exif_get_app1_child dd sz_exif_get_app1_child |
exif_get_app2 dd sz_exif_get_app2 |
exif_get_tag dd sz_exif_get_tag |
exif_get_tag_id dd sz_exif_get_tag_id |
exif_get_child dd sz_exif_get_child |
dd 0,0 |
sz_exif_get_app1 db 'exif_get_app1',0 |
sz_exif_get_app1_tag db 'exif_get_app1_tag',0 |
sz_exif_get_app1_child db 'exif_get_app1_child',0 |
sz_exif_get_app2 db 'exif_get_app2',0</pre> |
sz_exif_get_app2 db 'exif_get_app2',0 |
sz_exif_get_tag db 'exif_get_tag',0 |
sz_exif_get_tag_id db 'exif_get_tag_id',0 |
sz_exif_get_child db 'exif_get_child',0</pre> |
<h1><a name="hist">Èñòîðèÿ</a></h1> |
<p>15.07.14 - ïåðâàÿ âåðñèÿ áèáëèîòåêè, ïðèìåð èñïîëüçîâàíèÿ.</p> |
<p>23.07.14 - äîáàâëåíà ôóíêöèÿ exif_get_app2.</p> |
<p>11.03.16 - äîáàâëåíà ôóíêöèÿ exif_get_tag_id, èçìåíåíû íàçâàíèÿ íåêîòîðûõ ôóíêöèé (óáðàíî app1 ïîòîìó ÷òî îíè ìîãóò ðàáîòàòü íå òîëüêî ñ app1).</p> |
</body> |
</html> |
/programs/develop/libraries/exif/trunk/exif.asm |
---|
928,8 → 928,10 |
; num - ¯®à浪®¢ë© ®¬¥à ⥣ ( ç¨ ¥âáï á 1) |
; txt - 㪠§ ⥫ì ⥪áâ, ªã¤ ¡ã¤¥â § ¯¨á ® § 票¥ |
; t_max - ¬ ªá¨¬ «ìë© à §¬¥à ⥪áâ |
;output: |
; txt - § ¯®«ï¥âáï ⥪á⮬ ¢ ¢¨¤¥ "¯ à ¬¥âà: § 票¥", ¥á«¨ ¥ ©¤¥® â® ¯ãáâ ï áâப |
align 4 |
proc exif_get_app1_tag, app1:dword, num:dword, txt:dword, t_max:dword |
proc exif_get_tag, app1:dword, num:dword, txt:dword, t_max:dword |
pushad |
mov eax,[app1] |
mov edi,[txt] |
968,6 → 970,55 |
endp |
;input: |
; app1 - 㪠§ ⥫ì ç «® exif.app1 |
; id - ¨¤¥â¨ä¨ª â®à ⥣ § 票¥ ª®â®à®£® 㦮 ©â¨ |
; txt - 㪠§ ⥫ì ⥪áâ, ªã¤ ¡ã¤¥â § ¯¨á ® § 票¥ |
; t_max - ¬ ªá¨¬ «ìë© à §¬¥à ⥪áâ |
;output: |
; txt - § ¯®«ï¥âáï ⥪á⮬ ¢ ¢¨¤¥ "¯ à ¬¥âà: § 票¥", ¥á«¨ ¥ ©¤¥® â® ¯ãáâ ï áâப |
align 4 |
proc exif_get_tag_id, app1:dword, id:dword, txt:dword, t_max:dword |
pushad |
mov eax,[app1] |
mov edi,[txt] |
xor edx,edx |
mov byte[edi],dl |
cmp [eax],edx |
je .end_f ;¥á«¨ ¥ ©¤¥ 㪠§ ⥫ì ç «® exif.app1 |
mov ebx,[id] |
movzx edx,word[eax+offs_m_or_i] ;if 'MM' edx=1 |
bt edx,0 |
jnc @f |
ror bx,8 |
@@: |
;¡¥à¥¬ ç¨á«® ⥣®¢ |
mov eax,[eax] |
movzx ecx,word[eax] |
bt edx,0 |
jnc @f |
ror cx,8 |
@@: |
;¢ ecx - ç¨á«® ⥣®¢ |
;¨é¥¬ § ¤ ë© â¥£ |
add eax,offs_tag_0 |
.cycle_0: |
cmp word[eax],bx ;word[eax+0] - ª®¤ ⥣ |
je @f |
add eax,tag_size |
loop .cycle_0 |
jmp .end_f |
@@: |
stdcall read_tag_value,[app1],[t_max] |
.end_f: |
popad |
ret |
endp |
;input: |
; app1 - 㪠§ ⥫ì exif.app1 ¨«¨ exif.app1.child |
; child - 㪠§ â¥«ì ¤«ï § ¯®«¥¨ï ç « ¤®ç¥à¨å ⥣®¢ exif.app1.child |
; c_tag - ⥣ ¤«ï ª®â®à®£® ¤¥« ¥âáï ¯®¨áª ¤®ç¥à¨å |
974,7 → 1025,7 |
;output: |
; child - 㪠§ ⥫ì ç «® ¤®ç¥à¨å ⥣®¢ |
align 4 |
proc exif_get_app1_child, app1:dword, child:dword , c_tag:dword |
proc exif_get_child, app1:dword, child:dword , c_tag:dword |
pushad |
mov eax,[app1] |
mov edi,[child] |
1106,11 → 1157,11 |
.suport: |
; 室¨¬ ⥣ 0x8769 (à áè¨à¥ë¥ ¤ ë¥ ¯® Exif) |
stdcall exif_get_app1_child, eax,edi,0x8769 |
stdcall exif_get_child, eax,edi,0x8769 |
cmp dword[edi],0 |
je .no_suport |
; 室¨¬ ⥣ 0x927c (¤ ë¥ Maker ¯® ª ¬¥à¥) |
stdcall exif_get_app1_child, edi,edi, 0x927c |
stdcall exif_get_child, edi,edi, 0x927c |
cmp dword[edi],0 |
je .no_suport |
1673,11 → 1724,14 |
align 16 |
EXPORTS: |
dd sz_exif_get_app1, exif_get_app1 |
dd sz_exif_get_app1_tag, exif_get_app1_tag |
dd sz_exif_get_app1_child, exif_get_app1_child |
dd sz_exif_get_app2, exif_get_app2 |
dd sz_exif_get_tag, exif_get_tag |
dd sz_exif_get_tag_id, exif_get_tag_id |
dd sz_exif_get_child, exif_get_child |
dd 0,0 |
sz_exif_get_app1 db 'exif_get_app1',0 |
sz_exif_get_app1_tag db 'exif_get_app1_tag',0 |
sz_exif_get_app1_child db 'exif_get_app1_child',0 |
sz_exif_get_app2 db 'exif_get_app2',0 |
sz_exif_get_tag db 'exif_get_tag',0 |
sz_exif_get_tag_id db 'exif_get_tag_id',0 |
sz_exif_get_child db 'exif_get_child',0 |