ByteImage.h
Go to the documentation of this file.
00001 // ****************************************************************************
00002 // This file is part of the Integrating Vision Toolkit (IVT).
00003 //
00004 // The IVT is maintained by the Karlsruhe Institute of Technology (KIT)
00005 // (www.kit.edu) in cooperation with the company Keyetech (www.keyetech.de).
00006 //
00007 // Copyright (C) 2014 Karlsruhe Institute of Technology (KIT).
00008 // All rights reserved.
00009 //
00010 // Redistribution and use in source and binary forms, with or without
00011 // modification, are permitted provided that the following conditions are met:
00012 //
00013 // 1. Redistributions of source code must retain the above copyright
00014 //    notice, this list of conditions and the following disclaimer.
00015 //
00016 // 2. Redistributions in binary form must reproduce the above copyright
00017 //    notice, this list of conditions and the following disclaimer in the
00018 //    documentation and/or other materials provided with the distribution.
00019 //
00020 // 3. Neither the name of the KIT nor the names of its contributors may be
00021 //    used to endorse or promote products derived from this software
00022 //    without specific prior written permission.
00023 //
00024 // THIS SOFTWARE IS PROVIDED BY THE KIT AND CONTRIBUTORS “AS IS” AND ANY
00025 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00026 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00027 // DISCLAIMED. IN NO EVENT SHALL THE KIT OR CONTRIBUTORS BE LIABLE FOR ANY
00028 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00029 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00030 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00031 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00032 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
00033 // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00034 // ****************************************************************************
00035 // ****************************************************************************
00036 // Filename:  ByteImage.h
00037 // Author:    Pedram Azad
00038 // Date:      2004
00039 // ****************************************************************************
00040 // Changes:   24.07.2008, Miguel Bernal Marin
00041 //            * Added methods LoadFromFilePNM and SaveToFilePNM
00042 // ****************************************************************************
00054 #ifndef __BYTE_IMAGE_H__
00055 #define __BYTE_IMAGE_H__
00056 
00057 
00058 
00059 // ****************************************************************************
00060 // CByteImage
00061 // ****************************************************************************
00062 
00080 class CByteImage
00081 {
00082 public:
00086         enum ImageType
00087         {
00089                 eGrayScale,
00091                 eRGB24,
00093                 eRGB24Split
00094         };
00095 
00096         
00104         CByteImage();
00105         
00120         CByteImage(int nImageWidth, int nImageHeight, ImageType imageType, bool bHeaderOnly = false);
00121         
00134         CByteImage(const CByteImage *pImage, bool bHeaderOnly = false);
00135 
00148         CByteImage(const CByteImage &image, bool bHeaderOnly = false);
00149         
00153         ~CByteImage();
00154         
00155 
00156         // public methods
00157 
00172         void Set(int nImageWidth, int nImageHeight, ImageType imageType, bool bHeaderOnly = false);
00173 
00180         bool IsCompatible(const CByteImage *pImage) const;
00181         
00193         bool LoadFromFile(const char *pFileName);
00194 
00207         bool SaveToFile(const char *pFileName) const;
00208 
00209 
00210 
00211 private:
00212         // private structs
00213         struct myBITMAPFILEHEADER
00214         { 
00215                 unsigned short bfType;
00216                 unsigned int bfSize;
00217                 unsigned short bfReserved1;
00218                 unsigned short bfReserved2;
00219                 unsigned int bfOffBits;
00220         };
00221         
00222         struct myBITMAPINFOHEADER
00223         {
00224                 unsigned int biSize;
00225                 unsigned int biWidth;
00226                 int biHeight;
00227                 unsigned short biPlanes;
00228                 unsigned short biBitCount;
00229                 unsigned int biCompression;
00230                 unsigned int biSizeImage;
00231                 unsigned int biXPelsPerMeter;
00232                 unsigned int biYPelsPerMeter;
00233                 unsigned int biClrUsed;
00234                 unsigned int biClrImportant;
00235         };
00236         
00237         // private methods
00238         void FreeMemory();
00239         
00240         bool LoadFromFilePNM(const char *pFileName);
00241         bool SaveToFilePNM(const char *pFileName) const;
00242         
00243         bool LoadFromFileBMP(const char *pFileName);
00244         bool SaveToFileBMP(const char *pFileName) const;
00245 
00246 
00247 public:
00248         // public attributes - not clean OOP design but easy access
00249 
00257         int width;
00258 
00264         int height;
00265 
00273         int bytesPerPixel;
00274 
00283         unsigned char *pixels;
00284  
00292         ImageType type;
00293 
00301         bool m_bOwnMemory;
00302 };
00303 
00304 
00305 
00306 #endif /* __BYTE_IMAGE_H__ */


asr_ivt
Author(s): Allgeyer Tobias, Hutmacher Robin, Kleinert Daniel, Meißner Pascal, Scholz Jonas, Stöckle Patrick
autogenerated on Thu Jun 6 2019 21:46:57