本文整理汇总了C++中LibRaw::COLOR方法的典型用法代码示例。如果您正苦于以下问题:C++ LibRaw::COLOR方法的具体用法?C++ LibRaw::COLOR怎么用?C++ LibRaw::COLOR使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LibRaw
的用法示例。
在下文中一共展示了LibRaw::COLOR方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int ac, char *av[])
{
int i, ret;
int verbose=1,autoscale=0,use_gamma=0;
char outfn[1024];
LibRaw RawProcessor;
if(ac<2)
{
usage:
printf(
"unprocessed_raw - LibRaw %s sample. %d cameras supported\n"
"Usage: %s [-q] [-A] [-g] [-s N] [-N] raw-files....\n"
"\t-q - be quiet\n"
"\t-s N - select Nth image in file (default=0)\n"
"\t-g - use gamma correction with gamma 2.2 (not precise,use for visual inspection only)\n"
"\t-A - autoscaling (by integer factor)\n"
"\t-N - no raw curve\n"
,LibRaw::version(),
LibRaw::cameraCount(),
av[0]);
return 0;
}
#define P1 RawProcessor.imgdata.idata
#define S RawProcessor.imgdata.sizes
#define C RawProcessor.imgdata.color
#define T RawProcessor.imgdata.thumbnail
#define P2 RawProcessor.imgdata.other
#define OUT RawProcessor.imgdata.params
OUT.document_mode=2;
OUT.output_bps=16;
OUT.output_tiff=1;
OUT.user_flip=0;
OUT.no_auto_bright = 1;
OUT.filtering_mode=(LibRaw_filtering)( LIBRAW_FILTERING_NOBLACKS|LIBRAW_FILTERING_NOZEROES);
for (i=1;i<ac;i++)
{
if(av[i][0]=='-')
{
if(av[i][1]=='q' && av[i][2]==0)
verbose=0;
else if(av[i][1]=='A' && av[i][2]==0)
autoscale=1;
else if(av[i][1]=='g' && av[i][2]==0)
use_gamma = 1;
else if(av[i][1]=='N' && av[i][2]==0)
OUT.filtering_mode=LIBRAW_FILTERING_NONE;
else if(av[i][1]=='s' && av[i][2]==0)
{
i++;
OUT.shot_select=atoi(av[i]);
}
else
goto usage;
continue;
}
int c;
if(!use_gamma)
OUT.gamm[0] = OUT.gamm[1] = 1;
if(verbose) printf("Processing file %s\n",av[i]);
if( (ret = RawProcessor.open_file(av[i])) != LIBRAW_SUCCESS)
{
fprintf(stderr,"Cannot open %s: %s\n",av[i],libraw_strerror(ret));
continue; // no recycle b/c open file will recycle itself
}
if(verbose)
{
printf("Image size: %dx%d\nRaw size: %dx%d\n",S.width,S.height,S.raw_width,S.raw_height);
printf("Margins: top=%d, left=%d, right=%d, bottom=%d\n",
S.top_margin,S.left_margin,S.right_margin,S.bottom_margin);
}
if( (ret = RawProcessor.unpack() ) != LIBRAW_SUCCESS)
{
fprintf(stderr,"Cannot unpack %s: %s\n",av[i],libraw_strerror(ret));
continue;
}
if(verbose)
printf("Unpacked....\n");
if( (ret = RawProcessor.add_masked_borders_to_bitmap() ) != LIBRAW_SUCCESS)
{
fprintf(stderr,"Cannot add mask data to bitmap %s\n",av[i]);
}
// move all pixel data to component 0
for(int r=0;r<S.iheight;r++)
for(c=0;c<S.iwidth;c++)
RawProcessor.imgdata.image[r*S.iwidth+c][0]
= RawProcessor.imgdata.image[r*S.iwidth+c][RawProcessor.COLOR(r,c)];
P1.colors=1;
if(autoscale)
{
unsigned max=0,scale;
for(int j=0; j<S.iheight*S.iwidth; j++)
//.........这里部分代码省略.........
示例2: extractRAWData
bool KDcraw::extractRAWData(const QString& filePath, QByteArray& rawData, DcrawInfoContainer& identify, unsigned int shotSelect)
{
QFileInfo fileInfo(filePath);
QString rawFilesExt(rawFiles());
QString ext = fileInfo.suffix().toUpper();
identify.isDecodable = false;
if (!fileInfo.exists() || ext.isEmpty() || !rawFilesExt.toUpper().contains(ext))
return false;
if (m_cancel)
return false;
d->setProgress(0.1);
LibRaw raw;
// Set progress call back function.
raw.set_progress_handler(callbackForLibRaw, d);
int ret = raw.open_file((const char*)(QFile::encodeName(filePath)).constData());
if (ret != LIBRAW_SUCCESS)
{
qCDebug(LIBKDCRAW_LOG) << "LibRaw: failed to run open_file: " << libraw_strerror(ret);
raw.recycle();
return false;
}
if (m_cancel)
{
raw.recycle();
return false;
}
d->setProgress(0.3);
raw.imgdata.params.output_bps = 16;
raw.imgdata.params.shot_select = shotSelect;
ret = raw.unpack();
if (ret != LIBRAW_SUCCESS)
{
qCDebug(LIBKDCRAW_LOG) << "LibRaw: failed to run unpack: " << libraw_strerror(ret);
raw.recycle();
return false;
}
if (m_cancel)
{
raw.recycle();
return false;
}
d->setProgress(0.4);
ret = raw.raw2image();
if (ret != LIBRAW_SUCCESS)
{
qCDebug(LIBKDCRAW_LOG) << "LibRaw: failed to run raw2image: " << libraw_strerror(ret);
raw.recycle();
return false;
}
if (m_cancel)
{
raw.recycle();
return false;
}
d->setProgress(0.6);
Private::fillIndentifyInfo(&raw, identify);
if (m_cancel)
{
raw.recycle();
return false;
}
d->setProgress(0.8);
rawData = QByteArray();
if (raw.imgdata.idata.filters == 0)
{
rawData.resize((int)(raw.imgdata.sizes.iwidth * raw.imgdata.sizes.iheight * raw.imgdata.idata.colors * sizeof(unsigned short)));
unsigned short* output = reinterpret_cast<unsigned short*>(rawData.data());
for (unsigned int row = 0; row < raw.imgdata.sizes.iheight; row++)
{
for (unsigned int col = 0; col < raw.imgdata.sizes.iwidth; col++)
{
for (int color = 0; color < raw.imgdata.idata.colors; color++)
{
*output = raw.imgdata.image[raw.imgdata.sizes.iwidth*row + col][color];
output++;
}
}
//.........这里部分代码省略.........
示例3: libraw_COLOR
int libraw_COLOR(libraw_data_t *lr, int row, int col)
{
if(!lr) return EINVAL;
LibRaw *ip = (LibRaw*) lr->parent_class;
return ip->COLOR(row,col);
}