 |
Gorgon Game Engine
|
Go to the documentation of this file.
9 #include "../Containers/Image.h"
12 struct jpeg_decompress_struct;
13 struct jpeg_compress_struct;
16 namespace Gorgon {
namespace Encoding {
29 virtual void Attach(jpeg_decompress_struct &cinfo);
35 virtual void term_source(jpeg_decompress_struct &cinfo);
45 virtual void init_source(jpeg_decompress_struct &cinfo);
58 virtual void init_source(jpeg_decompress_struct &cinfo);
69 virtual void init_source(jpeg_decompress_struct &cinfo);
81 virtual void Attach(jpeg_compress_struct &cinfo);
114 std::vector<Byte> &out;
139 std::ifstream file(input, std::ios::binary);
140 if(!file.is_open())
throw std::runtime_error(
"Cannot open file");
165 encode(writer, input, quality);
171 std::ofstream file(output, std::ios::binary);
172 if(!file.is_open())
throw std::runtime_error(
"Cannot open file");
174 Encode(input, file, quality);
182 encode(writer, input, quality);
virtual void init_source(jpeg_decompress_struct &cinfo)=0
virtual void term_destination(jpeg_compress_struct &cinfo)
Definition: JPEG.cpp:249
Byte * data
Definition: JPEG.h:73
StreamReader(std::istream &file)
Definition: JPEG.h:43
Graphics::ColorMode GetMode() const
Returns the color mode of the image.
Definition: Image.h:1311
std::vector< Byte > & data
Definition: JPEG.h:62
void Encode(Containers::Image &input, std::vector< Byte > &output, int quality=90)
Encode given image to JPG compressed data.
Definition: JPEG.h:179
void Resize(const Geometry::Size &size, Graphics::ColorMode mode)
Resizes the image to the given size and color mode.
Definition: Image.h:71
ColorMode
Color modes for images.
Definition: Color.h:16
boolean empty_output_buffer(jpeg_compress_struct *cinfo)
Definition: JPEG.cpp:306
@ RGB
24bit red, green, blue color mode that has red component in the lowest byte order
virtual void term_destination(jpeg_compress_struct &cinfo)=0
virtual bool fill_input_buffer(jpeg_decompress_struct &cinfo)
Definition: JPEG.cpp:205
@ Invalid
This is used to mark invalid color data.
VectorReader(std::vector< Byte > &data)
Definition: JPEG.h:56
virtual void term_destination(jpeg_compress_struct &cinfo)
Definition: JPEG.cpp:231
Byte * RawData()
Returns the raw data pointer.
Definition: Image.h:211
virtual bool fill_input_buffer(jpeg_decompress_struct &cinfo)
Definition: JPEG.cpp:175
T_ Height
Height of this size object.
Definition: Size.h:261
@ RGBA
32bit red, green, blue and alpha channel image. Red component is in the lowest byte order and
virtual bool resync_to_restart(jpeg_decompress_struct &cinfo, int desired)
Definition: JPEG.cpp:156
void decode(jpg::Reader &reader, Containers::Image &output)
Definition: JPEG.cpp:48
virtual void init_destination(jpeg_compress_struct &cinfo)
Definition: JPEG.cpp:253
virtual void skip_input_data(jpeg_decompress_struct &cinfo, long size)
Definition: JPEG.cpp:188
Byte buffer[1024]
Definition: JPEG.h:51
void init_destination(jpeg_compress_struct *cinfo)
Definition: JPEG.cpp:302
void term_source(jpeg_decompress_struct *cinfo)
Definition: JPEG.cpp:284
virtual void init_source(jpeg_decompress_struct &cinfo)
Definition: JPEG.cpp:212
virtual bool empty_output_buffer(jpeg_compress_struct &cinfo)
Definition: JPEG.cpp:240
void Encode(Containers::Image &input, const std::string &output, int quality=90)
Encode given image to JPG compressed data.
Definition: JPEG.h:170
virtual bool empty_output_buffer(jpeg_compress_struct &cinfo)=0
ArrayReader(Byte *data, std::size_t size)
Definition: JPEG.h:67
virtual void init_destination(jpeg_compress_struct &cinfo)=0
@ Grayscale
8bit gray scale color mode
void Decode(std::vector< Byte > &input, Containers::Image &output)
Decodes given JPG data from the given input and creates the image.
Definition: JPEG.h:147
virtual void skip_input_data(jpeg_decompress_struct &cinfo, long size)
Definition: JPEG.cpp:163
Root namespace for Gorgon Game Engine.
Definition: Any.h:19
virtual bool fill_input_buffer(jpeg_decompress_struct &cinfo)
Definition: JPEG.cpp:218
void encode(jpg::Writer &writer, Containers::Image &input, int quality)
Definition: JPEG.cpp:88
DestManager * manager
Definition: JPEG.h:87
virtual void init_source(jpeg_decompress_struct &cinfo)
Definition: JPEG.cpp:171
std::size_t size
Definition: JPEG.h:74
Writer()
Definition: JPEG.cpp:314
void Decode(const std::string &input, Containers::Image &output)
Decodes given JPG data from the given input and creates the image.
Definition: JPEG.h:138
Graphics::ColorMode jpgtocolormode(const struct jpeg_decompress_struct &cinfo)
Definition: JPEG.cpp:27
SourceManager * manager
Definition: JPEG.h:37
virtual void Attach(jpeg_decompress_struct &cinfo)
Definition: JPEG.cpp:150
virtual void init_source(jpeg_decompress_struct &cinfo)
Definition: JPEG.cpp:200
Reader()
Definition: JPEG.cpp:288
JPEG Jpg
Definition: JPEG.cpp:327
void init_source(jpeg_decompress_struct *cinfo)
Definition: JPEG.cpp:268
unsigned char Byte
Represents smallest cell in memory.
Definition: Types.h:9
virtual void Attach(jpeg_compress_struct &cinfo)
Definition: JPEG.cpp:225
VectorWriter(std::vector< Byte > &out)
Definition: JPEG.h:107
void skip_input_data(jpeg_decompress_struct *cinfo, long size)
Definition: JPEG.cpp:276
void my_output_message(j_common_ptr cinfo)
Definition: JPEG.cpp:19
virtual bool fill_input_buffer(jpeg_decompress_struct &cinfo)=0
std::istream & file
Definition: JPEG.h:50
void term_destination(jpeg_compress_struct *cinfo)
Definition: JPEG.cpp:310
boolean resync_to_restart(jpeg_decompress_struct *cinfo, int desired)
Definition: JPEG.cpp:280
This class is a container for image data.
Definition: Image.h:19
constexpr Type JPEG
JPEG compression.
Definition: GID.h:124
T_ Width
Width of this size object.
Definition: Size.h:258
void Decode(Byte *input, std::size_t size, Containers::Image &output)
Decodes given JPG data from the given input and creates the image.
Definition: JPEG.h:154
virtual void term_source(jpeg_decompress_struct &cinfo)
Definition: JPEG.cpp:160
StreamWriter(std::ostream &out)
Definition: JPEG.h:94
void Decode(std::istream &input, Containers::Image &output)
Decodes given JPG data from the given input and creates the image.
Definition: JPEG.h:130
JPEG()
Definition: JPEG.h:126
virtual void init_destination(jpeg_compress_struct &cinfo)
Definition: JPEG.cpp:235
virtual bool empty_output_buffer(jpeg_compress_struct &cinfo)
Definition: JPEG.cpp:259
virtual ~Writer()
Definition: JPEG.cpp:322
void Encode(Containers::Image &input, std::ostream &output, int quality=90)
Encode given image to JPG compressed data.
Definition: JPEG.h:162
boolean fill_input_buffer(jpeg_decompress_struct *cinfo)
Definition: JPEG.cpp:272
void my_error_exit(j_common_ptr cinfo)
Definition: JPEG.cpp:15
virtual ~Reader()
Definition: JPEG.cpp:298
Geometry::Size GetSize() const
Returns the size of the image.
Definition: Image.h:1291
unsigned GetChannelsPerPixel() const
Returns the number units occupied by a single pixel of this image.
Definition: Image.h:1326