File: API-overview-rus.html

package info (click to toggle)
libraw 0.14.6-2%2Bdeb7u1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 5,728 kB
  • sloc: cpp: 14,132; sh: 10,692; ansic: 10,229; makefile: 87
file content (72 lines) | stat: -rw-r--r-- 3,981 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Обзор LibRaw API (C++)</title>
  </head>

  <body>
    <a href=index-rus.html>[вернуться к оглавлению]</a>
    <h1>Обзор LibRaw API (C++)</h1>
    <h2>Общие положения</h2>
    <ol>
      <li>Вся обработка ведется экземпляром класса LibRaw - обработчиком изображений.</li>
      <li>Один обработчик изображений одновременно может обрабатывать только один исходный файл, последовательно -
      сколько угодно файлов.</li>
      <li>В программе (например, в разных threads) могут одновременно работать несколько обработчиков, хотя следует
        учитывать, что потребление памяти в обработчике может быть значительным.</li>
      <li>Чтение исходных данных RAW-файла практически не требует настроек (об исключениях сказано в <a
          href="API-notes-rus.html">API Notes</a>).</li>
      <li>Все данные, извлеченные из RAW-файла доступны через поля данных обработчика (экземпляра класса LibRaw).</li>
      <li>Несмотря на то, что LibRaw <b>не предназначена для постобработки RAW-данных</b>, в библиотеку включены
        вызовы, позволяющие полностью воспроизвести поведение утилиты <b>dcraw</b>.
      <li>Все настройки обработки производятся через поля данных класса LibRaw.</li>
    </ol>
        
    <h2>Краткая демонстрация</h2>
    <p> 
      Пример ниже не содержит какой-либо обработки ошибок в целях компактности демонстрации
    </p>
    <pre>
#include "libraw/libraw.h"
int process_image(char *file)
{
        // Cоздадим обработчик изображений
        LibRaw iProcessor;

        // Открыть файл и считать метаданные
        iProcessor.open_file(file);

        // Метаданные доступны в <a href="API-datastruct-rus.html">полях данных класса</a>
        printf("Image size: %d x %d\n",iProcessor.imgdata.sizes.width,iProcessor.imgdata.sizes.height);

        // Распакуем изображение
        iProcessor.unpack();
        
        // Преобразуем из iProcessor.rawdata... в iProcessor.image
        iProcessor.raw2image();

        // И напечатаем его дамп, данные доступны в <a href="API-datastruct-rus.html">полях данных класса</a>
        for(i = 0;i lt; iProcessor.imgdata.sizes.iwidth *  iProcessor.imgdata.sizes.iheight; i++)
           printf("i=%d R=%d G=%d B=%d G2=%d\n",
                        i,
                        iProcessor.imgdata.image[i][0],
                        iProcessor.imgdata.image[i][1],
                        iProcessor.imgdata.image[i][2],
                        iProcessor.imgdata.image[i][3]
                );

        // Освободим процессор для работы со следующим изображением
        iProcessor.recycle();
}
</pre>


    <a href=index-rus.html>[вернуться к оглавлению]</a>
    <hr>
    <address><a href="mailto:info@libraw.org">LibRaw Team</a></address>
<!-- Created: Sun Mar 16 09:15:41 MSK 2008 -->
<!-- hhmts start -->
Last modified: Mon Oct 24 13:10:54 MSD 2011
<!-- hhmts end -->
  </body>
</html>