OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
ossimJpegWriter Class Reference

#include <ossimJpegWriter.h>

Inheritance diagram for ossimJpegWriter:
ossimImageFileWriter ossimImageWriter ossimProcessInterface ossimConnectableObjectListener ossimOutputSource ossimListener ossimSource ossimConnectableObject ossimErrorStatusInterface ossimObject ossimListenerManager ossimPropertyInterface ossimReferenced

Public Member Functions

 ossimJpegWriter ()
 default constructor More...
 
virtual void getImageTypeList (std::vector< ossimString > &imageTypeList) const
 void getImageTypeList(std::vector<ossimString>& imageTypeList)const More...
 
virtual void setQuality (ossim_int32 quality)
 Sets the jpeg compression quality. More...
 
virtual bool isOpen () const
 
virtual bool open ()
 
virtual void close ()
 
virtual bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 saves the state of the object. More...
 
virtual bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 Method to the load (recreate) the state of an object from a keyword list. More...
 
virtual void setProperty (ossimRefPtr< ossimProperty > property)
 Will set the property whose name matches the argument "property->getName()". More...
 
virtual ossimRefPtr< ossimPropertygetProperty (const ossimString &name) const
 
virtual void getPropertyNames (std::vector< ossimString > &propertyNames) const
 Pushes this's names onto the list of property names. More...
 
virtual ossimString getExtension () const
 Returns a 3-letter extension from the image type descriptor (theOutputImageType) that can be used for image file extensions. More...
 
bool hasImageType (const ossimString &imageType) const
 bool hasImageType(const ossimString& imageType) const More...
 
- Public Member Functions inherited from ossimImageFileWriter
 ossimImageFileWriter (const ossimFilename &filename=ossimFilename(), ossimImageSource *inputSource=0, ossimObject *owner=0)
 The writer will own the sequencer. More...
 
virtual ~ossimImageFileWriter ()
 
virtual ossimObjectgetObject ()
 
virtual const ossimObjectgetObject () const
 
virtual bool getOutputHasInternalOverviews (void) const
 Examples of writers that always generate internal overviews are ossim_kakadu_jp2 and ossim_kakadu_nitf_j2k. More...
 
virtual void setTileSize (const ossimIpt &tileSize)
 Sets the output image tiling size if supported by the writer. More...
 
virtual bool writeEnviHeaderFile ()
 Will write an envi header file. More...
 
virtual bool writeErsHeaderFile ()
 Will write an ER Mapper header file. More...
 
virtual bool writeExternalGeometryFile ()
 Will write an external geometry file. More...
 
virtual bool writeFgdcFile ()
 Will write an fgdc file. More...
 
virtual bool writeHistogramFile ()
 Returns true on success, false on error. More...
 
virtual bool writeJpegWorldFile ()
 Will write a jpeg world file. More...
 
virtual bool writeOverviewFile (ossim_uint16 tiff_compress_type=1, ossim_int32 jpeg_compress_quality=75, bool includeR0=false)
 Write out an ossim overview file from the source_file. More...
 
virtual bool writeReadmeFile ()
 Will write a readme file. More...
 
virtual bool writeTiffWorldFile ()
 Will write a world file. More...
 
virtual bool writeWorldFile ()
 Will write a world file. More...
 
virtual bool writeMetaDataFiles ()
 Convenience method that calls meta data write methods that are flagged to be called. More...
 
virtual void setAreaOfInterest (const ossimIrect &inputRect)
 
virtual void changeSequencer (ossimImageSourceSequencer *sequencer)
 Sets the sequencer and connects it to the input of this. More...
 
virtual ossimImageSourceSequencergetSequencer ()
 
virtual void initialize ()
 Initialize method. More...
 
virtual bool execute ()
 Calls: writeFile() writeMetaDataFiles() More...
 
virtual bool writeStream ()
 Method to write the image to a stream. More...
 
virtual bool setOutputStream (ossimRefPtr< ossimOStream > stream)
 Sets the output stream to write to. More...
 
virtual bool setOutputStream (std::ostream &str)
 tmp drb More...
 
virtual ossimRefPtr< ossimOStreamgetOutputStream () const
 Method to return the stream attached to output. More...
 
virtual void setPercentComplete (double percentComplete)
 
virtual void setOutputImageType (ossim_int32 type)
 
virtual void setOutputImageType (const ossimString &type)
 
virtual ossim_int32 getOutputImageType () const
 
virtual ossimString getOutputImageTypeString () const
 
virtual void setOutputName (const ossimString &outputName)
 
virtual void setFilename (const ossimFilename &file)
 
virtual const ossimFilenamegetFilename () const
 
virtual bool canConnectMyInputTo (ossim_int32 inputIndex, const ossimConnectableObject *object) const
 required to be overriden by derived classes More...
 
virtual void disconnectInputEvent (ossimConnectionEvent &event)
 
virtual void connectInputEvent (ossimConnectionEvent &event)
 
virtual void propertyEvent (ossimPropertyEvent &event)
 
virtual bool getWriteImageFlag () const
 Control flags... More...
 
virtual bool getWriteHistogramFlag () const
 
virtual bool getWriteOverviewFlag () const
 
virtual bool getScaleToEightBitFlag () const
 
virtual bool getWriteEnviHeaderFlag () const
 
virtual bool getWriteErsHeaderFlag () const
 
virtual bool getWriteExternalGeometryFlag () const
 
virtual bool getWriteFgdcFlag () const
 
virtual bool getWriteJpegWorldFileFlag () const
 
virtual bool getWriteReadmeFlag () const
 
virtual bool getWriteTiffWorldFileFlag () const
 
virtual bool getWriteWorldFileFlag () const
 
virtual void setWriteImageFlag (bool flag)
 
