mirror of
https://github.com/lovell/sharp.git
synced 2025-07-10 11:00:14 +02:00
72 lines
1.6 KiB
C++
Executable File
72 lines
1.6 KiB
C++
Executable File
#ifndef SRC_COMMON_H_
|
|
#define SRC_COMMON_H_
|
|
|
|
namespace sharp {
|
|
|
|
enum class ImageType {
|
|
UNKNOWN,
|
|
JPEG,
|
|
PNG,
|
|
WEBP,
|
|
TIFF,
|
|
MAGICK
|
|
};
|
|
|
|
// How many tasks are in the queue?
|
|
extern volatile int counterQueue;
|
|
|
|
// How many tasks are being processed?
|
|
extern volatile int counterProcess;
|
|
|
|
// Filename extension checkers
|
|
bool IsJpeg(std::string const &str);
|
|
bool IsPng(std::string const &str);
|
|
bool IsWebp(std::string const &str);
|
|
bool IsTiff(std::string const &str);
|
|
|
|
/*
|
|
Determine image format of a buffer.
|
|
*/
|
|
ImageType DetermineImageType(void *buffer, size_t const length);
|
|
|
|
/*
|
|
Determine image format of a file.
|
|
*/
|
|
ImageType DetermineImageType(char const *file);
|
|
|
|
/*
|
|
Initialise and return a VipsImage from a buffer. Supports JPEG, PNG, WebP and TIFF.
|
|
*/
|
|
VipsImage* InitImage(ImageType imageType, void *buffer, size_t const length, VipsAccess const access);
|
|
|
|
/*
|
|
Initialise and return a VipsImage from a file.
|
|
*/
|
|
VipsImage* InitImage(ImageType imageType, char const *file, VipsAccess const access);
|
|
|
|
/*
|
|
Does this image have an embedded profile?
|
|
*/
|
|
bool HasProfile(VipsImage *image);
|
|
|
|
/*
|
|
Does this image have an alpha channel?
|
|
Uses colour space interpretation with number of channels to guess this.
|
|
*/
|
|
bool HasAlpha(VipsImage *image);
|
|
|
|
/*
|
|
Get EXIF Orientation of image, if any.
|
|
*/
|
|
int ExifOrientation(VipsImage const *image);
|
|
|
|
/*
|
|
Returns the window size for the named interpolator. For example,
|
|
a window size of 3 means a 3x3 pixel grid is used for the calculation.
|
|
*/
|
|
int InterpolatorWindowSize(char const *name);
|
|
|
|
} // namespace sharp
|
|
|
|
#endif // SRC_COMMON_H_
|