ConvertXYZToLuv(X,Y,Z,L,u,v);
}
+static void ConvertRGBToYDbDr(const double red,const double green,
+ const double blue,double *Y,double *Db,double *Dr)
+{
+ *Y=QuantumScale*(0.298839*red+0.586811*green+0.114350*blue);
+ *Db=QuantumScale*((-0.450)*red-0.883*green+1.333*blue)+0.5;
+ *Dr=QuantumScale*(1.333*red-0.116*green-0.217*blue)+0.5;
+}
+
static void ConvertRGBToYIQ(const double red,const double green,
const double blue,double *Y,double *I,double *Q)
{
case LuvColorspace:
case XYZColorspace:
case YCbCrColorspace:
+ case YDbDrColorspace:
case YIQColorspace:
case YPbPrColorspace:
case YUVColorspace:
ConvertRGBToYCbCr(red,green,blue,&X,&Y,&Z);
break;
}
+ case YDbDrColorspace:
+ {
+ ConvertRGBToYDbDr(red,green,blue,&X,&Y,&Z);
+ break;
+ }
case YIQColorspace:
{
ConvertRGBToYIQ(red,green,blue,&X,&Y,&Z);
(Q-0.5));
}
+static void ConvertYDbDrToRGB(const double Y,const double Db,const double Dr,
+ double *red,double *green,double *blue)
+{
+ *red=QuantumRange*(Y-9.2303716147657e-05*(Db-0.5)+
+ 0.52591263066186533*(Dr-0.5));
+ *green=QuantumRange*(Y-12913289889050927*(Db-0.5)-
+ 0.26789932820759876*(Dr-0.5));
+ *blue=QuantumRange*(Y+0.66467905997895482*(Db-0.5)+
+ 7.9202543533108e-05*(Dr-0.5));
+}
+
static void ConvertYUVToRGB(const double Y,const double U,const double V,
double *red,double *green,double *blue)
{
case LuvColorspace:
case XYZColorspace:
case YCbCrColorspace:
+ case YDbDrColorspace:
case YIQColorspace:
case YPbPrColorspace:
case YUVColorspace:
ConvertYCbCrToRGB(X,Y,Z,&red,&green,&blue);
break;
}
+ case YDbDrColorspace:
+ {
+ ConvertYDbDrToRGB(X,Y,Z,&red,&green,&blue);
+ break;
+ }
case YIQColorspace:
{
ConvertYIQToRGB(X,Y,Z,&red,&green,&blue);
{ "Transparent", TransparentColorspace, UndefinedOptionFlag, MagickFalse },
{ "XYZ", XYZColorspace, UndefinedOptionFlag, MagickFalse },
{ "YCbCr", YCbCrColorspace, UndefinedOptionFlag, MagickFalse },
+ { "YDbDr", YDbDrColorspace, UndefinedOptionFlag, MagickFalse },
{ "YCC", YCCColorspace, UndefinedOptionFlag, MagickFalse },
{ "YIQ", YIQColorspace, UndefinedOptionFlag, MagickFalse },
{ "YPbPr", YPbPrColorspace, UndefinedOptionFlag, MagickFalse },