virtual void setWriteOverviewFlag (bool flag)
 
virtual void setWriteHistogramFlag (bool flag)
 
virtual void setScaleToEightBitFlag (bool flag)
 
virtual void setWriteEnviHeaderFlag (bool flag)
 
virtual void setWriteErsHeaderFlag (bool flag)
 
virtual void setWriteExternalGeometryFlag (bool flag)
 
virtual void setWriteFgdcFlag (bool flag)
 
virtual void setWriteJpegWorldFile (bool flag)
 
virtual void setWriteReadme (bool flag)
 
virtual void setWriteTiffWorldFile (bool flag)
 
virtual void setWriteWorldFile (bool flag)
 
virtual ossim_uint16 getOverviewCompressType () const
 
virtual ossim_int32 getOverviewJpegCompressQuality () const
 
virtual void setOverviewCompressType (ossim_uint16 type)
 
virtual void setOverviewJpegCompressQuality (ossim_int32 quality)
 
virtual bool addListener (ossimListener *listener)
 Overrides base "addListener" this will capture the pointer and then call the base class "addListener". More...
 
virtual bool removeListener (ossimListener *listener)
 Overrides base "removeListener". More...
 
virtual void setPixelType (ossimPixelType type)
 If "point" the coordinate tie points are relative to the center of the pixel. More...
 
virtual void setPixelType (const ossimString &type)
 If "point" the coordinate tie points are relative to the center of the pixel. More...
 
virtual ossimPixelType getPixelType () const
 
virtual void getPixelTypeString (ossimString &type) const
 
- Public Member Functions inherited from ossimImageWriter
 ossimImageWriter (ossimObject *owner=NULL)
 
 ossimImageWriter (ossimObject *owner, ossim_uint32 numberOfInputs, ossim_uint32 numberOfOutputs, bool inputListIsFixed, bool outputListIsFixed)
 
virtual ~ossimImageWriter ()
 
virtual bool setViewingRect (const ossimIrect &aRect)
 
virtual ossimIrect getAreaOfInterest () const
 
- Public Member Functions inherited from ossimOutputSource
 ossimOutputSource (ossimObject *owner=NULL)
 
 ossimOutputSource (ossimObject *owner, ossim_uint32 inputListSize, ossim_uint32 outputListSize, bool inputListIsFixedFlag=true, bool outputListIsFixedFlag=true)
 
virtual ~ossimOutputSource ()
 
virtual bool open (const ossimString &outputName)
 
virtual const ossimStringgetOutputName ()
 
- Public Member Functions inherited from ossimSource
 ossimSource (ossimObject *owner=0)
 
 ossimSource (ossimObject *owner, ossim_uint32 inputListSize, ossim_uint32 outputListSize, bool inputListIsFixedFlag=true, bool outputListIsFixedFlag=true)
 
virtual ~ossimSource ()
 
virtual bool isSourceEnabled () const
 
virtual void enableSource ()
 
virtual void disableSource ()
 
virtual bool getEnableFlag () const
 
virtual void setEnableFlag (bool flag)
 
virtual bool isInitialized () const
 
virtual void setInitializedFlag (bool flag)
 
virtual std::ostream & print (std::ostream &out) const
 Outputs theErrorStatus as an ossimErrorCode and an ossimString. More...
 
- Public Member Functions inherited from ossimConnectableObject
 ossimConnectableObject (ossimObject *owner=0)
 Base constructor of this object. More...
 
 ossimConnectableObject (ossimObject *owner, ossim_int32 inputListSize, ossim_int32 outputListSize, bool inputListIsFixedFlag=true, bool outputListIsFixedFlag=true)
 
virtual ~ossimConnectableObject ()
 
void setId (const ossimId &id)
 All connectable objects will have id's. More...
 
const ossimIdgetId () const
 Will allow us to get this object's id. More...
 
const ossimObjectgetOwner () const
 Fetches the current owner, most likely a container but not limited to one. More...
 
virtual void changeOwner (ossimObject *owner)
 Permits changing the object's owner. More...
 
virtual void setDescription (const ossimString &description)
 
virtual ossimString getDescription () const
 
virtual bool isConnected (ossimConnectableObjectDirectionType direction=CONNECTABLE_DIRECTION_INPUT) const
 will check the direction specified to see if all slots are full. More...
 
 OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findConnectableObject(const ossimId &id))
 
 OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findObjectOfType(RTTItypeid typeId, ossimConnectableObjectDirectionType directionType, bool recurse=true))
 
 OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findObjectOfType(const ossimString &obj, ossimConnectableObjectDirectionType directionType, bool recurse=true))
 
 OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findInputObjectOfType(const ossimString &className))
 
virtual ossim_int32 findInputIndex (const ossimConnectableObject *object)
 Return a valid index of the input list if the passed in object is found else return -1. More...
 
virtual ossim_int32 findInputIndex (const ossimId &id)
 Return a valid index of the input list if the passed id is found else return -1. More...
 
virtual ossim_int32 findOutputIndex (const ossimConnectableObject *object)
 Return a valid index of the output list if the passed in object is found else return -1. More...
 
virtual ossim_int32 findOutputIndex (const ossimId &id)
 Return a valid index of the output list if the passed in object is found else return -1. More...
 
virtual ossim_int32 getMyInputIndexToConnectTo (ossimConnectableObject *object) const
 Should return the first available index to connect to. More...
 
virtual ossim_int32 getMyOutputIndexToConnectTo (ossimConnectableObject *object) const
 Should return the first available index to connect to. More...
 
virtual bool canConnectMyOutputTo (ossim_int32 myOutputIndex, const ossimConnectableObject *object) const
 default implementation is to allow anyone to connect to us. More...
 
virtual void disconnect (ossimConnectableObject *object=0)
 Will disconnect the object passed in. More...
 
