Subversion Repositories Kolibri OS

Rev

Rev 5010 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. <html>
  2. <head>
  3. <title>áèáëèîòåêà äëÿ ïîëó÷åíèÿ èíôîðìàöèè èç ôîðìàòà Exif</title>
  4. <meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251">
  5. <style>
  6. body
  7. {
  8.   font-size: 15px;
  9.   font-family: "Bookman Old Style";
  10.   color: black;
  11.   text-align: justify;
  12. }
  13. h1 { color: green; font-size: 23px; }
  14. h2 { color: green; font-size: 21px; }
  15. h3 { color: green; font-size: 19px; }
  16. h4 { color: #803f00; font-size: 17px; }
  17. i { color: #0099cc; }
  18. b { color: #0099cc; }
  19. p {
  20.   text-indent: 1em;
  21.   margin-top: 3px;
  22.   margin-bottom: 2px;
  23.   margin-left: 0px;
  24.   margin-right: 0px;
  25. }
  26. ol, ul, dl{
  27.   margin-top: 3px;
  28.   margin-bottom: 2px;
  29. }
  30. pre
  31. {
  32.   padding: 2px;
  33.   padding-left: 20px;
  34.   margin-top: 5px;
  35.   margin-bottom: 5px;
  36.   margin-left: 0px;
  37.   margin-right: 0px;
  38.   font-family: "Courier New";
  39.   font-size: 15px;
  40.   color: #004000;
  41.   background-color: #ffd0ff;
  42. }
  43. table { font-size: 15px; }
  44. </style>
  45. </head>
  46.  
  47. <body>
  48.  
  49. <h1>Îãëàâëåíèå</h1>
  50. <ul>
  51. <li>Âñòóïëåíèå</li>
  52. <li><a href="#fun">Ôóíêöèè</a></li>
  53. <ul>
  54. <li><a href="#f_1">exif_get_app1</a></li>
  55. <li><a href="#f_2">exif_get_tag</a></li>
  56. <li><a href="#f_5">exif_get_tag_id</a></li>
  57. <li><a href="#f_3">exif_get_child</a></li>
  58. <li><a href="#f_4">exif_get_app2</a></li>
  59. </ul>
  60. </li>
  61. <li><a href="#const">Êîíñòàíòû äëÿ ôóíêöèè exif_get_child</a></li>
  62. <li><a href="#tabl_e">Òàáëèöà ýêñïîðòà</a></li>
  63. <li><a href="#hist">Èñòîðèÿ</a></li>
  64. </ul>
  65.  
  66. <h1>Âñòóïëåíèå</h1>
  67. <p>Äîêóìåíòàöèÿ ê ñâîáîäíîé áèáëèîòåêå <b>exif.obj</b>, äëÿ <b>ÎÑ Êîëèáðè</b>.
  68.  Ýòà áèáëèîòåêà ñîçäàíà äëÿ ïðîñìîòðà èíôîðìàöèè íàõîäÿùåéñÿ â èçîáðàæåíèÿõ â ôîðìàòå Exif. Èíôîðìàöèÿ ýòà ñîçäàåòñÿ öèôðîâûìè ôîòîêàìåðàìè è ñîäåðæèò ðàçíûå ïàðàìåòðû íàïðèìåð òàêèå êàê: íàçâàíèå ôèðìû ïðîèçâîäèòåëÿ, ìîäåëü êàìåðû, è ò.ä.</p>
  69.  
  70. <p>Ïîñëåäíåå îáíîâëåíèå áèáëèîòåêè 23.07.14.</p>
  71.  
  72. <h1><a name="fun">Ôóíêöèè</a></h1>
  73.  
  74. <p>Ôóíêöèè ðàáîòàþò ñ óêàçàòåëÿìè íà ñòðóêòóðû app1 èëè íà app1_child. Ïðèìåð ñòðóêòóðû:</p>
  75. <pre>align 4
  76. h_app1:
  77.         dd 0 ;+0 óêàçàòåëü íà êîëè÷åñòâî òåãîâ è íà ñàìè òåãè
  78.         dd 0 ;+4 ñìåùåíèå äîáàâëÿåìîå ê óêàçàòåëÿì â òåãàõ
  79.         dw 0 ;+8 ïàðàìåòð, îòâå÷àþùèé çà ïîðÿäîê ñëåäîâàíèÿ áàéòîâ</pre>
  80.         dw 0 ;+10 èäåíòèôèêàòîð äëÿ ãðóïïû òåãîâ</pre>
  81.  
  82. <h4><a name="f_1">exif_get_app1</a></h4>
  83. <p>Ýòà ôóíêöèÿ èùåò íà÷àëî Exif äàííûõ. Åñëè îíè íàéäåíû òî çàïîëíÿåòñÿ ñòðóêòóðà app1. Åñëè íå íàéäåíû, òî ïåðâûé ïàðàìåòð â ñòðóêòóðå äåëàåòñÿ ðàâíûì 0. Ïðèìåð:</p>
  84. <pre>stdcall [exif_get_app1], [open_file],h_app1
  85. ...
  86. h_app1 rb 14</pre>
  87. <p>ãäå open_file - óêàçàòåëü íà äàííûå ôàéëà èçîáðàæåíèÿ (ïîêà ïîääåðæèâàþòñÿ òîëüêî *.jpg è *.jpeg).</p>
  88. <p>h_app1 - ñòðóêòóðà äëÿ çàïîìèíàíèÿ íà÷àëà Exif äàííûõ.</p>
  89.  
  90. <h4><a name="f_2">exif_get_tag</a></h4>
  91. <p>Çàïîëíÿåò òåêñòîâóþ ñòðîêó èìåíåì ïàðàìåòðà èç Exif è åãî çíà÷åíèåì. Ïðèìåð:</p>
  92. <pre>stdcall [exif_get_tag], h_app1,3,txt_buf,80
  93. ...
  94. h_app1  rb 14
  95. txt_buf rb 80</pre>
  96. <p>ãäå h_app1 - ñòðóêòóðà çàïîëåííàÿ â exif_get_app1 èëè â exif_get_child.</p>
  97. <p>3 - ïîðÿäêîâûé íîìåð ïàðàìåòðà.</p>
  98. <p>txt_buf - òåêñòîâûé áóôåð äëÿ çàïîëíåíèÿ.</p>
  99. <p>80 - ìàêñèìàëüíàÿ äëèíà òåêñòà.</p>
  100.  
  101. <h4><a name="f_5">exif_get_tag_id</a></h4>
  102. <p>Çàïîëíÿåò òåêñòîâóþ ñòðîêó èìåíåì ïàðàìåòðà èç Exif è åãî çíà÷åíèåì. Ïðèìåð:</p>
  103. <pre>stdcall [exif_get_tag_id], h_app1,0x010f,txt_buf,80
  104. ...
  105. h_app1  rb 14
  106. txt_buf rb 80</pre>
  107. <p>ãäå h_app1 - ñòðóêòóðà çàïîëåííàÿ â exif_get_app1 èëè â exif_get_child.</p>
  108. <p>0x010f - êîä òåãà â êîòîðîì ñîäåðæèòñÿ íàçâàíèå ïðîèçâîäèòåëÿ êàìåðû.</p>
  109. <p>txt_buf - òåêñòîâûé áóôåð äëÿ çàïîëíåíèÿ.</p>
  110. <p>80 - ìàêñèìàëüíàÿ äëèíà òåêñòà.</p>
  111.  
  112. <h4><a name="f_3">exif_get_child</a></h4>
  113. <p>Åñòü ïðîñòûå òåãè ñ èíôîðìàöèåé à åñòü òåãè óêàçûâàþùèå íà ñïèñêè äðóãèõ òåãîâ. Ýòà ôóíêöèÿ áåðåò óêàçàòåëü íà íà÷àëî ñïèñêà äî÷åðíèõ òåãîâ. Ïðèìåð:</p>
  114. <pre>stdcall [exif_get_child], h_app1,h_child,0x8769
  115. ...
  116. h_app1  rb 14
  117. h_child rb 14</pre>
  118. <p>ãäå h_app1 - ñòðóêòóðà çàïîëåííàÿ â exif_get_app1 èëè â exif_get_child.</p>
  119. <p>h_child - ñòðóêòóðà äëÿ çàïîëåíèÿ äàííûõ ñïèñêà äî÷åðíèõ òåãîâ.</p>
  120. <p>0x8769 - êîä òåãà (íàõîäÿùåãîñÿ â ñïèñêå òåãîâ h_app1), êîòîðûé ÿâëÿåòñÿ óêàçàòåëåì íà ñïèñîê äðóãèõ äî÷åðíèõ òåãîâ.</p>
  121. <p> äàíîì ïðèìåðå ôóíêöèÿ áåðåò òåã 0x8769 è ïûòàåòñÿ íàéòè åãî â ñïèñêå h_app1, åñëè íàõîäèò òî çàïîëíÿåò ïî íåìó çíà÷åíèÿ â ñòðóêòóðå h_child. Äàëåå ê ñïèñêó h_child ìîæíî ïðèìåíÿòü ôóíêöèþ exif_get_tag äëÿ âçÿòèÿ çíà÷åíèÿ ýòèõ òåãîâ. Ñ ïîìîùüþ ýòîé ôóíêöèè ìû êàê áû ïåðåõîäèì âíóòðü íåêîé &quot;ïàïêè&quot; ñ òåãàìè, êîòîðûå ñðàçó äîñòàòü íå ìîæåì.</p>
  122.  
  123. <h4><a name="f_4">exif_get_app2</a></h4>
  124. <p>Ýòà ôóíêöèÿ èùåò íà÷àëî äàííûõ Exif.app2. Åñëè îíè íàéäåíû òî çàïîëíÿåòñÿ ñòðóêòóðà app2. Åñëè íå íàéäåíû, òî ïåðâûé ïàðàìåòð â ñòðóêòóðå äåëàåòñÿ ðàâíûì 0. Ïðèìåð:</p>
  125. <pre>stdcall [exif_get_app2], h_app1,h_app2
  126. ...
  127. h_app1 rb 14
  128. h_app2 rb 14</pre>
  129. <p>ãäå h_app1 - ñòðóêòóðà c äàííûìè Exif.app1, ïðåäâàðèòåëüíî çàïîëíåííàÿ ôóíêöèåé exif_get_app1.</p>
  130. <p>h_app2 - ñòðóêòóðà äëÿ çàïîìèíàíèÿ íà÷àëà äàííûõ Exif.app2.</p>
  131.  
  132. <h1><a name="const">Êîíñòàíòû äëÿ ôóíêöèè exif_get_child</a></h1>
  133. <p>Çäåñü ïðèâåäåíû íåêîòîðûå êîíñòàíòû, êîòîðûå ìîãóò èñïîëüçîâàòñÿ êàê 3-é ïàðàìåòð äëÿ ôóíêöèè exif_get_child. Ýòè êîíñòàíòû îáîçíà÷àþò ñïåöèàëüíûå òåãè, êîòîðûå ñîäåðæàò ñìåùåíèå íà äî÷åðíèå ïàðàìåòðû, êîòîðûå íàõîäÿòñÿ â Exif.</p>
  134. <h4>0x8769</h4>
  135. <p>Îáîçíà÷àåò äîïîëíèòåëüíûå ïàðàìåòðû Exif.</p>
  136. <h4>0x8825</h4>
  137. <p>Îáîçíà÷àåò ïàðàìåòðû GPS.</p>
  138.  
  139. <h1><a name="tabl_e">Òàáëèöà ýêñïîðòà</a></h1>
  140. <p>Ïðèìåð òàáëèöû ýêñïîðòà, ðàñ÷èòàííîé íà èñïîëüçîâàíèå ìàêðîñà <b>@use_library</b>:</p>
  141. <pre>align 4
  142. import_exif:
  143.         exif_get_app1 dd sz_exif_get_app1
  144.         exif_get_app2 dd sz_exif_get_app2
  145.         exif_get_tag dd sz_exif_get_tag
  146.         exif_get_tag_id dd sz_exif_get_tag_id
  147.         exif_get_child dd sz_exif_get_child
  148. dd 0,0
  149.         sz_exif_get_app1 db 'exif_get_app1',0
  150.         sz_exif_get_app2 db 'exif_get_app2',0
  151.         sz_exif_get_tag db 'exif_get_tag',0
  152.         sz_exif_get_tag_id db 'exif_get_tag_id',0
  153.         sz_exif_get_child db 'exif_get_child',0</pre>
  154.  
  155. <h1><a name="hist">Èñòîðèÿ</a></h1>
  156. <p>15.07.14 - ïåðâàÿ âåðñèÿ áèáëèîòåêè, ïðèìåð èñïîëüçîâàíèÿ.</p>
  157. <p>23.07.14 - äîáàâëåíà ôóíêöèÿ exif_get_app2.</p>
  158. <p>11.03.16 - äîáàâëåíà ôóíêöèÿ exif_get_tag_id, èçìåíåíû íàçâàíèÿ íåêîòîðûõ ôóíêöèé (óáðàíî app1 ïîòîìó ÷òî îíè ìîãóò ðàáîòàòü íå òîëüêî ñ app1).</p>
  159. </body>
  160. </html>