Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

JpegFile.h

Go to the documentation of this file.
00001 /* 00002 * steghide 0.5.1 - a steganography program 00003 * Copyright (C) 1999-2003 Stefan Hetzl <shetzl@chello.at> 00004 * 00005 * This program is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU General Public License 00007 * as published by the Free Software Foundation; either version 2 00008 * of the License, or (at your option) any later version. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License 00016 * along with this program; if not, write to the Free Software 00017 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00018 * 00019 */ 00020 00021 #ifndef SH_JPEGFILE_H 00022 #define SH_JPEGFILE_H 00023 00024 #include "common.h" 00025 00026 #ifdef USE_LIBJPEG 00027 00028 #include <vector> 00029 00030 extern "C" { 00031 #include <stdio.h> 00032 #include <jpeglib.h> 00033 } 00034 00035 class BinaryIO ; 00036 #include "CvrStgFile.h" 00037 class SampleValue ; 00038 00045 class JpegFile : public CvrStgFile { 00046 public: 00047 JpegFile (BinaryIO* io) ; 00048 ~JpegFile (void) ; 00049 00050 void read (BinaryIO* io) ; 00051 void write (void) ; 00052 00053 std::list<CvrStgFile::Property> getProperties (void) const ; 00054 std::vector<MatchingAlgorithm*> getMatchingAlgorithms (Graph* g, Matching* m) const ; 00055 00056 unsigned long getNumSamples (void) const ; 00057 void replaceSample (const SamplePos pos, const SampleValue* s) ; 00058 SampleValue* getSampleValue (const SamplePos pos) const ; 00059 EmbValue getEmbeddedValue (const SamplePos pos) const ; 00060 00061 #ifdef DEBUG 00062 std::map<SampleKey,unsigned long>* getFrequencies (void) ; 00069 void printFrequencies (const std::map<SampleKey,unsigned long>& freqs) ; 00070 #endif 00071 00072 private: 00074 static const unsigned int CoeffPerBlock = 64 ; 00075 00076 static const unsigned short SamplesPerVertex = 3 ; 00077 static const UWORD32 Radius = 1 ; 00078 static const EmbValue EmbValueModulus = 2 ; 00079 00080 struct jpeg_compress_struct CInfo ; 00081 struct jpeg_decompress_struct DeCInfo ; 00082 unsigned int* HeightInBlocks ; 00083 unsigned int* WidthInBlocks ; 00084 jvirt_barray_ptr* DctCoeffs ; 00085 00086 std::vector<SWORD16> LinDctCoeffs ; 00087 std::vector<UWORD32> StegoIndices ; 00088 } ; 00089 00090 #endif // def USE_LIBJPEG 00091 00092 #endif // ndef SH_JPEGFILE_H

Generated on Fri Jul 16 19:41:21 2004 for steghide by doxygen 1.3.7