Subversion Repositories Kolibri OS

Rev

Rev 5007 | Rev 5009 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5007 IgorA 1
2
3
библиотека для получения информации из формата Exif
4
5
45
46
 
47
48
 
49

Оглавление

50
    51
  • Вступление
  • 52
  • Функции
  • 53
      54
    • exif_get_app1
    • 55
    • exif_get_app1_tag
    • 56
    • exif_get_app1_child
    • 57
       
      58
      59
      60
    • Константы для функции exif_get_app1_child
    • 61
    • Таблица экспорта
    • 62
    • История
    • 63
      64
       
      65

      Вступление

      66

      Документация к свободной библиотеке exif.obj, для ОС Колибри.

      67
       Эта библиотека создана для просмотра информации находящейся в изображениях в формате Exif. Информация эта создается цифровыми фотокамерами и содержит разные параметры например такие как: название фирмы производителя, модель камеры, и т.д.

      68
       
      5008 IgorA 69

      Последнее обновление библиотеки 22.07.14.

      5007 IgorA 70
       
      71

      Функции

      72
       
      73

      Функции работают с указателями на структуры app1 или на app1_child. Пример структуры:

      74
      align 4
      75
      h_app1:
      76
      	dd 0 ;+0 указатель на количество тегов и на сами теги
      77
      	dd 0 ;+4 смещение добавляемое к указателям в тегах
      5008 IgorA 78
      	dw 0 ;+8 параметр, отвечающий за порядок следования байтов
      79
      	dw 0 ;+10 идентификатор для группы тегов
      5007 IgorA 80
       
      81

      exif_get_app1

      82

      Эта функция ищет начало Exif данных. Если они найдены то заполняется структура app1. Если не найдены, то первый параметр в структуре делается равным 0. Пример:

      83
      stdcall [exif_get_app1], [open_file],h_app1
      84
      ...
      85
      h_app1 dd 0,0,0
      86

      где open_file - указатель на данные файла изображения (пока поддерживаются только *.jpg и *.jpeg).

      87

      h_app1 - структура для запоминания начала Exif данных.

      88
       
      89

      exif_get_app1_tag

      90

      Заполняет текстовую строку именем параметра из Exif и его значением. Пример:

      91
      stdcall [exif_get_app1_tag], h_app1,3,txt_buf,80
      92
      ...
      93
      h_app1 dd 0,0,0
      94
      txt_buf rb 80
      95

      где h_app1 - структура заполенная в exif_get_app1 или в exif_get_app1_child.

      96

      3 - порядковый номер параметра.

      97

      txt_buf - текстовый буфер для заполнения.

      98

      80 - максимальная длина текста.

      99
       
      100

      exif_get_app1_child

      101

      Есть простые теги с информацией а есть теги указывающие на списки других тегов. Эта функция берет указатель на начало списка дочерних тегов. Пример:

      102
      stdcall [exif_get_app1_child], h_app1,h_child,0x8769
      103
      ...
      104
      h_app1  dd 0,0,0
      105
      h_child dd 0,0,0
      106

      где h_app1 - структура заполенная в exif_get_app1 или в exif_get_app1_child.

      107

      h_child - структура для заполения данных списка дочерних тегов.

      108

      0x8769 - код тега (находящегося в списке тегов h_app1), который является указателем на список других дочерних тегов.

      109

      В даном примере функция берет тег 0x8769 и пытается найти его в списке h_app1, если находит то заполняет по нему значения в структуре h_child. Далее к списку h_child можно применять функцию exif_get_app1_tag для взятия значения этих тегов. С помощью этой функции мы как бы переходим внутрь некой "папки" с тегами, которые сразу достать не можем.

      110
       
      111

      Константы для функции exif_get_app1_child

      112

      Здесь приведены некоторые константы, которые могут использоватся как 3-й параметр для функции exif_get_app1_child. Эти константы обозначают специальные теги, которые содержат смещение на дочерние параметры, которые находятся в Exif.

      113

      0x8769

      114

      Обозначает дополнительные параметры Exif.

      115

      0x8825

      116

      Обозначает параметры GPS.

      117
       
      118

      Таблица экспорта

      119

      Пример таблицы экспорта, расчитанной на использование макроса @use_library_mem:

      120
      align 4
      121
      import_exif:
      122
      	exif_get_app1 dd sz_exif_get_app1
      123
      	exif_get_app1_tag dd sz_exif_get_app1_tag
      124
      	exif_get_app1_child dd sz_exif_get_app1_child
      125
      dd 0,0
      126
      	sz_exif_get_app1 db 'exif_get_app1',0
      127
      	sz_exif_get_app1_tag db 'exif_get_app1_tag',0
      128
      	sz_exif_get_app1_child db 'exif_get_app1_child',0
      129
       
      130

      История

      131

      15.07.14 - первая версия библиотеки, пример использования.

      132
      133