00001 //------------------------------------------------------------------------------ 00002 // This file is part of the OpenStructure project <www.openstructure.org> 00003 // 00004 // Copyright (C) 2008-2011 by the OpenStructure authors 00005 // Copyright (C) 2003-2010 by the IPLT authors 00006 // 00007 // This library is free software; you can redistribute it and/or modify it under 00008 // the terms of the GNU Lesser General Public License as published by the Free 00009 // Software Foundation; either version 3.0 of the License, or (at your option) 00010 // any later version. 00011 // This library is distributed in the hope that it will be useful, but WITHOUT 00012 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00013 // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 00014 // details. 00015 // 00016 // You should have received a copy of the GNU Lesser General Public License 00017 // along with this library; if not, write to the Free Software Foundation, Inc., 00018 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00019 //------------------------------------------------------------------------------ 00020 #ifndef OST_IO_MAP_IO_IPL_HANDLER_HH 00021 #define OST_IO_MAP_IO_IPL_HANDLER_HH 00022 00023 00024 /* 00025 Andreas Schenk 00026 */ 00027 00028 #include "map_io_handler.hh" 00029 00030 namespace ost { namespace io { 00031 00032 class DLLEXPORT_OST_IO IPL: public ImageFormatBase 00033 { 00034 00035 public: 00036 00037 IPL(bool normalize_on_save = true, Format bit_depth = OST_DEFAULT_FORMAT); 00038 00039 Format GetBitDepth() const; 00040 void SetBitDepth ( Format bitdepth); 00041 00042 00043 bool GetNormalizeOnSave() const; 00044 void SetNormalizeOnSave(bool normalize_on_save=true); 00045 Real GetMaximum() const; 00046 Real GetMinimum() const; 00047 static String FORMAT_STRING; 00048 00049 private: 00050 bool normalize_on_save_; 00051 Format bit_depth_; 00052 00053 }; 00054 00055 class DLLEXPORT_OST_IO MapIOIPLHandler: public MapIOHandler 00056 { 00057 public: 00061 virtual void Import(img::MapHandle& sh, const boost::filesystem::path& loc,const ImageFormatBase& formatstruct ); 00062 virtual void Import(img::MapHandle& sh, std::istream& loc, const ImageFormatBase& formatstruct); 00063 virtual void Export(const img::MapHandle& sh, const boost::filesystem::path& loc, const ImageFormatBase& formatstruct) const; 00064 virtual void Export(const img::MapHandle& sh, std::ostream& loc,const ImageFormatBase& formatstruct) const; 00065 static bool MatchContent(unsigned char* header); 00066 static bool MatchType(const ImageFormatBase& type); 00067 static bool MatchSuffix(const String& loc); 00068 static bool ProvidesImport() { return true; } 00069 static bool ProvidesExport() { return true; } 00070 static String GetFormatName() { return String("IPL"); } 00071 static String GetFormatDescription() {return String("Ditabis Micron Image Plate Scanner Format");} 00072 }; 00073 00074 typedef MapIOHandlerFactory<MapIOIPLHandler> MapIOIPLHandlerFactory; 00075 00076 }} // ns 00077 00078 #endif