41 static ossimTrace traceDebug(
"ossimOpjJp2Writer:debug");
43 static const ossimIpt DEFAULT_TILE_SIZE(1024, 1024);
50 static const char OSSIM_ID[] =
"$Id$";
56 m_ownsStreamFlag(false),
69 <<
"ossimOpjJp2Writer::ossimOpjJp2Writer entered" << std::endl;
88 m_ownsStreamFlag(false),
90 m_do_geojp2(typeName.contains(
"ossim_opj_geojp2")),
91 m_do_gmljp2(typeName.contains(
"ossim_opj_gmljp2"))
101 <<
"ossimOpjJp2Writer::ossimOpjJp2Writer entered" << std::endl;
117 if ( !m_do_geojp2 && !m_do_gmljp2 )
159 ossim_uint32 xBoundaryAdjustFactor = DEFAULT_TILE_SIZE.
x - (imageSize.x % DEFAULT_TILE_SIZE.x);
160 ossim_uint32 yBoundaryAdjustFactor = DEFAULT_TILE_SIZE.y - (imageSize.y % DEFAULT_TILE_SIZE.y);
161 imageLr.x += xBoundaryAdjustFactor;
162 imageLr.y += yBoundaryAdjustFactor;
163 areaOfInterest.
set_lr(imageLr);
200 static const char MODULE[] =
"ossimOpjJp2Writer::write";
205 << MODULE <<
" entered..." << endl;
226 << MODULE <<
" DEBUG:" 227 <<
"\noutputTilesWide: " << outputTilesWide
228 <<
"\noutputTilesHigh: " << outputTilesHigh
229 <<
"\nnumberOfTiles: " << numberOfTiles
268 std::vector<ossim_uint8> jp2cHdr;
269 copyData( origJp2cBoxPos, 8, jp2cHdr );
286 std::vector<ossim_uint8> geotiffHdr;
287 copyData( origJp2cBoxPos, 8, geotiffHdr );
309 << MODULE <<
" ERROR:" 310 <<
"Error returned writing tile: " 319 << MODULE <<
" ERROR:" 320 <<
"Error returned writing tile: " <<
tileNumber 358 copyData( origJp2cBoxPos, 8, jp2cHdr );
362 m_outputStream->write( (
char*)&geotiffHdr.front(), geotiffHdr.size() );
376 << MODULE <<
" exit status = " << (result?
"true":
"false\n")
420 <<
"ossimOpjJp2Writer::open()\n" 421 <<
"File " <<
theFilename << (result ?
" opened" :
" not opened")
444 const char* prefix)
const 484 imageTypeList.push_back(
"ossim_opj_geojp2" );
485 imageTypeList.push_back(
"ossim_opj_gmljp2" );
502 (imageType ==
"image/jp2") ||
503 (imageType ==
"image/j2k") ||
504 (imageType ==
"ossim_opj_geojp2") ||
505 (imageType ==
"ossim_opj_gmljp2") )
537 tmpFile +=
"-tmp.tif";
571 const std::streamoff& pos ,
ossim_uint32 size, std::vector<ossim_uint8>& data )
const 578 str.seekg( pos, std::ios_base::beg );
579 str.read( (
char*)&data.front(),
size );
virtual void slaveProcessTiles()
static const char * OVERVIEW_FILE_KW
void finish()
Finish method.
bool writeGeotiffBox(std::ostream *stream, const ossimImageGeometry *geom, const ossimIrect &rect, const ossimFilename &tmpFile, ossimPixelType pixelType)
Writes the geotiff box to the jp2.
void create(std::ostream *os, ossimScalarType scalar, ossim_uint32 bands, const ossimIrect &imageRect, const ossimIpt &tileSize, bool jp2)
Create method.
virtual void computeAlphaChannel()
Computes the alpha channel.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
bool needsAborting() const
virtual bool isMaster() const
Represents serializable keyword/value map.
virtual void setToStartOfSequence()
static const ossimErrorCode OSSIM_OK
virtual ossim_uint32 getNumberOfOutputBands() const
Returns the number of bands in a tile returned from this TileSource.
std::basic_ifstream< char > ifstream
Class for char input file streams.
const char * find(const char *key) const
ossim_int64 getNumberOfTiles() const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual bool isOpen() const
virtual ossimRefPtr< ossimImageData > getNextTile(ossim_uint32 resLevel=0)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual bool writeFile()
Writes the file to disk or a stream.
virtual ossimDataObjectStatus getDataObjectStatus() const
bool writeGmlBox(std::ostream *stream, ossimOpjCompressor *compressor)
virtual ossimString getShortName() const
Pure virtual base class for image file writers.
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
Pushes this's names onto the list of property names.
virtual ossimString getClassName() const
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
virtual ossimString getExtension() const
Returns a 3-letter extension from the image type descriptor (theOutputImageType) that can be used for...
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
virtual void setAreaOfInterest(const ossimIrect &areaOfInterest)
virtual ossimScalarType getOutputScalarType() const
This will be used to query the output pixel type of the tile source.
virtual bool getOutputHasInternalOverviews(void) const
Examples of writers that always generate internal overviews are ossim_kakadu_jp2 and ossim_kakadu_nit...
virtual const char * what() const
Returns the error message.
virtual ossimString getShortName() const
std::string::size_type size() const
ossimRefPtr< ossimImageSourceSequencer > theInputConnection
ossimFilename theFilename
bool toBool() const
String to numeric methods.
virtual ossimIrect getBoundingRect(ossim_uint32 resLevel=0) const
This will return the bounding rect of the source.
unsigned int ossim_uint32
virtual ~ossimOpjJp2Writer()
bool hasImageType(const ossimString &imageType) const
const ossimIpt & lr() const
virtual ossimPixelType getPixelType() const
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
virtual bool writeStream()
Method to write the image to a stream.
virtual ossimRefPtr< ossimImageGeometry > getImageGeometry()
Returns the image geometry object associated with this tile source or NULL if not defined...
virtual void setProperty(ossimRefPtr< ossimProperty > property)
Will set the property whose name matches the argument "property->getName()".
ossim_int64 getNumberOfTilesHorizontal() const
void set_lr(const ossimIpt &pt)
virtual ossimErrorCode getErrorStatus() const
virtual ossimString getLongName() const
ossimFilename fileNoExtension() const
void copyData(const std::streamoff &pos, ossim_uint32 size, std::vector< ossim_uint8 > &data) const
Hack to copy bytes to vector so we can re-write them.
ossimOpjCompressor * m_compressor
bool writeGeotiffBox(std::ostream *stream, ossimOpjCompressor *compressor)
std::ostream * m_outputStream
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string's contents...
const ossimIrect & getAreaOfInterest() const
std::basic_ofstream< char > ofstream
Class for char output file streams.
virtual bool setOutputStream(std::ostream &stream)
Sets the output stream to write to.
virtual void getImageTypeList(std::vector< ossimString > &imageTypeList) const
void getImageTypeList(std::vector<ossimString>& imageTypeList)const
#define RTTI_DEF1(cls, name, b1)
virtual void setPercentComplete(double percentComplete)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
saves the state of the object.
virtual void setTileSize(const ossimIpt &tileSize)
bool writeGmlBox(std::ostream *stream, const ossimImageGeometry *geom, const ossimIrect &rect)
Writes the gml box to the jp2.
bool getAlphaChannelFlag() const
Retrieve the writer's setting for whether or not to add an alpha channel to the output png image...
void openJp2Codestream()
Calls "open_codestream" on the m_jp2Target.
bool writeTile(ossimImageData *srcTile, ossim_uint32 tileIndex)
Write tile method.
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
ossim_int64 getNumberOfTilesVertical() const
std::basic_ostream< char > ostream
Base class for char output streams.