Open Inventor Release 2024.1.1
 
Loading...
Searching...
No Matches
SoJPEGImageRW.h
1/*=======================================================================
2 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
3 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
4 *** ***
5 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
6 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
7 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
8 *** ***
9 *** RESTRICTED RIGHTS LEGEND ***
10 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
11 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
12 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
13 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
14 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
15 *** ***
16 *** COPYRIGHT (C) 1996-2022 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : C. OGNIER (Jun 2003)
22**=======================================================================*/
23
24
25#ifndef _SOJPEGIMAGERW_
26#define _SOJPEGIMAGERW_
27
28#include <Inventor/image/SoRasterImageRW.h>
29#include <Inventor/threads/SbThreadMutex.h>
30
31struct jpeg_compress_struct;
32
53
54 SO_IMAGE_RASTER_RW_HEADER()
55
56public:
57
62
66 virtual ~SoJPEGImageRW();
67
71 virtual SbBool open(SoRasterImageIO* rasterImageIO, OpenMode openMode);
72
76 virtual void close();
77
83 virtual SbBool write(SbRasterImage* rasterImage, unsigned int xPos = 0, unsigned int yPos = 0);
84
89
95 virtual SbBool read(SbRasterImage* rasterImage, SbBool infoOnly = FALSE);
96
103
108
113
118 void setOutputQuality(float quality);
119
123 float getOutputQuality() const;
124
125private:
126 unsigned char* getBuffer(size_t& size) const;
127
128 virtual bool supportsAlpha() const;
129
130private:
131 virtual void createSuffixList();
132
133
134private:
135 static SbThreadMutex s_mutex;
136
137 struct jpeg_compress_struct* m_cinfoW;
138 float m_quality;
139 SbBool m_writeToBuffer;
140 size_t m_jpegBufferSize;
141 unsigned char* m_jpegBuffer;
142 bool m_isJpegLibraryLoaded;
143};
144
145#endif
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Class encapsulat...
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Portable mutex c...
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Class for encodi...
virtual SbBool open(SoRasterImageIO *rasterImageIO, OpenMode openMode)
Opens the reader/writer in the specified open mode.
virtual SbBool isMultipleBufferInverted() const
Specifies the write direction when using multiple buffers.
virtual SoRasterImageRW::ReadCapability getReadCapability() const
Returns the read capability of the raster format.
float getOutputQuality() const
Returns the output quality.
virtual void close()
Closes the reader/writer.
virtual SbBool read(SbRasterImage *rasterImage, SbBool infoOnly=FALSE)
Reads, decodes, and fills the rasterImage parameter.
void setOutputQuality(float quality)
Sets the output quality of the image, from 0.0 (lowest quality) to 1.0 (highest quality).
virtual SbBool writeFooter()
Writes and encodes the header for this specific format.
virtual SbBool write(SbRasterImage *rasterImage, unsigned int xPos=0, unsigned int yPos=0)
Writes and encodes the given data in this specific format.
virtual SoRasterImageRW::WriteCapability getWriteCapability() const
Returns the write capability of the raster format.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Abstract base cl...
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Abstract base cl...
ReadCapability
Read Capability enumeration values.
OpenMode
open Mode enumeration values.
WriteCapability
Write Capability enumeration values.
int SbBool
Boolean type.
Definition SbBase.h:87