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
|
/*
* Copyright (C) 2005 - 2016 René Rebe
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2. A copy of the GNU General
* Public License can be found in the file LICENSE.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANT-
* ABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
* Public License for more details.
*
* Alternatively, commercial licensing options are available from the
* copyright holder ExactCODE GmbH Germany.
*/
#include "Codecs.hh"
#include <tiffconf.h>
#include <tiffio.h>
// not TIFFCodec due the TIFFCodec in libtiff itself ...
class TIFCodec : public ImageCodec {
public:
TIFCodec ();
TIFCodec (TIFF* ctx);
~TIFCodec ();
virtual std::string getID () { return "TIFF"; };
virtual int readImage (std::istream* stream, Image& image, const std::string& decompres, int index);
virtual bool writeImage (std::ostream* stream, Image& image,
int quality, const std::string& compress);
// for multi-page writing
virtual ImageCodec* instanciateForWrite (std::ostream* stream, const std::string& compress);
virtual bool Write (Image& image,
int quality, const std::string& compress, int index);
private:
static bool writeImageImpl (TIFF* out, const Image& image, const std::string& compress, int page = 0);
TIFF* tiffCtx;
};
|