27#include <libopenraw/consts.h>
28#include <libopenraw/types.h>
31#include "cfapattern.hpp"
43#define CHECK_PTR(p, r) \
48or_error or_get_extract_rawdata(
const char *filename, uint32_t options,
49 ORRawDataRef *rawdata)
51 or_error ret = OR_ERROR_NONE;
54 *pRawData = RawData::getAndExtractRawData(filename, options, ret);
58ORRawDataRef or_rawdata_new(
void)
61 return reinterpret_cast<ORRawDataRef
>(rawdata);
64or_error or_rawdata_release(ORRawDataRef rawdata)
66 if (rawdata == NULL) {
67 return OR_ERROR_NOTAREF;
69 delete reinterpret_cast<RawData *
>(rawdata);
73or_data_type or_rawdata_format(ORRawDataRef rawdata)
75 return reinterpret_cast<RawData *
>(rawdata)->dataType();
78void *or_rawdata_data(ORRawDataRef rawdata)
80 return reinterpret_cast<RawData *
>(rawdata)->data();
83size_t or_rawdata_data_size(ORRawDataRef rawdata)
85 return reinterpret_cast<RawData *
>(rawdata)->size();
88void or_rawdata_dimensions(ORRawDataRef rawdata, uint32_t *width,
96 *height = t->height();
100void or_rawdata_get_roi(ORRawDataRef rawdata, uint32_t *x, uint32_t *y,
101 uint32_t *width, uint32_t *height)
111 *width = t->roi_width();
113 if (height != NULL) {
114 *height = t->roi_height();
118uint32_t or_rawdata_bpc(ORRawDataRef rawdata)
120 return reinterpret_cast<RawData *
>(rawdata)->bpc();
123or_cfa_pattern or_rawdata_get_cfa_pattern_type(ORRawDataRef rawdata)
125 return reinterpret_cast<RawData *
>(rawdata)->cfaPattern()->patternType();
128ORCfaPatternRef or_rawdata_get_cfa_pattern(ORRawDataRef rawdata)
130 return reinterpret_cast<ORCfaPatternRef
>(
reinterpret_cast<RawData *
>(rawdata)->cfaPattern());
133uint32_t or_rawdata_get_compression(ORRawDataRef rawdata)
135 return reinterpret_cast<RawData *
>(rawdata)->compression();
138or_error or_rawdata_get_levels(ORRawDataRef rawdata, uint16_t *black,
143 *black = t->blackLevel();
146 *white = t->whiteLevel();
148 return OR_ERROR_NONE;
151const double *or_rawdata_get_colour_matrix(ORRawDataRef rawdata, uint32_t index,
154 uint32_t matrix_size = 0;
156 const double *matrix =
nullptr;
182or_error or_rawdata_get_rendered_image(ORRawDataRef rawdata,
183 ORBitmapDataRef bitmapdata,
187 CHECK_PTR(rawdata, OR_ERROR_NOTAREF);
189 *
reinterpret_cast<BitmapData *
>(bitmapdata), options);
const double * getColourMatrix1(uint32_t &size) const
::or_error getRenderedImage(BitmapData &bitmapdata, uint32_t options)
const double * getColourMatrix2(uint32_t &size) const
CIFF is the container for CRW files. It is an attempt from Canon to make this a standard....