LibRaw C API является "оберткой" (wrapper) вокруг С++ API, поэтому практически вся документация к функциям C API является набором гиперссылок на соответствующие места описания C++ API.
Содержание
- Инициализация: libraw_data_t *libraw_init(unsigned int flags);
- Возвращаемые значения
- Загрузка данных из файла
- Вспомогательные функции
- Постобработка данных, эмуляция поведения dcraw
- Запись выходных файлов
- Запись результатов распаковки в память
Инициализация: libraw_data_t *libraw_init(unsigned int flags);
Функция возвращает указатель на экземпляр структуры
libraw_data_t.
Полученный указатель нужно передавать в качестве первого аргумента во все функции C API (кроме libraw_strerror).
Возвращает: NULL при ошибке, указатель на структуру во всех остальных случаях.
Возвращаемые значения
Функции C API возвращают EINVAL (см. errno.h) если им передан нулевой указатель в качестве первого аргумента. Во всех прочих случаях транслируется код возврата C++ API.
Загрузка данных из файла
- int libraw_open_file(libraw_data_t*, const char *)
- int libraw_open_file_ex(libraw_data_t*, const char *,INT64 bigfile_size)
- WIN32: int libraw_open_wfile(libraw_data_t*, const wchar_t *)
- WIN32: int libraw_open_wfile_ex(libraw_data_t*, const wchar_t *,INT64 bigfile_size)
- См. LibRaw::open_file()
- int libraw_open_buffer(libraw_data_t*, void *buffer, size_t bufsize)
- См. LibRaw::open_buffer()
- int libraw_unpack(libraw_data_t*);
- См. LibRaw::unpack()
- int libraw_unpack_thumb(libraw_data_t*);
- См. LibRaw::unpack_thumb()
Вспомогательные функции
- const char* libraw_version()
- См. LibRaw::version()
- const char* libraw_versionNumber()
- См. LibRaw::versionNumber()
- bool LIBRAW_CHECK_VERSION(major,minor,patch)
- См. LIBRAW_CHECK_VERSION в описании C++ API
- int libraw_cameraCount()
- См. LibRaw::cameraCount()
- int libraw_cameraList()
- См. LibRaw::cameraList()
- void libraw_get_decoder_info(libraw_data_t*,libraw_decoder_info_t *);
- См. LibRaw::get_decoder_info()
- void libraw_unpack_function_name(libraw_data_t*);
- См. LibRaw::unpack_function_name()
- void libraw_subtract_black(libraw_data_t*);
- См. LibRaw::subtract_black()
- void libraw_recycle_datastream(libraw_data_t*);
- См. LibRaw::recycle_datastream()
- void libraw_recycle(libraw_data_t*);
- См. LibRaw::recycle()
- void libraw_close(libraw_data_t*);
- См. LibRaw::~LibRaw()
- const char *libraw_strerror(int errorcode);
- См. libraw_strerror
- const char *libraw_streprogress(enum LibRaw_progress);
- См. LibRaw::strprogress
- void libraw_set_memerror_handler(libraw_data_t*, memory_callback cb);
- См. LibRaw::set_memerror_handler()
- void libraw_set_dataerror_handler(libraw_data_t*,data_callback func);
- См. LibRaw::set_dataerror_handler()
- void libraw_set_progress_handler(libraw_data_t*,progress_callback func);
- См. LibRaw::set_progress_handler()
Постобработка данных, эмуляция поведения dcraw
Установка параметров
Параметры постобработки для описанных ниже вызовов ставятся, как и для С++ API, модификацией полей структуры libraw_output_params_t:
libraw_data_t *ptr = libraw_init(0); ptr->params.output_tiff = 1; // выводить в TIFF
Поля структуры описаны в документации на libraw_output_params_t, замечания по их использованию указаны в API notes.
Эмуляция поведения dcraw
- int libraw_raw2image(libraw_data_t*);
- См. LibRaw::raw2image()
- int libraw_free_image(libraw_data_t*);
- См. LibRaw::free_image()
- int libraw_adjust_sizes_info_only(libraw_data_t*);
- См. LibRaw::adjust_sizes_info_only()
- int libraw_dcraw_process(libraw_data_t* lr);
- См. LibRaw::dcraw_process()
Запись выходных файлов
- int libraw_dcraw_ppm_tiff_writer(libraw_data_t* lr,const char *filename);
- См. LibRaw::dcraw_ppm_tiff_writer()
- int libraw_dcraw_thumb_writer(libraw_data_t* lr,const char *fname);
- См. LibRaw::dcraw_thumb_writer()
Запись результатов распаковки в память
- libraw_processed_image_t *libraw_dcraw_make_mem_image(libraw_data_t* lr,int * errcode)
- См. LibRaw::dcraw_make_mem_image()
- libraw_processed_image_t *libraw_dcraw_make_mem_thumb(libraw_data_t* lr,int * errcode)
- См. LibRaw::dcraw_make_mem_thumb()
Новые комментарии