virtual void disconnect (const ossimId &id)
 Will disconnect the object passed in. More...
 
virtual ossimRefPtr< ossimConnectableObjectdisconnectMyInput (ossim_int32 inputIndex, bool disconnectOutputFlag=true, bool createEventFlag=true)
 Will disconnect the object at the given input index and generate a connection event. More...
 
virtual void disconnectMyInput (ossimConnectableObject *input, bool disconnectOutputFlag=true, bool createEventFlag=true)
 Finds the index of the passed in input and calls disconnectMyInput(inputIndex, disconnectOutputFlag, createEventFlag);. More...
 
virtual void disconnectMyInputs (ConnectableObjectList &inputList, bool disconnectOutputFlag=true, bool createEventFlag=true)
 
virtual ossimRefPtr< ossimConnectableObjectdisconnectMyOutput (ossim_int32 outputIndex, bool disconnectInputFlag=true, bool createEventFlag=true)
 Will disconnect the object at the given output index and generate a connection event. More...
 
virtual void disconnectMyOutput (ossimConnectableObject *output, bool disconnectInputFlag=true, bool createEventFlag=true)
 Will disconnect the output object. More...
 
virtual void disconnectMyOutputs (ConnectableObjectList &outputList, bool disconnectOutputFlag=true, bool createEventFlag=true)
 
virtual void disconnectAllInputs ()
 Will disconnect all of the input objects. More...
 
virtual void disconnectAllOutputs ()
 Will disconnect all of the output objects. More...
 
virtual ossim_int32 connectMyInputTo (ossimConnectableObject *inputObject, bool makeOutputConnection=true, bool createEventFlag=true)
 Will try to connect this objects input to the passed in object. More...
 
virtual ossim_int32 connectMyInputTo (ossim_int32 inputIndex, ossimConnectableObject *inputObject, bool makeOutputConnection=true, bool createEventFlag=true)
 Will connect the specified input to the passed in object. More...
 
virtual bool connectMyInputTo (ConnectableObjectList &inputList, bool makeOutputConnection=true, bool createEventFlag=true)
 
virtual ossim_int32 connectMyOutputTo (ossimConnectableObject *outputObject, bool makeInputConnection=true, bool createEventFlag=true)
 Will try to connect this objects output to the passed in object. More...
 
virtual bool connectMyOutputTo (ConnectableObjectList &outputList, bool makeInputConnection=true, bool createEventFlag=true)
 
virtual bool connectInputList (ConnectableObjectList &inputList)
 Will disconnect itself from all inputs and reset to the passed in input list. More...
 
virtual bool connectOutputList (ConnectableObjectList &outputList)
 Will disconnect itself from all outputs and reset to the passed in output list. More...
 
virtual ossim_uint32 getNumberOfInputs () const
 Returns the number of input objects. More...
 
virtual ossim_uint32 getNumberOfOutputs () const
 Return the number of output objects. More...
 
ossimConnectableObjectgetInput (ossim_uint32 index=0)
 returns the object at the specified index. More...
 
const ossimConnectableObjectgetInput (ossim_uint32 index=0) const
 returns the object at the specified index. More...
 
ossimConnectableObjectgetOutput (ossim_uint32 index=0)
 returns the object at the specified index. More...
 
const ossimConnectableObjectgetOutput (ossim_uint32 index=0) const
 returns the object at the specified index. More...
 
virtual void setNumberOfInputs (ossim_int32 numberOfInputs)
 Will set the number of inputs. More...
 
virtual bool getInputListIsFixedFlag () const
 
virtual bool getOutputListIsFixedFlag () const
 
virtual void setNumberOfOutputs (ossim_int32 numberOfInputs)
 Will set the number of outputs. More...
 
const ConnectableObjectListgetInputList () const
 
const ConnectableObjectListgetOutputList () const
 
ConnectableObjectListgetInputList ()
 
ConnectableObjectListgetOutputList ()
 
 OSSIM_DEPRECATE_METHOD (virtual void findAllObjectsOfType(ConnectableObjectList &result, const RTTItypeid &typeInfo, bool recurse=true))
 
 OSSIM_DEPRECATE_METHOD (virtual void findAllObjectsOfType(ConnectableObjectList &result, const ossimString &className, bool recurse=true))
 
virtual void propagateEventToOutputs (ossimEvent &event)
 
virtual void propagateEventToInputs (ossimEvent &event)
 
virtual void setProperty (const ossimString &name, const ossimString &value)
 
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. More...
 
virtual bool fillContainer (ossimConnectableContainer &container)
 Inserts this object and all of its children and inputs into the container provided. More...
 
bool moveInputUp (const ossimId &id)
 Moves the input connection matching id up one in the connection list. More...
 
bool moveInputDown (const ossimId &id)
 Moves the input connection matching id down one in the connection list. More...
 
bool moveInputToTop (const ossimId &id)
 Moves the input connection matching id to the top of the connection list. More...
 
bool moveInputToBottom (const ossimId &id)
 Moves the input connection matching id to the bottom of the connection list. More...
 
virtual void accept (ossimVisitor &visitor)
 We will add a visitor interface for all connectable objects. More...
 
- Public Member Functions inherited from ossimObject
 ossimObject ()
 
virtual ~ossimObject ()
 
virtual ossimObjectdup () const
 
virtual ossimString getShortName () const
 
virtual ossimString getLongName () const
 
virtual ossimString getClassName () const
 
virtual RTTItypeid getType () const
 
virtual bool canCastTo (ossimObject *obj) const
 
virtual bool canCastTo (const RTTItypeid &id) const
 
virtual bool canCastTo (const ossimString &parentClassName) const
 
