29#include <vigra/tiff.hxx>
30#include <vigra/imageinfo.hxx>
31#include <vigra/transformimage.hxx>
32#include <vigra/functorexpression.hxx>
60 const std::string
comp,
64 const vigra::ImageExportInfo::ICCProfile &
icc)
66 const float dpi = 150;
106 if (
comp ==
"JPEG" )
108 else if (
comp ==
"LZW" )
110 else if (
comp ==
"DEFLATE" )
112 else if (
comp ==
"PACKBITS" )
137 typedef typename ImageAccessor::value_type PixelType;
165 for(
int y=0; y<h; ++y, ++
ys.y, ++
ya.y)
167 PixelType *
pg = (PixelType *)
buf;
168 PixelType * alpha =
pg+1;
173 for(
int x=0; x<
w; ++x, ++
xs.x,
pg+=2, alpha+=2, ++
xa.x)
198 typedef typename ImageAccessor::value_type
PType;
199 typedef typename PType::value_type PixelType;
227 for(
int y=0; y<h; ++y, ++
ys.y, ++
ya.y)
229 PixelType *
pr = (PixelType *)
buf;
230 PixelType *
pg =
pr+1;
231 PixelType *
pb =
pg+1;
232 PixelType * alpha =
pb+1;
237 for(
int x=0; x<
w; ++x, ++
xs.x,
pr+=4,
pg+=4,
pb+=4, alpha+=4, ++
xa.x)
271 vigra::TiffImage *
tiff)
287 vigra::TiffImage *
tiff)
291 mA(vigra::ScalarIntensityTransform<short>(128),
aA);
306 vigra::TiffImage *
tiff)
309 mA(vigra::ScalarIntensityTransform<unsigned short>(256),
aA);
326 vigra::TiffImage *
tiff)
329 mA(vigra::ScalarIntensityTransform<int>(8388608),
aA);
344 vigra::TiffImage *
tiff)
347 mA(vigra::ScalarIntensityTransform<unsigned int>(16777216),
aA);
363 vigra::TiffImage *
tiff)
366 mA(vigra::ScalarIntensityTransform<float>(1.0f/255),
aA);
382 vigra::TiffImage *
tiff)
385 mA(vigra::ScalarIntensityTransform<double>(1.0f/255),
aA);
405 vigra::TiffImage *
tiff)
421 vigra::TiffImage *
tiff)
424 mA(vigra::ScalarIntensityTransform<short>(128),
aA);
437 vigra::TiffImage *
tiff)
440 mA(vigra::ScalarIntensityTransform<unsigned short>(256),
aA);
455 vigra::TiffImage *
tiff)
458 mA(vigra::ScalarIntensityTransform<int>(8388608),
aA);
472 vigra::TiffImage *
tiff)
475 mA(vigra::ScalarIntensityTransform<unsigned int>(16777216),
aA);
490 vigra::TiffImage *
tiff)
493 mA(vigra::ScalarIntensityTransform<float>(1.0f/255),
aA);
508 vigra::TiffImage *
tiff)
511 mA(vigra::ScalarIntensityTransform<double>(1.0f/255),
aA);
525 vigra::TiffImage *
tiff)
547 vigra::pair<AlphaIterator, BImageAccessor> alpha,
548 vigra::TiffImage *
tiff)
551 alpha.first, alpha.second,
tiff);
This class can be used to apply a function when reading the input image.
#define DEBUG_ASSERT(cond)
void createTiffDirectory(vigra::TiffImage *tiff, const std::string &pagename, const std::string &documentname, const std::string comp, uint16_t page, uint16_t nImg, vigra::Diff2D offset, vigra::Size2D fullSize, const vigra::ImageExportInfo::ICCProfile &icc)
write a new Tiff directory, for a new layer
static void createScalarATiffImage(ImageIterator upperleft, ImageIterator lowerright, ImageAccessor a, AlphaIterator alphaUpperleft, AlphaAccessor alphaA, vigra::TiffImage *tiff, int sampleformat)
internal function to create a scalar tiff image with alpha channel
void createAlphaTiffImage(ImageIterator upperleft, ImageIterator lowerright, ImageAccessor a, AlphaIterator alphaUpperleft, AlphaAccessor alphaA, vigra::TiffImage *tiff)
void createRGBATiffImage(ImageIterator upperleft, ImageIterator lowerright, ImageAccessor a, AlphaIterator alphaUpperleft, AlphaAccessor alphaA, vigra::TiffImage *tiff, int sampleformat)
internal function to create a RGB tiff image with alpha channel
Implementation of fast vector type with support of linear algebra operations Copyright (C) 2009 Lukáš...
static void exec(ImageIterator iUL, ImageIterator iLR, ImageAccessor iA, AlphaIterator aUL, AlphaAccessor aA, vigra::TiffImage *tiff)
static void exec(ImageIterator iUL, ImageIterator iLR, ImageAccessor iA, AlphaIterator aUL, AlphaAccessor aA, vigra::TiffImage *tiff)
static void exec(ImageIterator iUL, ImageIterator iLR, ImageAccessor iA, AlphaIterator aUL, AlphaAccessor aA, vigra::TiffImage *tiff)
static void exec(ImageIterator iUL, ImageIterator iLR, ImageAccessor iA, AlphaIterator aUL, AlphaAccessor aA, vigra::TiffImage *tiff)
static void exec(ImageIterator iUL, ImageIterator iLR, ImageAccessor iA, AlphaIterator aUL, AlphaAccessor aA, vigra::TiffImage *tiff)
static void exec(ImageIterator iUL, ImageIterator iLR, ImageAccessor iA, AlphaIterator aUL, AlphaAccessor aA, vigra::TiffImage *tiff)
static void exec(ImageIterator iUL, ImageIterator iLR, ImageAccessor iA, AlphaIterator aUL, AlphaAccessor aA, vigra::TiffImage *tiff)
static void exec(ImageIterator iUL, ImageIterator iLR, ImageAccessor iA, AlphaIterator aUL, AlphaAccessor aA, vigra::TiffImage *tiff)
static void exec(ImageIterator iUL, ImageIterator iLR, ImageAccessor iA, AlphaIterator aUL, AlphaAccessor aA, vigra::TiffImage *tiff)
static void exec(ImageIterator iUL, ImageIterator iLR, ImageAccessor iA, AlphaIterator aUL, AlphaAccessor aA, vigra::TiffImage *tiff)
static void exec(ImageIterator iUL, ImageIterator iLR, ImageAccessor iA, AlphaIterator aUL, AlphaAccessor aA, vigra::TiffImage *tiff)
static void exec(ImageIterator iUL, ImageIterator iLR, ImageAccessor iA, AlphaIterator aUL, AlphaAccessor aA, vigra::TiffImage *tiff)
static void exec(ImageIterator iUL, ImageIterator iLR, ImageAccessor iA, AlphaIterator aUL, AlphaAccessor aA, vigra::TiffImage *tiff)
static void exec(ImageIterator iUL, ImageIterator iLR, ImageAccessor iA, AlphaIterator aUL, AlphaAccessor aA, vigra::TiffImage *tiff)
std::vector< deghosting::BImagePtr > threshold(const std::vector< deghosting::FImagePtr > &inputImages, const double threshold, const uint16_t flags)
Threshold function used for creating alpha masks for images.