#include "magick/studio.h"
#include "magick/attribute.h"
#include "magick/cache.h"
#include "magick/cache-private.h"
#include "magick/cache-view.h"
#include "magick/color.h"
#include "magick/color-private.h"
#include "magick/colorspace.h"
#include "magick/colorspace-private.h"
#include "magick/exception.h"
#include "magick/exception-private.h"
#include "magick/enhance.h"
#include "magick/image.h"
#include "magick/image-private.h"
#include "magick/gem.h"
#include "magick/gem-private.h"
#include "magick/memory_.h"
#include "magick/monitor.h"
#include "magick/monitor-private.h"
#include "magick/pixel-private.h"
#include "magick/property.h"
#include "magick/quantize.h"
#include "magick/quantum.h"
#include "magick/resource_.h"
#include "magick/string_.h"
#include "magick/string-private.h"
#include "magick/utility.h"
Data Structures | |
struct | _TransformPacket |
Defines | |
#define | RGBTransformImageTag "RGBTransform/Image" |
#define | DisplayGamma (1.0/1.7) |
#define | FilmGamma 0.6 |
#define | ReferenceBlack 95.0 |
#define | ReferenceWhite 685.0 |
#define | TransformRGBImageTag "Transform/Image" |
Typedefs | |
typedef struct _TransformPacket | TransformPacket |
Functions | |
MagickExport ColorspaceType | GetImageColorspaceType (const Image *image, ExceptionInfo *exception) |
static void | ConvertRGBToCMY (const Quantum red, const Quantum green, const Quantum blue, double *cyan, double *magenta, double *yellow) |
static void | ConvertRGBToLab (const Quantum red, const Quantum green, const Quantum blue, double *L, double *a, double *b) |
static void | ConvertXYZToLMS (const double x, const double y, const double z, double *L, double *M, double *S) |
static void | ConvertRGBToLMS (const Quantum red, const Quantum green, const Quantum blue, double *L, double *M, double *S) |
static void | ConvertRGBToLuv (const Quantum red, const Quantum green, const Quantum blue, double *L, double *u, double *v) |
static void | ConvertRGBToxyY (const Quantum red, const Quantum green, const Quantum blue, double *low_x, double *low_y, double *cap_Y) |
static void | ConvertRGBToYPbPr (const Quantum red, const Quantum green, const Quantum blue, double *Y, double *Pb, double *Pr) |
static void | ConvertRGBToYCbCr (const Quantum red, const Quantum green, const Quantum blue, double *Y, double *Cb, double *Cr) |
static void | ConvertRGBToYUV (const Quantum red, const Quantum green, const Quantum blue, double *Y, double *U, double *V) |
static void | ConvertRGBToYDbDr (const Quantum red, const Quantum green, const Quantum blue, double *Y, double *Db, double *Dr) |
static void | ConvertRGBToYIQ (const Quantum red, const Quantum green, const Quantum blue, double *Y, double *I, double *Q) |
MagickExport MagickBooleanType | RGBTransformImage (Image *image, const ColorspaceType colorspace) |
MagickExport MagickBooleanType | SetImageColorspace (Image *image, const ColorspaceType colorspace) |
MagickExport MagickBooleanType | SetImageGray (Image *image, ExceptionInfo *exception) |
MagickExport MagickBooleanType | SetImageMonochrome (Image *image, ExceptionInfo *exception) |
MagickExport MagickBooleanType | TransformImageColorspace (Image *image, const ColorspaceType colorspace) |
static void | ConvertCMYToRGB (const double cyan, const double magenta, const double yellow, Quantum *red, Quantum *green, Quantum *blue) |
static void | ConvertLMSToXYZ (const double L, const double M, const double S, double *X, double *Y, double *Z) |
static void | ConvertLMSToRGB (const double L, const double M, const double S, Quantum *red, Quantum *green, Quantum *blue) |
static void | ConvertLuvToRGB (const double L, const double u, const double v, Quantum *red, Quantum *green, Quantum *blue) |
static ssize_t | RoundToYCC (const MagickRealType value) |
static void | ConvertLabToRGB (const double L, const double a, const double b, Quantum *red, Quantum *green, Quantum *blue) |
static void | ConvertxyYToRGB (const double low_x, const double low_y, const double cap_Y, Quantum *red, Quantum *green, Quantum *blue) |
static void | ConvertYPbPrToRGB (const double Y, const double Pb, const double Pr, Quantum *red, Quantum *green, Quantum *blue) |
static void | ConvertYCbCrToRGB (const double Y, const double Cb, const double Cr, Quantum *red, Quantum *green, Quantum *blue) |
static void | ConvertYDbDrToRGB (const double Y, const double Db, const double Dr, Quantum *red, Quantum *green, Quantum *blue) |
static void | ConvertYIQToRGB (const double Y, const double I, const double Q, Quantum *red, Quantum *green, Quantum *blue) |
static void | ConvertYUVToRGB (const double Y, const double U, const double V, Quantum *red, Quantum *green, Quantum *blue) |
MagickExport MagickBooleanType | TransformRGBImage (Image *image, const ColorspaceType colorspace) |
#define DisplayGamma (1.0/1.7) |
Referenced by RGBTransformImage(), and TransformRGBImage().
#define FilmGamma 0.6 |
Referenced by RGBTransformImage(), and TransformRGBImage().
#define ReferenceBlack 95.0 |
Referenced by RGBTransformImage(), and TransformRGBImage().
#define ReferenceWhite 685.0 |
Referenced by RGBTransformImage(), and TransformRGBImage().
#define RGBTransformImageTag "RGBTransform/Image" |
Referenced by RGBTransformImage().
#define TransformRGBImageTag "Transform/Image" |
Referenced by TransformRGBImage().
typedef struct _TransformPacket TransformPacket |
static void ConvertCMYToRGB | ( | const double | cyan, | |
const double | magenta, | |||
const double | yellow, | |||
Quantum * | red, | |||
Quantum * | green, | |||
Quantum * | blue | |||
) | [inline, static] |
References ClampToQuantum(), and QuantumRange.
Referenced by TransformRGBImage().
static void ConvertLabToRGB | ( | const double | L, | |
const double | a, | |||
const double | b, | |||
Quantum * | red, | |||
Quantum * | green, | |||
Quantum * | blue | |||
) | [inline, static] |
References ConvertLabToXYZ(), and ConvertXYZToRGB().
Referenced by TransformRGBImage().
static void ConvertLMSToRGB | ( | const double | L, | |
const double | M, | |||
const double | S, | |||
Quantum * | red, | |||
Quantum * | green, | |||
Quantum * | blue | |||
) | [inline, static] |
References ConvertLMSToXYZ(), and ConvertXYZToRGB().
Referenced by TransformRGBImage().
static void ConvertLMSToXYZ | ( | const double | L, | |
const double | M, | |||
const double | S, | |||
double * | X, | |||
double * | Y, | |||
double * | Z | |||
) | [inline, static] |
Referenced by ConvertLMSToRGB().
static void ConvertLuvToRGB | ( | const double | L, | |
const double | u, | |||
const double | v, | |||
Quantum * | red, | |||
Quantum * | green, | |||
Quantum * | blue | |||
) | [inline, static] |
References ConvertLuvToXYZ(), and ConvertXYZToRGB().
Referenced by TransformRGBImage().
static void ConvertRGBToCMY | ( | const Quantum | red, | |
const Quantum | green, | |||
const Quantum | blue, | |||
double * | cyan, | |||
double * | magenta, | |||
double * | yellow | |||
) | [inline, static] |
References QuantumRange, and QuantumScale.
Referenced by RGBTransformImage().
static void ConvertRGBToLab | ( | const Quantum | red, | |
const Quantum | green, | |||
const Quantum | blue, | |||
double * | L, | |||
double * | a, | |||
double * | b | |||
) | [static] |
References ConvertRGBToXYZ(), and ConvertXYZToLab().
Referenced by RGBTransformImage().
static void ConvertRGBToLMS | ( | const Quantum | red, | |
const Quantum | green, | |||
const Quantum | blue, | |||
double * | L, | |||
double * | M, | |||
double * | S | |||
) | [static] |
References ConvertRGBToXYZ(), and ConvertXYZToLMS().
Referenced by RGBTransformImage().
static void ConvertRGBToLuv | ( | const Quantum | red, | |
const Quantum | green, | |||
const Quantum | blue, | |||
double * | L, | |||
double * | u, | |||
double * | v | |||
) | [static] |
References ConvertRGBToXYZ(), and ConvertXYZToLuv().
Referenced by RGBTransformImage().
static void ConvertRGBToxyY | ( | const Quantum | red, | |
const Quantum | green, | |||
const Quantum | blue, | |||
double * | low_x, | |||
double * | low_y, | |||
double * | cap_Y | |||
) | [static] |
References ConvertRGBToXYZ(), and PerceptibleReciprocal().
Referenced by RGBTransformImage().
static void ConvertRGBToYCbCr | ( | const Quantum | red, | |
const Quantum | green, | |||
const Quantum | blue, | |||
double * | Y, | |||
double * | Cb, | |||
double * | Cr | |||
) | [static] |
References ConvertRGBToYPbPr().
Referenced by RGBTransformImage().
static void ConvertRGBToYDbDr | ( | const Quantum | red, | |
const Quantum | green, | |||
const Quantum | blue, | |||
double * | Y, | |||
double * | Db, | |||
double * | Dr | |||
) | [static] |
References QuantumScale.
Referenced by RGBTransformImage().
static void ConvertRGBToYIQ | ( | const Quantum | red, | |
const Quantum | green, | |||
const Quantum | blue, | |||
double * | Y, | |||
double * | I, | |||
double * | Q | |||
) | [static] |
References QuantumScale.
Referenced by RGBTransformImage().
static void ConvertRGBToYPbPr | ( | const Quantum | red, | |
const Quantum | green, | |||
const Quantum | blue, | |||
double * | Y, | |||
double * | Pb, | |||
double * | Pr | |||
) | [static] |
References QuantumScale.
Referenced by ConvertRGBToYCbCr(), and RGBTransformImage().
static void ConvertRGBToYUV | ( | const Quantum | red, | |
const Quantum | green, | |||
const Quantum | blue, | |||
double * | Y, | |||
double * | U, | |||
double * | V | |||
) | [static] |
References QuantumScale.
Referenced by RGBTransformImage().
static void ConvertxyYToRGB | ( | const double | low_x, | |
const double | low_y, | |||
const double | cap_Y, | |||
Quantum * | red, | |||
Quantum * | green, | |||
Quantum * | blue | |||
) | [inline, static] |
References ConvertXYZToRGB(), and PerceptibleReciprocal().
Referenced by TransformRGBImage().
static void ConvertXYZToLMS | ( | const double | x, | |
const double | y, | |||
const double | z, | |||
double * | L, | |||
double * | M, | |||
double * | S | |||
) | [inline, static] |
Referenced by ConvertRGBToLMS().
static void ConvertYCbCrToRGB | ( | const double | Y, | |
const double | Cb, | |||
const double | Cr, | |||
Quantum * | red, | |||
Quantum * | green, | |||
Quantum * | blue | |||
) | [static] |
References ConvertYPbPrToRGB().
Referenced by TransformRGBImage().
static void ConvertYDbDrToRGB | ( | const double | Y, | |
const double | Db, | |||
const double | Dr, | |||
Quantum * | red, | |||
Quantum * | green, | |||
Quantum * | blue | |||
) | [static] |
References ClampToQuantum(), and QuantumRange.
Referenced by TransformRGBImage().
static void ConvertYIQToRGB | ( | const double | Y, | |
const double | I, | |||
const double | Q, | |||
Quantum * | red, | |||
Quantum * | green, | |||
Quantum * | blue | |||
) | [static] |
References ClampToQuantum(), and QuantumRange.
Referenced by TransformRGBImage().
static void ConvertYPbPrToRGB | ( | const double | Y, | |
const double | Pb, | |||
const double | Pr, | |||
Quantum * | red, | |||
Quantum * | green, | |||
Quantum * | blue | |||
) | [static] |
References ClampToQuantum(), and QuantumRange.
Referenced by ConvertYCbCrToRGB(), and TransformRGBImage().
static void ConvertYUVToRGB | ( | const double | Y, | |
const double | U, | |||
const double | V, | |||
Quantum * | red, | |||
Quantum * | green, | |||
Quantum * | blue | |||
) | [static] |
References ClampToQuantum(), and QuantumRange.
Referenced by TransformRGBImage().
MagickExport ColorspaceType GetImageColorspaceType | ( | const Image * | image, | |
ExceptionInfo * | exception | |||
) |
MagickExport MagickBooleanType RGBTransformImage | ( | Image * | image, | |
const ColorspaceType | colorspace | |||
) |
References AcquireAuthenticCacheView(), AcquireQuantumMemory(), _PixelPacket::blue, _MagickPixelPacket::blue, ClampToQuantum(), CMYColorspace, CMYKColorspace, _Image::colormap, _Image::colors, ColorSeparationMatteType, ColorSeparationType, _Image::columns, ConvertRGBToCMY(), ConvertRGBToCMYK(), ConvertRGBToHCL(), ConvertRGBToHCLp(), ConvertRGBToHSB(), ConvertRGBToHSI(), ConvertRGBToHSL(), ConvertRGBToHSV(), ConvertRGBToHWB(), ConvertRGBToLab(), ConvertRGBToLCHab(), ConvertRGBToLCHuv(), ConvertRGBToLMS(), ConvertRGBToLuv(), ConvertRGBToxyY(), ConvertRGBToXYZ(), ConvertRGBToYCbCr(), ConvertRGBToYDbDr(), ConvertRGBToYIQ(), ConvertRGBToYPbPr(), ConvertRGBToYUV(), _Image::debug, DecodePixelGamma(), DestroyCacheView(), DirectClass, DisplayGamma, _Image::exception, _Image::filename, FilmGamma, GetCacheViewAuthenticIndexQueue(), GetCacheViewAuthenticPixels(), GetImageProperty(), GetMagickModule, GetMagickPixelPacket(), GetPixelBlue, GetPixelGreen, GetPixelIntensity(), GetPixelRed, GRAYColorspace, GrayscaleType, _PixelPacket::green, _MagickPixelPacket::green, HCLColorspace, HCLpColorspace, HSBColorspace, HSIColorspace, HSLColorspace, HSVColorspace, HWBColorspace, LabColorspace, LCHabColorspace, LCHColorspace, LCHuvColorspace, LinearGRAYColorspace, LMSColorspace, LogColorspace, LogMagickEvent(), LuvColorspace, magick_restrict, MagickCoreSignature, MagickFalse, MagickTrue, _Image::matte, MaxMap, OHTAColorspace, PerceptibleReciprocal(), _Image::progress_monitor, PseudoClass, QuantumRange, QuantumScale, Rec601LumaColorspace, Rec601YCbCrColorspace, Rec709LumaColorspace, Rec709YCbCrColorspace, _PixelPacket::red, _MagickPixelPacket::red, ReferenceBlack, ReferenceWhite, RelinquishMagickMemory(), ResourceLimitError, RGBColorspace, RGBTransformImageTag, _Image::rows, ScaleCharToQuantum(), ScaleMapToQuantum(), ScaleQuantumToMap(), scRGBColorspace, SetImageColorspace(), SetImageProgress(), SetImageStorageClass(), SetMagickPixelPacket(), SetPixelBlue, SetPixelGray, SetPixelGreen, SetPixelPacket(), SetPixelRed, _Image::signature, sRGBColorspace, _Image::storage_class, StringToDouble(), SyncCacheViewAuthenticPixels(), SyncImage(), ThrowBinaryException, TraceEvent, TransparentColorspace, _Image::type, UndefinedColorspace, _PrimaryInfo::x, _TransformPacket::x, xyYColorspace, XYZColorspace, _TransformPacket::y, _PrimaryInfo::y, YCbCrColorspace, YCCColorspace, YDbDrColorspace, YIQColorspace, YPbPrColorspace, YUVColorspace, _TransformPacket::z, and _PrimaryInfo::z.
Referenced by TransformImageColorspace().
static ssize_t RoundToYCC | ( | const MagickRealType | value | ) | [inline, static] |
Referenced by TransformRGBImage().
MagickExport MagickBooleanType SetImageColorspace | ( | Image * | image, | |
const ColorspaceType | colorspace | |||
) |
References _ChromaticityInfo::blue_primary, _Image::chromaticity, _Image::colorspace, _Image::debug, _Image::exception, _Image::filename, _Image::gamma, GetMagickModule, GrayscaleType, _ChromaticityInfo::green_primary, IsGrayColorspace(), IsRGBColorspace(), LinearGRAYColorspace, LogMagickEvent(), MagickCoreSignature, MagickFalse, MagickTrue, PerceptualIntent, _ChromaticityInfo::red_primary, _Image::rendering_intent, _Image::signature, SyncImagePixelCache(), TraceEvent, _Image::type, UndefinedIntent, _ChromaticityInfo::white_point, _PrimaryInfo::x, xyYColorspace, XYZColorspace, _PrimaryInfo::y, and _PrimaryInfo::z.
Referenced by AnnotateImage(), AppendImages(), BilevelImageChannel(), BlackThresholdImageChannel(), ClutImageChannel(), ColorizeImage(), CombineImages(), CompositeImageChannel(), ConsolidateCMYKImages(), ContrastStretchImageChannel(), DistortImage(), DrawPrimitive(), FloodfillPaintImage(), FrameImage(), GrayscaleImage(), HaldClutImageChannel(), ImportImagePixels(), LevelColorsImageChannel(), ModulateImage(), ProfileImage(), RGBTransformImage(), SeparateImageChannel(), SetImageProperty(), SetPixelCacheVirtualMethod(), ShadowImage(), SolarizeImageChannel(), StereoAnaglyphImage(), TintImage(), TransformImageColorspace(), TransformRGBImage(), and WhiteThresholdImageChannel().
MagickExport MagickBooleanType SetImageGray | ( | Image * | image, | |
ExceptionInfo * | exception | |||
) |
References AcquireVirtualCacheView(), BilevelType, _Image::colorspace, _Image::columns, _Image::debug, DestroyCacheView(), _Image::filename, GetCacheViewVirtualPixels(), GetImageProperty(), GetMagickModule, GRAYColorspace, GrayscaleMatteType, GrayscaleType, IsGrayColorspace(), IsGrayPixel(), IsMonochromePixel(), IssRGBCompatibleColorspace(), IsStringNotFalse(), LogMagickEvent(), MagickCoreSignature, MagickFalse, MagickTrue, _Image::matte, _Image::rows, _Image::signature, SyncImagePixelCache(), TraceEvent, _Image::type, and UndefinedType.
Referenced by ContrastStretchImageChannel(), GetMagickPropertyLetter(), and QuantizeImage().
MagickExport MagickBooleanType SetImageMonochrome | ( | Image * | image, | |
ExceptionInfo * | exception | |||
) |
References AcquireVirtualCacheView(), BilevelType, _Image::colorspace, _Image::columns, _Image::debug, DestroyCacheView(), _Image::filename, GetCacheViewVirtualPixels(), GetImageProperty(), GetMagickModule, GRAYColorspace, IsGrayColorspace(), IsMonochromePixel(), IssRGBCompatibleColorspace(), IsStringNotFalse(), LogMagickEvent(), MagickCoreSignature, MagickFalse, MagickTrue, _Image::rows, _Image::signature, SyncImagePixelCache(), TraceEvent, _Image::type, and UndefinedType.
Referenced by SetGrayscaleImage().
MagickExport MagickBooleanType TransformImageColorspace | ( | Image * | image, | |
const ColorspaceType | colorspace | |||
) |
References _Image::colorspace, _Image::debug, DeleteImageProfile(), _Image::filename, GetMagickModule, IssRGBColorspace(), LogMagickEvent(), MagickCoreSignature, MagickFalse, MagickTrue, RGBTransformImage(), SetImageColorspace(), _Image::signature, TraceEvent, TransformRGBImage(), and UndefinedColorspace.
Referenced by AssignImageColors(), CannyEdgeImage(), ClassifyImageColors(), CombineImages(), ConformMagickPixelPacket(), GetImageChannelPerceptualHash(), QuantizeImage(), SegmentImage(), SelectiveBlurImageChannel(), SetGrayscaleImage(), SetImageBackgroundColor(), SetImageType(), TextureImage(), TransformColorspace(), and VignetteImage().
MagickExport MagickBooleanType TransformRGBImage | ( | Image * | image, | |
const ColorspaceType | colorspace | |||
) |
References AcquireAuthenticCacheView(), AcquireQuantumMemory(), _PixelPacket::blue, _MagickPixelPacket::blue, ClampToQuantum(), CMYColorspace, CMYKColorspace, _Image::colormap, _Image::colors, _Image::columns, ConvertCMYKToRGB(), ConvertCMYToRGB(), ConvertHCLpToRGB(), ConvertHCLToRGB(), ConvertHSBToRGB(), ConvertHSIToRGB(), ConvertHSLToRGB(), ConvertHSVToRGB(), ConvertHWBToRGB(), ConvertLabToRGB(), ConvertLCHabToRGB(), ConvertLCHuvToRGB(), ConvertLMSToRGB(), ConvertLuvToRGB(), ConvertxyYToRGB(), ConvertXYZToRGB(), ConvertYCbCrToRGB(), ConvertYDbDrToRGB(), ConvertYIQToRGB(), ConvertYPbPrToRGB(), ConvertYUVToRGB(), _Image::debug, DestroyCacheView(), DirectClass, DisplayGamma, EncodePixelGamma(), _Image::exception, _Image::filename, FilmGamma, GetCacheViewAuthenticIndexQueue(), GetCacheViewAuthenticPixels(), GetImageProperty(), GetMagickModule, GetMagickPixelPacket(), GetPixelBlue, GetPixelGray, GetPixelGreen, GetPixelRed, GRAYColorspace, _PixelPacket::green, _MagickPixelPacket::green, HCLColorspace, HCLpColorspace, HSBColorspace, HSIColorspace, HSLColorspace, HSVColorspace, HWBColorspace, _Image::intensity, LabColorspace, LCHabColorspace, LCHColorspace, LCHuvColorspace, LMSColorspace, LogColorspace, LogMagickEvent(), LuvColorspace, magick_restrict, MagickCoreSignature, MagickFalse, MagickTrue, MaxMap, OHTAColorspace, PerceptibleReciprocal(), _Image::progress_monitor, PseudoClass, QuantumRange, QuantumScale, Rec601LumaColorspace, Rec601LuminancePixelIntensityMethod, Rec601YCbCrColorspace, Rec709LumaColorspace, Rec709LuminancePixelIntensityMethod, Rec709YCbCrColorspace, _PixelPacket::red, _MagickPixelPacket::red, ReferenceBlack, ReferenceWhite, RelinquishMagickMemory(), ResourceLimitError, RGBColorspace, RoundToYCC(), _Image::rows, ScaleCharToQuantum(), ScaleMapToQuantum(), ScaleQuantumToMap(), scRGBColorspace, SetImageColorspace(), SetImageProgress(), SetImageStorageClass(), SetMagickPixelPacket(), SetPixelBlue, SetPixelGreen, SetPixelPacket(), SetPixelRed, _Image::signature, sRGBColorspace, _Image::storage_class, StringToDouble(), SyncCacheViewAuthenticPixels(), SyncImage(), ThrowBinaryException, TraceEvent, TransformRGBImageTag, _TransformPacket::x, xyYColorspace, XYZColorspace, _TransformPacket::y, YCbCrColorspace, YCCColorspace, YDbDrColorspace, YIQColorspace, YPbPrColorspace, YUVColorspace, and _TransformPacket::z.
Referenced by TransformImageColorspace().