virtual bool isEqualTo (const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const
 
- Public Member Functions inherited from ossimReferenced
 ossimReferenced ()
 
 ossimReferenced (const ossimReferenced &)
 
ossimReferencedoperator= (const ossimReferenced &)
 
void ref () const
 increment the reference count by one, indicating that this object has another pointer which is referencing it. More...
 
void unref () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
void unref_nodelete () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
int referenceCount () const
 
- Public Member Functions inherited from ossimListenerManager
 ossimListenerManager ()
 
virtual ~ossimListenerManager ()
 
virtual void fireEvent (ossimEvent &event)
 
virtual bool findListener (ossimListener *listener)
 
- Public Member Functions inherited from ossimPropertyInterface
 ossimPropertyInterface ()
 
virtual ~ossimPropertyInterface ()
 
virtual ossimString getPropertyValueAsString (const ossimString &name) const
 
void getPropertyList (std::vector< ossimRefPtr< ossimProperty > > &propertyList) const
 
void setProperties (std::vector< ossimRefPtr< ossimProperty > > &propertyList)
 
- Public Member Functions inherited from ossimErrorStatusInterface
 ossimErrorStatusInterface ()
 
virtual ~ossimErrorStatusInterface ()
 
virtual ossimErrorCode getErrorStatus () const
 
virtual ossimString getErrorStatusString () const
 
virtual void setErrorStatus (ossimErrorCode error_status) const
 
virtual void setErrorStatus () const
 
virtual void clearErrorStatus () const
 
bool hasError () const
 
- Public Member Functions inherited from ossimProcessInterface
 ossimProcessInterface ()
 
virtual ~ossimProcessInterface ()
 
virtual void abort ()
 
bool needsAborting () const
 
bool isAbortRequested () const
 
bool isAborted () const
 
bool isExecuting () const
 
ossimProcessStatus getProcessStatus () const
 
virtual void setProcessStatus (ossimProcessStatus processStatus)
 
virtual double getPercentComplete () const
 
virtual ossimListenerManagergetManager ()
 
void enableEvents ()
 
void disableEvents ()
 
void setCurrentMessage (const ossimString &message)
 
virtual std::ostream & print (std::ostream &out) const
 
- Public Member Functions inherited from ossimConnectableObjectListener
 ossimConnectableObjectListener ()
 
virtual ~ossimConnectableObjectListener ()
 
virtual void processEvent (ossimEvent &event)
 ProcessEvent. More...
 
virtual void objectDestructingEvent (ossimObjectDestructingEvent &)
 
virtual void connectionEvent (ossimConnectionEvent &)
 
virtual void disconnectOutputEvent (ossimConnectionEvent &)
 
virtual void connectOutputEvent (ossimConnectionEvent &)
 
virtual void addObjectEvent (ossimContainerEvent &)
 
virtual void removeObjectEvent (ossimContainerEvent &)
 
virtual void containerEvent (ossimContainerEvent &)
 
virtual void refreshEvent (ossimRefreshEvent &)
 
- Public Member Functions inherited from ossimListener
 ossimListener ()
 
virtual ~ossimListener ()
 
void enableListener ()
 
void disableListener ()
 
void setListenerEnableFlag (bool flag)
 
bool isListenerEnabled () const
 
bool getListenerEnableFlag () const
 

Protected Member Functions

virtual ~ossimJpegWriter ()
 virtual destructor More...
 
- Protected Member Functions inherited from ossimImageFileWriter
bool writeWorldFile (const ossimFilename &file)
 Common world file writer method. More...
 
- Protected Member Functions inherited from ossimSource
 ossimSource (const ossimSource &rhs)
 
const ossimSourceoperator= (const ossimSource &rhs)
 
- Protected Member Functions inherited from ossimConnectableObject
ossimConnectableObjectfindObjectOfType (ConnectableObjectList *connectableList, ossimVisitor &visitor)
 
- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 
- Protected Member Functions inherited from ossimListenerManager
 ossimListenerManager (const ossimListenerManager &rhs)
 

Private Member Functions

virtual bool writeFile ()
 Write out the file. More...
 

Private Attributes

ossim_int32 theQuality
 
FILE * theOutputFilePtr
 

Additional Inherited Members

- Public Types inherited from ossimConnectableObject
enum  ossimConnectableObjectDirectionType { CONNECTABLE_DIRECTION_NONE = 0, CONNECTABLE_DIRECTION_INPUT = 1, CONNECTABLE_DIRECTION_OUTPUT = 2 }
 
typedef std::vector< ossimRefPtr< ossimConnectableObject > > ConnectableObjectList
 
- Public Types inherited from ossimProcessInterface
enum  ossimProcessStatus {
  PROCESS_STATUS_UNKNOWN = 0, PROCESS_STATUS_EXECUTING = 1, PROCESS_STATUS_ABORTED = 2, PROCESS_STATUS_ABORT_REQUEST = 3,
  PROCESS_STATUS_NOT_EXECUTING = 4
}
 
- Protected Attributes inherited from ossimImageFileWriter
ossimRefPtr< ossimImageSourceSequencertheInputConnection
 
ossimRefPtr< ossimViewControllertheViewController
 
ossimListenertheProgressListener
 
ossimFilename theFilename
 
ossimString theOutputImageType
 
bool theWriteImageFlag
 
bool theWriteOverviewFlag
 
bool theWriteHistogramFlag
 
bool theScaleToEightBitFlag
 
ossim_uint16 theOverviewCompressType
 
ossim_int32 theOverviewJpegCompressQuality
 
bool theWriteEnviHeaderFlag
 External meta data writer flags. More...
 
bool theWriteErsHeaderFlag
 
bool theWriteExternalGeometryFlag
 
bool theWriteFgdcFlag
 
bool theWriteJpegWorldFileFlag
 
bool theWriteReadmeFlag
 
bool theWriteTiffWorldFileFlag
 
bool theWriteWorldFileFlag
 
bool theAutoCreateDirectoryFlag
 
ossimUnitType theLinearUnits
 If not a geographic projection this allows the user to set the linear units of the output tag to be: More...
 
ossimPixelType thePixelType
 OSSIM_PIXEL_IS_POINT = 0, OSSIM_PIXEL_IS_AREA = 1. More...
 
- Protected Attributes inherited from ossimImageWriter
ossimIrect theAreaOfInterest
 
- Protected Attributes inherited from ossimOutputSource
ossimString theOutputName
 
- Protected Attributes inherited from ossimSource
bool theEnableFlag
 
bool theInitializedFlag
 
- Protected Attributes inherited from ossimConnectableObject
ossimId theId
 
ossimString theDescription
 
ossimObjecttheOwner
 
bool theInputListIsFixedFlag
 Indicates whether the theInputObjectList is fixed. More...
 
bool theOutputListIsFixedFlag
 Indicates whether the theOutputObjectList is fixed. More...
 
ConnectableObjectList theInputObjectList
 Holds a list of input objects. More...
 
ConnectableObjectList theOutputObjectList
 Holds a list of output objects. More...
 
- Protected Attributes inherited from ossimListenerManager
std::list< ossimListener * > theListenerList
 
bool theEnabledFlag
 
std::list< ossimListener * > theDelayedAdd
 
std::list< ossimListener * > theDelayedRemove
 
bool theFireEventFlag
 
- Protected Attributes inherited from ossimErrorStatusInterface
ossimErrorCode theErrorStatus
 
- Protected Attributes inherited from ossimProcessInterface
double thePercentComplete
 
ossimProcessStatus theProcessStatus
 
ossimString theMessage
 
bool theEventFlag
 
- Protected Attributes inherited from ossimListener
bool theListenerEnableFlag
 

Detailed Description

Definition at line 23 of file ossimJpegWriter.h.

Constructor & Destructor Documentation

◆ ossimJpegWriter()

ossimJpegWriter::ossimJpegWriter ( )

default constructor

Definition at line 44 of file ossimJpegWriter.cpp.

46  theQuality(DEFAULT_JPEG_QUALITY),
47  theOutputFilePtr(NULL)
48 {
49  // Since there is no internal geometry set the flag to write out one.
51 }
ossim_int32 theQuality
ossimImageFileWriter(const ossimFilename &filename=ossimFilename(), ossimImageSource *inputSource=0, ossimObject *owner=0)
The writer will own the sequencer.
virtual void setWriteExternalGeometryFlag(bool flag)

◆ ~ossimJpegWriter()

ossimJpegWriter::~ossimJpegWriter ( )
protectedvirtual

virtual destructor

Definition at line 53 of file ossimJpegWriter.cpp.

References close().

54 {
55  close();
56 }
virtual void close()

Member Function Documentation

◆ close()

void ossimJpegWriter::close ( )
virtual

Generic interface to allow one to close a consumer. For displays this might minimize the window and free up internal pointers for file writers it will make sure the file stream is closed and flushed.

Implements ossimOutputSource.

Definition at line 393 of file ossimJpegWriter.cpp.

References theOutputFilePtr.

Referenced by open(), and ~ossimJpegWriter().

394 {
395  if(theOutputFilePtr)
396  {
397  fclose(theOutputFilePtr);
398  theOutputFilePtr = NULL;
399  }
400 }

◆ getExtension()

ossimString ossimJpegWriter::getExtension ( ) const
virtual

Returns a 3-letter extension from the image type descriptor (theOutputImageType) that can be used for image file extensions.

Parameters
imageTypestring representing image type.
Returns
the 3-letter string extension.

Reimplemented from ossimImageFileWriter.

Definition at line 407 of file ossimJpegWriter.cpp.

408 {
409  return ossimString("jpg");
410 }

◆ getImageTypeList()

void ossimJpegWriter::getImageTypeList ( std::vector< ossimString > &  imageTypeList) const
virtual

void getImageTypeList(std::vector<ossimString>& imageTypeList)const

Appends this writer image types to list "imageTypeList".

This writer only has one type "jpeg".

Parameters
imageTypeListstl::vector<ossimString> list to append to.

Implements ossimImageFileWriter.

Definition at line 402 of file ossimJpegWriter.cpp.

403 {
404  imageTypeList.push_back(ossimString("jpeg"));
405 }

◆ getProperty()

ossimRefPtr< ossimProperty > ossimJpegWriter::getProperty ( const ossimString name) const
virtual
Parameters
nameName of property to return.
Returns
A pointer to a property object which matches "name".

Reimplemented from ossimImageFileWriter.

Definition at line 440 of file ossimJpegWriter.cpp.

References ossimKeywordNames::COMPRESSION_QUALITY_KW, ossimImageFileWriter::getProperty(), ossimNumericProperty::ossimNumericPropertyType_INT, ossimNumericProperty::setNumericType(), theQuality, and ossimString::toString().

441 {
443  {
444  ossimNumericProperty* prop =
445  new ossimNumericProperty(name,
447  1.0,
448  100.0);
450  return prop;
451  }
452 
454 }
ossim_int32 theQuality
static ossimString toString(bool aValue)
Numeric to string methods.
virtual void setNumericType(ossimNumericPropertyType type)
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
static const char * COMPRESSION_QUALITY_KW

◆ getPropertyNames()

void ossimJpegWriter::getPropertyNames ( std::vector< ossimString > &  propertyNames) const
virtual

Pushes this's names onto the list of property names.

Parameters
propertyNamesarray to add this's property names to.

Reimplemented from ossimImageFileWriter.

Definition at line 456 of file ossimJpegWriter.cpp.

References ossimKeywordNames::COMPRESSION_QUALITY_KW, and ossimImageFileWriter::getPropertyNames().

457 {
459  propertyNames.push_back(name);
460 
462 }
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
static const char * COMPRESSION_QUALITY_KW

◆ hasImageType()

bool ossimJpegWriter::hasImageType ( const ossimString imageType) const
virtual

bool hasImageType(const ossimString& imageType) const

Parameters
imageTypestring representing image type.
Returns
true if "imageType" is supported by writer.

Reimplemented from ossimImageFileWriter.

Definition at line 412 of file ossimJpegWriter.cpp.

References ossimImageFileWriter::hasImageType().

413 {
414  if((imageType == "image/jpeg")||
415  (imageType == "image/jpg"))
416  {
417  return true;
418  }
419 
420  return ossimImageFileWriter::hasImageType(imageType);
421 }
virtual bool hasImageType(const ossimString &imageType) const
bool hasImageType(const ossimString& imageType) const

◆ isOpen()

bool ossimJpegWriter::isOpen ( ) const
virtual

Implements ossimOutputSource.

Definition at line 370 of file ossimJpegWriter.cpp.

References theOutputFilePtr.

Referenced by writeFile().

371 {
372  return (theOutputFilePtr!=NULL);
373 }

◆ loadState()

bool ossimJpegWriter::loadState ( const ossimKeywordlist kwl,
const char *  prefix = 0 
)
virtual

Method to the load (recreate) the state of an object from a keyword list.

Return true if ok or false on error.

Reimplemented from ossimImageFileWriter.

Definition at line 321 of file ossimJpegWriter.cpp.

References ossimKeywordNames::COMPRESSION_QUALITY_KW, ossimKeywordlist::find(), ossimImageFileWriter::loadState(), setQuality(), and ossimImageFileWriter::theOutputImageType.

323 {
324  const char* value =
326  if(value)
327  {
328  setQuality(atoi(value));
329  }
330 
331  theOutputImageType = "jpeg";
332 
333  return ossimImageFileWriter::loadState(kwl, prefix);
334 }
const char * find(const char *key) const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual void setQuality(ossim_int32 quality)
Sets the jpeg compression quality.
static const char * COMPRESSION_QUALITY_KW

◆ open()

bool ossimJpegWriter::open ( )
virtual

Allows a generic interface to open a consumer for writing. If you are a display writer then you would probably show the window or init the device context for writing.

Implements ossimOutputSource.

Definition at line 375 of file ossimJpegWriter.cpp.

References ossimString::c_str(), close(), ossimString::empty(), ossimImageFileWriter::theFilename, and theOutputFilePtr.

Referenced by writeFile().

376 {
377  close();
378 
379  // Check for empty filenames.
380  if (theFilename.empty())
381  {
382  return false;
383  }
384 
385  theOutputFilePtr = fopen(theFilename.c_str(), "wb");
386  if(theOutputFilePtr)
387  {
388  return true;
389  }
390  return false;
391 }
virtual void close()
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
bool empty() const
Definition: ossimString.h:411

◆ saveState()

bool ossimJpegWriter::saveState ( ossimKeywordlist kwl,
const char *  prefix = 0 
) const
virtual

saves the state of the object.

Reimplemented from ossimImageFileWriter.

Definition at line 311 of file ossimJpegWriter.cpp.

References ossimKeywordlist::add(), ossimKeywordNames::COMPRESSION_QUALITY_KW, ossimImageFileWriter::saveState(), and theQuality.

313 {
314  kwl.add( prefix,
316  theQuality,
317  true );
318  return ossimImageFileWriter::saveState(kwl, prefix);
319 }
ossim_int32 theQuality
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
static const char * COMPRESSION_QUALITY_KW

◆ setProperty()

void ossimJpegWriter::setProperty ( ossimRefPtr< ossimProperty property)
virtual

Will set the property whose name matches the argument "property->getName()".

Parameters
propertyObject containing property to set.

Reimplemented from ossimImageFileWriter.

Definition at line 423 of file ossimJpegWriter.cpp.

References ossimKeywordNames::COMPRESSION_QUALITY_KW, ossimProperty::getName(), ossimImageFileWriter::setProperty(), setQuality(), ossimString::toInt32(), and ossimRefPtr< T >::valid().

424 {
425  if ( property.valid() )
426  {
428  {
429  ossimString stringValue;
430  property->valueToString(stringValue);
431  setQuality( stringValue.toInt32() );
432  }
433  else
434  {
436  }
437  }
438 }
bool valid() const
Definition: ossimRefPtr.h:75
virtual void setQuality(ossim_int32 quality)
Sets the jpeg compression quality.
ossim_int32 toInt32() const
virtual void setProperty(ossimRefPtr< ossimProperty > property)
static const char * COMPRESSION_QUALITY_KW
const ossimString & getName() const

◆ setQuality()

void ossimJpegWriter::setQuality ( ossim_int32  quality)
virtual

Sets the jpeg compression quality.

Parameters
qualityCompression quality. (valid range is 1 to 100)

Definition at line 336 of file ossimJpegWriter.cpp.

References theQuality.

Referenced by loadState(), and setProperty().

337 {
338  static const char MODULE[] = "ossimJpegWriter::setQuality";
339 
340  // Range 1 to 100 with 100 being best.
341  if (quality > 0 && quality < 101)
342  {
343  theQuality = quality;
344  }
345  else
346  {
347  if (traceDebug())
348  {
350  << MODULE << " DEBUG:"
351  << "\nquality out of range: " << quality
352  << "\nquality has been set to default: "
353  << DEFAULT_JPEG_QUALITY
354  << "\nvalid range: 1 to 100 with 100 being best."
355  << endl;
356  }
357 
358  theQuality = DEFAULT_JPEG_QUALITY;
359  }
360 
361  if (traceDebug())
362  {
364  << MODULE << " DEBUG:"
365  << "\nQuality set to: "
366  << theQuality << endl;
367  }
368 }
ossim_int32 theQuality
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ writeFile()

bool ossimJpegWriter::writeFile ( )
privatevirtual

Write out the file.

Returns
true on success, false on error.

Implements ossimImageFileWriter.

Definition at line 58 of file ossimJpegWriter.cpp.

References ossimString::c_str(), ossimConnectableObject::connectMyInputTo(), ossimRefPtr< T >::get(), ossimErrorStatusInterface::getErrorStatus(), ossimConnectableObject::getInput(), ossimImageSource::getNumberOfOutputBands(), ossimImageSourceSequencer::getOutputScalarType(), ossimImageSourceSequencer::initialize(), ossimImageSourceSequencer::isMaster(), isOpen(), open(), ossimErrorCodes::OSSIM_OK, OSSIM_UINT8, ossimNotify(), ossimNotifyLevel_WARN, ossimImageFileWriter::theFilename, ossimImageFileWriter::theInputConnection, and theOutputFilePtr.

59 {
60  static const char MODULE[] = "ossimJpegWriter::writeFile";
61 
63  {
64  return false;
65  }
66 
67  bool bandsDontMatch = false;
68  // Get the number of bands. Must be one or three for this writer.
70  ossim_int32 outputComponents = components;
71  if (components != 1 && components != 3)
72  {
73  bandsDontMatch = true;
74  if(components < 3)
75  {
76  outputComponents = 1;
77  }
78  else if(components > 3)
79  {
80  outputComponents = 3;
81  }
82  }
83 
85  {
86  if (!isOpen())
87  {
88  open();
89  }
90 
91  if (!theOutputFilePtr)
92  {
94  << MODULE << " ERROR:"
95  << "\nCannot open: " << theFilename.c_str()
96  << "\nReturning from method." << endl;
97 
98  return false;
99  }
100  }
101  ossimRefPtr<ossimImageSource> savedInput = 0;
102 
104  {
105  savedInput = new ossimScalarRemapper();
106 
107  // Connect scalar remapper to sequencer input.
108  savedInput->connectMyInputTo(0, theInputConnection->getInput(0));
109 
110  // Connect sequencer to the scalar remapper.
111  theInputConnection->connectMyInputTo(0, savedInput.get());
113  }
114 
116  {
117  if (traceDebug())
118  {
119  CLOG << " DEBUG:"
120  << "\nOutput Rect: " << theAreaOfInterest << endl;
121  }
122 
123  ossim_int32 image_height
125  ossim_int32 image_width
129 
130  // Allocate a buffer to hold a row of tiles.
131  ossim_uint32 buf_size = tileHeight*image_width*outputComponents;
132  if (traceDebug())
133  {
134  CLOG << "DEBUG:"
135  << "\nbuf_size: " << buf_size
136  << endl;
137  }
138 
139  std::vector<ossim_uint8> buf(buf_size);
140  ossimRefPtr<ossimImageData> blankTile =
141  new ossimImageData(NULL,
142  OSSIM_UINT8,
143  outputComponents,
144  tileWidth,
145  tileHeight);
147  std::vector<ossim_uint8> tempBuf;
148  if(bandsDontMatch)
149  {
150  tempTile = new ossimImageData(NULL,
151  OSSIM_UINT8,
152  outputComponents,
153  tileWidth,
154  tileHeight);
155  tempTile->initialize();
156  }
157  blankTile->initialize();
158  //
159  // Stuff needed for the jpeg library.
160  // Taken from "example.c" file of the "jpeg-6b" package.
161  //
162  struct jpeg_compress_struct cinfo;
163  struct jpeg_error_mgr jerr;
164  JSAMPROW row_pointer[1]; // pointer to JSAMPLE row[s]
165 
166  // physical row width in image buffer
167  int row_stride = image_width * outputComponents;
168 
169  cinfo.err = jpeg_std_error(&jerr);
170  jpeg_create_compress(&cinfo);
171  jpeg_stdio_dest(&cinfo, theOutputFilePtr);
172  cinfo.image_width = image_width; // image width and height, in pixels
173  cinfo.image_height = image_height;
174  cinfo.input_components = outputComponents; // # of color components per pixel
175 
176  // colorspace of input image
177  if (outputComponents == 3)
178  {
179  cinfo.in_color_space = JCS_RGB;
180  }
181  else
182  {
183  cinfo.in_color_space = JCS_GRAYSCALE;
184  }
185 
186  jpeg_set_defaults(&cinfo);
187  jpeg_set_quality(&cinfo, theQuality, TRUE); //limit to baseline-JPEG values
188  jpeg_start_compress(&cinfo, TRUE);
189 
194 
195  double tileCount = 0.0;
196  double totalTiles = theInputConnection->getNumberOfTiles();
197  //
198  // Ok the jpeg stuff should be set. Loop through and grab a row of tiles
199  // and copy to the buffer. Then write the buffer to the jpeg file.
200  // Get the next row... until finished.
201  //
202  for (ossim_uint32 i=0; ((i<maxY) && (!needsAborting())); ++i)
203  {
204  ossimIrect buf_rect = theAreaOfInterest;
205  buf_rect.set_uly(theAreaOfInterest.ul().y+i*tileHeight);
206  buf_rect.set_lry(buf_rect.ul().y + tileHeight - 1);
207 
208  for (ossim_uint32 j=0; ((j<maxX)&& (!needsAborting())); ++j)
209  {
210  // Grab the tile.
213 
214  if ( t.valid() )
215  {
216  if (t->getDataObjectStatus() != OSSIM_NULL)
217  {
218  if(bandsDontMatch)
219  {
220  tempTile->setImageRectangle(t->getImageRectangle());
222  memcpy(tempTile->getBuf(),
223  t->getBuf(),
224  t->getSizePerBandInBytes()*outputComponents);
225  tempTile->unloadTile(&buf.front(), buf_rect, OSSIM_BIP);
226  }
227  else
228  {
229  // Copy the tile to the buffer.
230  t->unloadTile(&buf.front(), buf_rect, OSSIM_BIP);
231  }
232  }
233  else
234  {
235  blankTile->setOrigin(t->getOrigin());
236  if(bandsDontMatch)
237  {
238  tempTile->setImageRectangle(blankTile->getImageRectangle());
240  memcpy(tempTile->getBuf(), t->getBuf(), t->getSizePerBandInBytes()*outputComponents);
241  blankTile->unloadTile(&buf.front(), buf_rect, OSSIM_BIP);
242  }
243  else
244  {
245  // Copy the tile to the buffer.
246  blankTile->unloadTile(&buf.front(), buf_rect, OSSIM_BIP);
247  }
248  }
249  }
250  ++tileCount;
251  setPercentComplete((100.0*(tileCount/totalTiles)));
252 
253  } // End of loop through tiles in the x direction.
254 
255  // Copy the buffer to the jpeg file.
256  ossim_int32 lines_to_copy =
257  min( (buf_rect.lr().y-buf_rect.ul().y+1),
258  (theAreaOfInterest.lr().y-buf_rect.ul().y+1) );
259 
260  if (traceDebug())
261  {
263  << MODULE
264  << "buf_rect: " << buf_rect
265  << "lines_to_copy: " << lines_to_copy << endl;
266  }
267 
268  if(!needsAborting())
269  {
270  // Now copy the buffer that should be full to the jpeg file.
271  ossim_int32 buf_offset = 0;
272  for (ossim_int32 line=0; line<lines_to_copy; ++line)
273  {
274  row_pointer[0] = &buf[buf_offset];
275  jpeg_write_scanlines(&cinfo, row_pointer, 1);
276  buf_offset += row_stride;
277  }
278  }
279 
280  } // End of loop through tiles in the y direction.
281 
282  // Free memory.
283  if(!needsAborting())
284  {
285  jpeg_finish_compress(&cinfo);
286  }
287 
288  fclose(theOutputFilePtr);
289  theOutputFilePtr = NULL;
290 
291  jpeg_destroy_compress(&cinfo);
292  }
293  else
294  {
296  }
297 
298  // Reset the connection if needed.
299  if(savedInput.valid())
300  {
302  if(obj)
303  {
305  }
306  savedInput = 0;
307  }
308  return true;
309 }
void set_uly(ossim_int32 y)
Definition: ossimIrect.h:666
virtual bool open()
ossim_int32 theQuality
#define CLOG
Definition: ossimTrace.h:23
virtual void setImageRectangle(const ossimIrect &rect)
virtual ossim_uint32 getTileWidth() const
Returns the default processing tile width.
static const ossimErrorCode OSSIM_OK
virtual ossim_uint32 getNumberOfOutputBands() const
Returns the number of bands in a tile returned from this TileSource.
bool valid() const
Definition: ossimRefPtr.h:75
virtual ossimRefPtr< ossimImageData > getNextTile(ossim_uint32 resLevel=0)
ossimIrect theAreaOfInterest
const ossimIpt & ul() const
Definition: ossimIrect.h:274
virtual ossimDataObjectStatus getDataObjectStatus() const
virtual void initialize()
Initialize the data buffer.
virtual ossim_uint32 getSizePerBandInBytes() const
Returns the number of bytes in single band of the tile.
ossimConnectableObject * getInput(ossim_uint32 index=0)
returns the object at the specified index.
virtual void setAreaOfInterest(const ossimIrect &areaOfInterest)
virtual ossimScalarType getOutputScalarType() const
This will be used to query the output pixel type of the tile source.
ossimRefPtr< ossimImageSourceSequencer > theInputConnection
unsigned int ossim_uint32
virtual ossimIrect getImageRectangle() const
const ossimIpt & lr() const
Definition: ossimIrect.h:276
virtual void unloadTile(void *dest, const ossimIrect &dest_rect, ossimInterleaveType il_type) 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 bool isOpen() const
virtual void setOrigin(const ossimIpt &origin)
ossim_int64 getNumberOfTilesHorizontal() const
virtual ossim_uint32 getTileHeight() const
Returns the default processing tile height.
void set_lry(ossim_int32 y)
Definition: ossimIrect.h:702
virtual ossimErrorCode getErrorStatus() const
ossim_int32 y
Definition: ossimIpt.h:142
virtual const void * getBuf() const
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
virtual void setDataObjectStatus(ossimDataObjectStatus status) const
Full list found in ossimConstants.h.
ossim_int32 x
Definition: ossimIpt.h:141
8 bit unsigned integer
virtual void setPercentComplete(double percentComplete)
virtual const ossimIpt & getOrigin() const
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
ossim_int64 getNumberOfTilesVertical() const
#define min(a, b)
Definition: auxiliary.h:75
int ossim_int32

Member Data Documentation

◆ theOutputFilePtr

FILE* ossimJpegWriter::theOutputFilePtr
private

Definition at line 110 of file ossimJpegWriter.h.

Referenced by close(), isOpen(), open(), and writeFile().

◆ theQuality

ossim_int32 ossimJpegWriter::theQuality
private

Definition at line 109 of file ossimJpegWriter.h.

Referenced by getProperty(), saveState(), and setQuality().


The documentation for this class was generated from the following files: