mirror of
https://github.com/BernardoGiordano/Checkpoint
synced 2024-12-14 10:52:27 +00:00
66 lines
2.7 KiB
C
66 lines
2.7 KiB
C
///////////////////////////////////////////////////////////////////////////////
|
|
// HEADER SECTION //
|
|
// copy and paste this into nanojpeg.h if you want //
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _NANOJPEG_H
|
|
#define _NANOJPEG_H
|
|
|
|
// nj_result_t: Result codes for njDecode().
|
|
typedef enum _nj_result {
|
|
NJ_OK = 0, // no error, decoding successful
|
|
NJ_NO_JPEG, // not a JPEG file
|
|
NJ_UNSUPPORTED, // unsupported format
|
|
NJ_OUT_OF_MEM, // out of memory
|
|
NJ_INTERNAL_ERR, // internal error
|
|
NJ_SYNTAX_ERROR, // syntax error
|
|
__NJ_FINISHED, // used internally, will never be reported
|
|
} nj_result_t;
|
|
|
|
// njInit: Initialize NanoJPEG.
|
|
// For safety reasons, this should be called at least one time before using
|
|
// using any of the other NanoJPEG functions.
|
|
void njInit(void);
|
|
|
|
// njDecode: Decode a JPEG image.
|
|
// Decodes a memory dump of a JPEG file into internal buffers.
|
|
// Parameters:
|
|
// jpeg = The pointer to the memory dump.
|
|
// size = The size of the JPEG file.
|
|
// Return value: The error code in case of failure, or NJ_OK (zero) on success.
|
|
nj_result_t njDecode(const void* jpeg, const int size);
|
|
|
|
// njGetWidth: Return the width (in pixels) of the most recently decoded
|
|
// image. If njDecode() failed, the result of njGetWidth() is undefined.
|
|
int njGetWidth(void);
|
|
|
|
// njGetHeight: Return the height (in pixels) of the most recently decoded
|
|
// image. If njDecode() failed, the result of njGetHeight() is undefined.
|
|
int njGetHeight(void);
|
|
|
|
// njIsColor: Return 1 if the most recently decoded image is a color image
|
|
// (RGB) or 0 if it is a grayscale image. If njDecode() failed, the result
|
|
// of njGetWidth() is undefined.
|
|
int njIsColor(void);
|
|
|
|
// njGetImage: Returns the decoded image data.
|
|
// Returns a pointer to the most recently image. The memory layout it byte-
|
|
// oriented, top-down, without any padding between lines. Pixels of color
|
|
// images will be stored as three consecutive bytes for the red, green and
|
|
// blue channels. This data format is thus compatible with the PGM or PPM
|
|
// file formats and the OpenGL texture formats GL_LUMINANCE8 or GL_RGB8.
|
|
// If njDecode() failed, the result of njGetImage() is undefined.
|
|
unsigned char* njGetImage(void);
|
|
|
|
// njGetImageSize: Returns the size (in bytes) of the image data returned
|
|
// by njGetImage(). If njDecode() failed, the result of njGetImageSize() is
|
|
// undefined.
|
|
int njGetImageSize(void);
|
|
|
|
// njDone: Uninitialize NanoJPEG.
|
|
// Resets NanoJPEG's internal state and frees all memory that has been
|
|
// allocated at run-time by NanoJPEG. It is still possible to decode another
|
|
// image after a njDone() call.
|
|
void njDone(void);
|
|
|
|
#endif//_NANOJPEG_H
|