53 static ossimTrace traceDebug(
"ossimPdfWriter:debug");
54 static ossimTrace traceLog(
"ossimPdfWriter:log");
57 static const std::string AUTHOR_KW =
"Author";
58 static const std::string CREATOR_KW =
"Creator";
59 static const std::string CREATION_DATE_KW =
"CreationDate";
60 static const std::string KEYWORDS_KW =
"Keywords";
61 static const std::string MOD_DATE_KW =
"ModDate";
62 static const std::string PRODUCER_KW =
"Producer";
63 static const std::string SUBJECT_KW =
"Subject";
64 static const std::string TITLE_KW =
"Title";
70 static const char OSSIM_ID[] =
"$Id$";
84 <<
"ossimPdfWriter::ossimPdfWriter entered" << std::endl;
94 setWriteExternalGeometryFlag(
true);
96 theOutputImageType =
"ossim_pdf";
148 static const char MODULE[] =
"ossimPdfWriter::writeStream";
152 << MODULE <<
" entered..." 153 <<
"\nCurrent options:\n" 176 if(((bands == 3) || (bands == 1))&&(scalarType ==
OSSIM_UINT8))
201 << MODULE <<
" exit status = " << (result?
"true":
"false") << std::endl;
222 std::vector<ossim_uint8> binData(4);
229 os.write( (
char*)&binData.front(), binData.size() );
233 str->write( os.str().data(), os.str().size() );
244 std::vector<std::streamoff>& xref )
250 xref.push_back( (std::streamoff)
m_str->tellp() );
253 os << xref.size() <<
" 0 obj\n" 254 <<
" << /Type /Catalog\n" 255 <<
" /Pages " << xref.size()+1 <<
" 0 R\n" 260 str->write( os.str().data(), os.str().size() );
272 std::vector<std::streamoff>& xref )
278 xref.push_back( (std::streamoff)
m_str->tellp() );
281 os << xref.size() <<
" 0 obj\n" 282 <<
" << /Type /Outlines\n" 287 str->write( os.str().data(), os.str().size() );
299 std::vector<std::streamoff>& xref )
305 xref.push_back( (std::streamoff)str->tellp() );
308 os << xref.size() <<
" 0 obj\n" 309 <<
" << /Type /Pages\n" 310 <<
" /Kids [ " << xref.size()+1 <<
" 0 R ]\n" 315 str->write( os.str().data(), os.str().size() );
325 std::vector<std::streamoff>& xref )
331 xref.push_back( (std::streamoff)str->tellp() );
334 os << xref.size() <<
" 0 obj % Document Information Dictionary\n";
341 os <<
" << /Title (" << s <<
")\n";
348 os <<
" /Author (" << s <<
")\n";
355 os <<
" /Creator (" << s <<
")\n";
362 os <<
" /Producer (" << s <<
")\n";
369 os <<
" /CreationDate " << s <<
"\n";
376 os <<
" /ModDate " << s <<
"\n";
382 str->write( os.str().data(), os.str().size() );
425 <<
"\ntilesWide: " << TW
426 <<
"\ntilesHigh: " << TH
427 <<
"\ntileWidth: " << tileWidth
428 <<
"\ntileHeight " << tileHeight << std::endl;
443 std::vector<std::streamoff> xref;
470 xref.push_back( (std::streamoff)str->tellp() );
473 os1 << xref.size() <<
" 0 obj\n" 474 <<
" << /Type /Page\n" 475 <<
" /Parent " << xref.size()-1 <<
" 0 R\n" 476 <<
" /Resources " << xref.size()+1 <<
" 0 R\n" 477 <<
" /MediaBox[0.0 0.0 " << WIDTH <<
" " << HEIGHT <<
"]\n" 479 <<
" /Contents[" << (xref.size()+TILES+3) <<
" 0 R]\n";
485 std::string lgiDictString;
488 if ( lgiDictString.size() )
490 os1 << lgiDictString;
497 str->write( os1.str().data(), os1.str().size() );
510 xref.push_back( (std::streamoff)str->tellp() );
513 os2 << xref.size() <<
" 0 obj % Resource dictionary for page.\n" 514 <<
" << /ProcSet[/PDF/ImageB/ImageC]\n" 515 <<
" /XObject << /Basemap_Form " << (xref.size()+TILES+1) <<
" 0 R ";
521 for (
x = 0;
x < TW; ++
x )
523 for (
y = 0;
y < TH; ++
y )
534 str->write(
os2.str().data(),
os2.str().size() );
576 <<
"ossimPdfWriter::writeImage ERROR:" 577 <<
"\nNULL Tile encountered, tile number=" <<
tileNumber 600 xref.push_back( (std::streamoff)str->tellp() );
611 for (
x = 0;
x < TW; ++
x )
613 for (
y = 0;
y < TH; ++
y )
632 <<
" " << width <<
" 0 0 " << height <<
" " 633 << llOffsetX <<
" " << llOffsetY <<
" cm\n" 641 os4 << xref.size() <<
" 0 obj % /XObject/Form dictionary for image tiles.\n" 642 <<
" << /Type /XObject\n" 643 <<
" /Subtype /Form\n" 644 <<
" /Length " << os3.str().size() <<
"\n" 646 << llPageOffset.
x <<
" " << llPageOffset.
y <<
" " 647 << WIDTH <<
" " << HEIGHT <<
"]\n" 652 os4.write( os3.str().data(), os3.str().size() );
659 str->write( os4.str().data(), os4.str().size() );
664 << os4.str() <<
"\n";
672 xref.push_back( (std::streamoff)str->tellp() );
675 os5 <<
"/Basemap_Form Do";
678 os6 << xref.size() <<
" 0 obj % Contents of page.\n" 679 <<
" << /Length " << os5.str().size() <<
" >>\n" 682 os6.write( os5.str().data(), os5.str().size() );
687 str->write( os6.str().data(), os6.str().size() );
705 std::streamoff xrefOffset = (std::streamoff)
m_str->tellp();
722 std::vector<std::streamoff>& xref,
736 struct jpeg_compress_struct cinfo;
737 struct jpeg_error_mgr jerr;
738 cinfo.err = jpeg_std_error( &jerr );
739 jpeg_create_compress(&cinfo);
756 cinfo.image_width = ossim::min<ossim_uint32>(
757 TW, aoi.
lr().
x -
id->getOrigin().x + 1 );
758 cinfo.image_height = ossim::min<ossim_uint32>(
759 TH, aoi.
lr().
y -
id->getOrigin().y + 1 );
760 cinfo.input_components = BANDS;
765 id->getOrigin().y + cinfo.image_height - 1 ) );
770 cinfo.in_color_space = JCS_RGB;
774 cinfo.in_color_space = JCS_GRAYSCALE;
778 jpeg_set_defaults( &cinfo );
781 jpeg_start_compress( &cinfo,
TRUE );
784 JSAMPLE** samp_array =
new JSAMPLE* [cinfo.image_height];
792 if ( ( BANDS == 1 ) &&
793 ( cinfo.image_width == id->
getWidth() ) &&
794 ( cinfo.image_height == id->
getHeight() ) )
802 0,
OSSIM_UINT8, BANDS, cinfo.image_width, cinfo.image_height );
809 for (
ossim_uint32 row=0; row<cinfo.image_height; ++row )
811 samp_array[row] = (JSAMPLE*) tile + row*cinfo.input_components*cinfo.image_width;
814 jpeg_write_scanlines( &cinfo, samp_array, cinfo.image_height );
820 jpeg_finish_compress( &cinfo );
821 jpeg_destroy_compress( &cinfo );
822 delete [] samp_array;
826 xref.push_back( (std::streamoff)str->tellp() );
829 os1 << xref.size() <<
" 0 obj\n" 830 <<
" << /Type /XObject\n" 831 <<
" /Subtype /Image\n" 832 <<
" /Length " << tileStream.str().size() <<
"\n" 833 <<
" /Filter[/DCTDecode]\n" 834 <<
" /BitsPerComponent 8" 835 <<
" /ColorSpace " << (BANDS==1?
"/DeviceGray\n":
"/DeviceRGB\n")
836 <<
" /Width " << cinfo.image_width
837 <<
" /Height " << cinfo.image_height
841 str->write( os1.str().data(), os1.str().size() );
847 <<
"*** image stream not displayed ***\n" 853 str->write( tileStream.str().data(), tileStream.str().size() );
863 std::vector<std::streamoff>& xref,
874 TW, aoi.
lr().
x -
id->getOrigin().x + 1 );
876 TH, aoi.
lr().
y -
id->getOrigin().y + 1 );
881 id->getOrigin().y + height - 1 ) );
890 if ( ( BANDS == 1 ) && ( width == id->
getWidth() ) && ( height == id->
getHeight() ) )
893 length =
id->getSizeInBytes();
907 xref.push_back( (std::streamoff)str->tellp() );
910 os1 << xref.size() <<
" 0 obj\n" 911 <<
" << /Type /XObject\n" 912 <<
" /Subtype /Image\n" 913 <<
" /Length " << length <<
"\n" 914 <<
" /BitsPerComponent 8" 915 <<
" /ColorSpace " << (BANDS==1?
"/DeviceGray\n":
"/DeviceRGB\n")
916 <<
" /Width " << width
917 <<
" /Height " << height
921 str->write( os1.str().data(), os1.str().size() );
927 <<
"*** image stream not displayed ***\n" 933 str->write( (
char*)tile, length );
943 const std::vector<std::streamoff>& xref )
949 <<
"0 " << (xref.size()+1) <<
"\n" 950 <<
"0000000000 65535 f \n";
952 std::vector<std::streamoff>::const_iterator i = xref.begin();
953 while ( i != xref.end() )
955 os << std::setiosflags(std::ios_base::fixed|std::ios_base::right)
965 str->write( os.str().data(), os.str().size() );
976 std::streamoff xrefOffset )
982 <<
" << /Size " << entrySize <<
"\n" 984 <<
" /Info " << entrySize-1 <<
" 0 R\n" 987 << xrefOffset <<
"\n" 991 str->write( os.str().data(), os.str().size() );
1002 std::vector<std::streamoff>& xref )
1008 xref.push_back( (std::streamoff)str->tellp() );
1011 os << xref.size() <<
" 0 obj % dummy\n" 1014 str->write( os.str().data(), os.str().size() );
1025 const char* prefix)
const 1038 bool result =
false;
1044 result = fs->is_open();
1058 bool result =
false;
1099 imageTypeList.push_back(
ossimString(
"ossim_pdf"));
1109 bool result =
false;
1110 if ( (imageType ==
"ossim_pdf") || (imageType ==
"image/pdf")||(imageType ==
"application/pdf") )
1119 if ( property.
valid() )
1121 std::string name =
property->getName().string();
1125 ( name == AUTHOR_KW ) ||
1126 ( name == CREATOR_KW ) ||
1127 ( name == CREATION_DATE_KW ) ||
1128 ( name == KEYWORDS_KW ) ||
1129 ( name == MOD_DATE_KW ) ||
1131 ( name == PRODUCER_KW ) ||
1132 ( name == SUBJECT_KW ) ||
1133 ( name == TITLE_KW ) )
1152 if ( name == AUTHOR_KW )
1158 prop = stringProp.
get();
1160 else if ( name == CREATOR_KW )
1166 prop = stringProp.
get();
1168 else if ( name == CREATION_DATE_KW )
1174 prop = stringProp.
get();
1189 prop = stringProp.
get();
1191 else if ( name == KEYWORDS_KW )
1197 prop = stringProp.
get();
1199 else if ( name == MOD_DATE_KW )
1205 prop = stringProp.
get();
1221 prop = stringProp.
get();
1223 else if ( name == SUBJECT_KW )
1229 prop = stringProp.
get();
1231 else if ( name == TITLE_KW )
1237 prop = stringProp.
get();
1251 propertyNames.push_back(
ossimString( AUTHOR_KW ) );
1252 propertyNames.push_back(
ossimString( CREATOR_KW ) );
1253 propertyNames.push_back(
ossimString( CREATION_DATE_KW ) );
1255 propertyNames.push_back(
ossimString( KEYWORDS_KW ) );
1256 propertyNames.push_back(
ossimString( MOD_DATE_KW ) );
1258 propertyNames.push_back(
ossimString( PRODUCER_KW ) );
1259 propertyNames.push_back(
ossimString( SUBJECT_KW ) );
1260 propertyNames.push_back(
ossimString( TITLE_KW ) );
1292 <<
"ossimPdfWriter::setupInputChain WARNING:" 1293 <<
"\nData is being scaled to 8 bit!" 1294 <<
"\nOriginal scalar type: " 1296 getEntryString(inputScalar).c_str()
1317 if ( ( bands != 1 ) && ( bands != 3 ) )
1319 std::vector<ossim_uint32> bandList;
1322 bandList.push_back( 0 );
1327 bandList.push_back( 1 );
1328 bandList.push_back( 2 );
1334 <<
"ossimPdfWriter::setupInputChain WARNING:" 1335 <<
"\nOutput bands must be 1 or 3 and are being filterd!" 1336 <<
"\nOriginal band count: " << bands
1337 <<
"\nNew band count: " << bandList.size()
1382 else if ( os ==
"raw" )
1390 <<
"ossimPdfWriter::getImageCompression WARN\n" 1391 <<
"Unhandled image compression type: " << os << std::endl;
1410 if ( key.size() && value.size() )
1419 void ossimPdfWriter::getMediaBoxSize(
ossim_uint32 imageWidth,
1453 std::string& s )
const 1460 std::string ctmString;
1463 if ( ctmString.size() )
1466 std::string projectionString;
1469 if ( projectionString.size() )
1482 std::string descriptionString;
1485 if ( descriptionString.size() )
1494 << descriptionString
1495 <<
"/Type/LGIDict>>]";
1507 std::string& s )
const 1513 if ( mapProj.
valid() )
1528 std::string& s )
const 1534 if ( mapProj.
valid() )
1541 if ( code ==
"WGE" )
1543 s =
"/Description(WGS 84)";
1553 std::string& s )
const 1561 os <<
"/Neatline[(0.0000000000)(0.0000000000)(0.0000000000)(718.0800000000)(609.8400000000)(718.0800000000)(609.8400000000)(0.0000000000)]";
1570 std::string& s )
const 1575 std::string projType;
1579 std::string datumString;
1583 std::string descriptionString;
1586 if ( projType.size() && datumString.size() )
1589 os <<
"/Projection<<" 1591 << descriptionString
1593 <<
"/Type/Projection>>" 1596 << descriptionString
1598 <<
"/Type/Projection>>";
1607 std::string& s )
const 1620 if ( mapProj.
valid() )
1652 os << setprecision(15)
1653 << std::setiosflags(std::ios_base::fixed|std::ios_base::right)
1654 << std::setfill(
'0')
1655 <<
"/CTM[(" << scale.
x <<
")(" << d <<
")(" << d <<
")(" 1656 << scale.
y <<
")(" << dTie.
x <<
")(" << dTie.
y <<
")]";
1675 if ( mapProj.
valid() )
1679 s =
"/ProjectionType(GEOGRAPHIC)";
1686 if ( utmProj.
valid() )
1691 os <<
"/ProjectionType(UT)" 1692 <<
"/Zone(" << zone <<
")" 1693 <<
"/Hemisphere(" << hemisphere <<
")";
1715 if ( mapProj.
valid() )
1725 void ossimPdfWriter::getNumberOfTiles(
ossim_uint32 imageWidth,
1731 size.x = imageWidth / DEFAULT_TILE_DIMENSION;
1732 size.y = imageHeight / DEFAULT_TILE_DIMENSION;
1734 if ( imageWidth % DEFAULT_TILE_DIMENSION )
1738 if ( imageHeight % DEFAULT_TILE_DIMENSION )
1835 tm* gt = gmtime(&now);
1843 dateChars[25] =
'\0';
1844 strftime(dateChars, 26,
"(D:%Y%m%d%H%M%SZ00'00')", gt);
1874 tileSize.
y = tileSize.
x;
1881 os << std::setiosflags(std::ios_base::fixed|std::ios_base::right)
1882 << std::setfill(
'0')
1884 << std::setw(4) <<
x 1886 << std::setw(4) <<
y;
virtual void valueToString(ossimString &valueResult) const =0
virtual ossim_uint32 getWidth() const
void writeHeader(std::ostream *str)
Writes header.
void writeTrailer(std::ostream *str, ossim_uint32 entrySize, std::streamoff xrefOffset)
Writes trailer.
ossimPdfWriter()
default constructor
void getLgiDict(ossimImageGeometry *geom, const ossimIrect &aoi, std::string &s) const
Get the LGIDict string.
std::basic_ostringstream< char > ostringstream
Class for char output memory streams.
virtual ossimString getClassName() const
void getCreator(std::string &s) const
Gets the Creator.
virtual bool isMaster() const
virtual ossimString getShortName() const
virtual const ossim_uint8 * getUcharBuf() const
Represents serializable keyword/value map.
const std::string & findKey(const std::string &key) const
Find methods that take std::string(s).
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.
static const char * OUTPUT_TILE_SIZE_KW
virtual bool writeStream()
Method to write the image to a stream.
const ossimMapProjection * getAsMapProjection() const
virtual ossim_uint32 getPcsCode() const
Returns the EPSG PCS code or 32767 if the projection is a custom (non-EPSG) projection.
virtual bool setOutputStream(std::ostream &stream)
Sets the output stream to write to.
std::string getTileString(ossim_uint32 x, ossim_uint32 y) const
void getLowerLeftPageOffset(const ossimIrect &aoi, ossimIpt &offset) const
Gets the page size.
ossim_int64 getNumberOfTiles() const
void writeXref(std::ostream *str, const std::vector< std::streamoff > &xref)
Writes Cross Reference(xref) section.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
ossim_uint32 height() const
virtual ossimRefPtr< ossimImageData > getNextTile(ossim_uint32 resLevel=0)
void getTitle(std::string &s) const
Gets the Title.
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
ossimIrect theAreaOfInterest
virtual const ossimString & code() const
static ossimString toString(bool aValue)
Numeric to string methods.
virtual bool isGeographic() const
OSSIM_DLL void defaultTileSize(ossimIpt &tileSize)
virtual ossim_uint32 getHeight() const
void addPair(const std::string &key, const std::string &value, bool overwrite=true)
ossimRefPtr< ossimConnectableObject > m_savedInput
Holds the origin end of the chain connected to theInputConnection.
virtual ossim_uint32 saveStateOfAllInputs(ossimKeywordlist &kwl, bool saveThisStateFlag=true, ossim_uint32 objectIndex=1, const char *prefix=0) const
Save the state of all inputs to a keyword list.
Pure virtual base class for image file writers.
ossimDpt getDegreesPerPixel() const
Returns the resolution of this image in degrees/pixel.
void getKeywords(std::string &s) const
Gets the Keywords.
const ossimIpt & ll() const
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
virtual bool write(const char *file, const char *comment=0) const
Methods to dump the ossimKeywordlist to a file on disk.
void getModDate(std::string &s) const
Gets the Producer.
ossimRefPtr< ossimKeywordlist > m_kwl
Holds all options in key, value pair map.
virtual void initialize()
Initialize the data buffer.
void writeJpegTile(std::ostream *str, std::vector< std::streamoff > &xref, ossimImageData *id, const ossimIrect &aoi, ossimIrect &outputTileRect)
Write a JPEG-compresses the raster tile buffer to the output stream provided.
virtual bool isOpen() const
ossimConnectableObject * getInput(ossim_uint32 index=0)
returns the object at the specified index.
ossim_int32 toInt32() const
void getLgiDictProjection(ossimImageGeometry *geom, std::string &s) const
Gets projection part of LGIDict string.
static ossimScalarTypeLut * instance()
Returns the static instance of an ossimScalarTypeLut object.
virtual void setAreaOfInterest(const ossimIrect &areaOfInterest)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
saves the state of the object.
virtual ossimScalarType getOutputScalarType() const
This will be used to query the output pixel type of the tile source.
virtual ossim_uint32 getSizeInBytes() const
Returns the total number of bytes for all bands.
void getSubject(std::string &s) const
Gets the Subject.
virtual const ossimDatum * getDatum() const
bool localToWorld(const ossimDpt &local_pt, ossimGpt &world_pt) const
Exposes the 3D projection from image to world coordinates.
std::string::size_type size() const
ossimRefPtr< ossimImageSourceSequencer > theInputConnection
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
Gets property for name.
ossimFilename theFilename
virtual ossimIrect getBoundingRect(ossim_uint32 resLevel=0) const
This will return the bounding rect of the source.
void getLgiDictProjectionType(ossimImageGeometry *geom, std::string &s) const
Gets neatline part of LGIDict string from geom.
unsigned int ossim_uint32
virtual void getImageTypeList(std::vector< ossimString > &imageTypeList) const
void getImageTypeList(std::vector<ossimString>& imageTypeList)const
virtual ossimIrect getImageRectangle() const
virtual bool open()
Open method.
const ossimIpt & lr() const
static ossimString downcase(const ossimString &aString)
ossim_uint32 getEpsgCode(const ossimImageGeometry *geom) const
Gets the EPSG/PCS code from geometry.
virtual bool hasImageType(const ossimString &imageType) const
bool hasImageType(const ossimString& imageType) const
virtual ossim_int32 connectMyInputTo(ossimConnectableObject *inputObject, bool makeOutputConnection=true, bool createEventFlag=true)
Will try to connect this objects input to the passed in object.
virtual void initialize()
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
ossim_uint32 width() const
virtual ossimRefPtr< ossimImageGeometry > getImageGeometry()
Returns the image geometry object associated with this tile source or NULL if not defined...
std::vector< ossimIrect > outputTileRects
virtual void setProperty(ossimRefPtr< ossimProperty > property)
Will set the property whose name matches the argument "property->getName()".
void addOption(const std::string &key, const std::string &value)
Adds option to m_kwl with mutex lock.
Container class that holds both 2D transform and 3D projection information for an image Only one inst...
virtual void setOrigin(const ossimIpt &origin)
ossimPdfImageType getImageType() const
Gets the enumerated value of IMAGE_TYPE_KW lookup.
bool writeImage(std::ostream *str)
Writes the image dictionary and associated objects.
virtual bool writeFile()
Writes the file to disk or a stream.
virtual ~ossimPdfWriter()
virtual destructor
const ossimProjection * getProjection() const
Access methods for projection (may be NULL pointer).
virtual ossimString getLongName() const
virtual const ossimFilename & getFilename() const
ossim_int64 getNumberOfTilesHorizontal() const
void getTileSize(std::string &s) const
Gets tiles size as string.
virtual void setProperty(ossimRefPtr< ossimProperty > property)
void writeInfo(std::ostream *str, std::vector< std::streamoff > &xref)
Writes document infomation dictionary.
virtual ossimErrorCode getErrorStatus() const
void getGmtDate(std::string &s) const
Get's the date in format of: (D:YYYYMMDDHHmmSSZ00'00')
void setupInputChain()
Writes "dummy" or blank object just to keep object references in line.
virtual void setOutputBandList(const vector< ossim_uint32 > &outputBandList, bool disablePassThru=false)
Sets the output band list.
virtual void close()
Closes file.
void getLgiDictCtm(ossimImageGeometry *geom, const ossimIrect &aoi, std::string &s) const
Gets Coordinate Transformation Matrix(CTM) part of LGIDict string from geom.
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string's contents...
void getLgiDictDatum(ossimImageGeometry *geom, std::string &s) const
Gets datum part of LGIDict string from geom.
ossim_int32 getZone() const
void getProducer(std::string &s) const
Gets the Producer.
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
Pushes this's names onto the list of property names.
ossimFilename file() const
void getCreationDate(std::string &s) const
Gets the Producer.
const ossimIrect & getAreaOfInterest() const
std::basic_ofstream< char > ofstream
Class for char output file streams.
#define RTTI_DEF1(cls, name, b1)
void getAuthor(std::string &s) const
Gets the Author.
char getHemisphere() const
void writeCatalog(std::ostream *str, std::vector< std::streamoff > &xref)
Writes Catalog object.
static const char * IMAGE_TYPE_KW
virtual void setPercentComplete(double percentComplete)
OSSIM_DLL void jpeg_cpp_stream_dest(jpeg_compress_struct *cinfo, std::ostream &stream)
Method which uses memory instead of a FILE* to write to.
ossimFilename & setExtension(const ossimString &e)
Sets the extension of a file name.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
virtual void setTileSize(const ossimIpt &tileSize)
virtual ossimString getExtension() const
Returns a 3-letter extension from the image type descriptor (theOutputImageType) that can be used for...
virtual const ossimIpt & getOrigin() const
unsigned char ossim_uint8
void writePages(std::ostream *str, std::vector< std::streamoff > &xref)
Writes Outlines object.
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
ossim_int64 getNumberOfTilesVertical() const
void getLgiDictDescription(ossimImageGeometry *geom, std::string &s) const
Gets description part of LGIDict string from geom.
std::basic_ostream< char > ostream
Base class for char output streams.
const std::string & string() const
bool isnan(const float &v)
isnan Test for floating point Not A Number (NAN) value.
void writeRawTile(std::ostream *str, std::vector< std::streamoff > &xref, ossimImageData *id, const ossimIrect &aoi, ossimIrect &outputTileRect)
Write raw raster tile buffer to the output stream provided.