JpegFile.h
Go to the documentation of this file.
/*
* steghide 0.5.1 - a steganography program
* Copyright (C) 1999-2003 Stefan Hetzl <shetzl@chello.at>
*
* 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; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
#ifndef SH_JPEGFILE_H
#define SH_JPEGFILE_H
#include "common.h"
#ifdef USE_LIBJPEG
#include <vector>
extern "C" {
#include <stdio.h>
#include <jpeglib.h>
}
class BinaryIO ;
#include "CvrStgFile.h"
class SampleValue ;
class JpegFile : public CvrStgFile {
public:
JpegFile (BinaryIO* io) ;
~JpegFile (void) ;
void read (BinaryIO* io) ;
void write (void) ;
std::list<CvrStgFile::Property> getProperties (void) const ;
std::vector<MatchingAlgorithm*> getMatchingAlgorithms (Graph* g, Matching* m) const ;
unsigned long getNumSamples (void) const ;
void replaceSample (const SamplePos pos, const SampleValue* s) ;
SampleValue* getSampleValue (const SamplePos pos) const ;
EmbValue getEmbeddedValue (const SamplePos pos) const ;
#ifdef DEBUG
std::map<SampleKey,unsigned long>* getFrequencies (void) ;
void printFrequencies (const std::map<SampleKey,unsigned long>& freqs) ;
#endif
private:
static const unsigned int CoeffPerBlock = 64 ;
static const unsigned short SamplesPerVertex = 3 ;
static const UWORD32 Radius = 1 ;
static const EmbValue EmbValueModulus = 2 ;
struct jpeg_compress_struct CInfo ;
struct jpeg_decompress_struct DeCInfo ;
unsigned int* HeightInBlocks ;
unsigned int* WidthInBlocks ;
jvirt_barray_ptr* DctCoeffs ;
std::vector<SWORD16> LinDctCoeffs ;
std::vector<UWORD32> StegoIndices ;
} ;
#endif // def USE_LIBJPEG
#endif // ndef SH_JPEGFILE_H
CvrStgFile::getEmbeddedValue
virtual EmbValue getEmbeddedValue(const SamplePos pos) const
Definition: CvrStgFile.cc:111
CvrStgFile::getMatchingAlgorithms
virtual std::vector< MatchingAlgorithm * > getMatchingAlgorithms(Graph *g, Matching *m) const
Definition: CvrStgFile.cc:103
Graph
a graph constructed from a cover file and a message to be embedded
Definition: Graph.h:51
CvrStgFile
a cover-/stego-file
Definition: CvrStgFile.h:46
SamplePos
UWORD32 SamplePos
Definition: common.h:67
CvrStgObject::getSampleValue
virtual SampleValue * getSampleValue(const SamplePos pos) const =0
SampleValue
the value of a sample in a CvrStgFile
Definition: SampleValue.h:61
UWORD32
unsigned long UWORD32
Definition: common.h:45
Matching
represent a matching on a graph
Definition: Matching.h:41
BinaryIO
provides methods for file i/o as needed by the rest of steghide
Definition: BinaryIO.h:33
CvrStgObject::getNumSamples
virtual unsigned long getNumSamples(void) const =0
CvrStgFile.h
common.h
EmbValue
BYTE EmbValue
Definition: common.h:66
CvrStgFile::write
virtual void write(void)
Definition: CvrStgFile.cc:68
CvrStgFile::getProperties
virtual std::list< Property > getProperties(void) const =0
CvrStgFile::read
virtual void read(BinaryIO *io)
Definition: CvrStgFile.cc:63
CvrStgObject::replaceSample
virtual void replaceSample(const SamplePos pos, const SampleValue *s)=0