129 assert(image != (
Image *) NULL);
173 const double b,
double *red,
double *green,
double *blue)
185 const double b,
double *red,
double *green,
double *blue)
197 const double b,
double *red,
double *green,
double *blue)
209 const double blue,
double *cyan,
double *magenta,
double *yellow)
217 const double blue,
double *r,
double *g,
double *b)
229 const double blue,
double *r,
double *g,
double *b)
241 const double blue,
double *r,
double *g,
double *b)
253 const double z,
double *L,
double *M,
double *S)
255 *L=0.7328*x+0.4296*y-0.1624*z;
256 *M=(-0.7036*x+1.6975*y+0.0061*z);
257 *S=0.0030*x+0.0136*y+0.9834*z;
261 const double blue,
double *L,
double *M,
double *S)
273 const double blue,
double *L,
double *u,
double *v)
285 const double blue,
double *low_x,
double *low_y,
double *cap_Y)
301 const double Z,
const double white_luminance,
double *Jz,
double *az,
double *bz)
303 #define Jzazbz_b 1.15 304 #define Jzazbz_g 0.66 305 #define Jzazbz_c1 (3424.0/4096.0) 306 #define Jzazbz_c2 (2413.0/128.0) 307 #define Jzazbz_c3 (2392.0/128.0) 308 #define Jzazbz_n (2610.0/16384.0) 309 #define Jzazbz_p (1.7*2523.0/32.0) 310 #define Jzazbz_d (-0.56) 311 #define Jzazbz_d0 (1.6295499532821566e-11) 329 L=0.41478972*Xp+0.579999*Yp+0.0146480*Zp;
330 M=(-0.2015100)*Xp+1.120649*Yp+0.0531008*Zp;
331 S=(-0.0166008)*Xp+0.264800*Yp+0.6684799*Zp;
339 *az=3.52400*Lp-4.066708*Mp+0.542708*Sp+0.5;
340 *bz=0.199076*Lp+1.096799*Mp-1.295875*Sp+0.5;
345 const double bz,
const double white_luminance,
double *X,
double *Y,
double *Z)
366 Lp=Iz+0.138605043271539*azz+0.0580473161561189*bzz;
367 Mp=Iz-0.138605043271539*azz-0.0580473161561189*bzz;
368 Sp=Iz-0.0960192420263189*azz-0.811891896056039*bzz;
378 Xp=1.92422643578761*L-1.00479231259537*M+0.037651404030618*S;
379 Yp=0.350316762094999*L+0.726481193931655*M-0.065384422948085*S;
380 Zp=(-0.0909828109828476)*L-0.312728290523074*M+1.52276656130526*S;
387 const double blue,
const double white_luminance,
double *Jz,
double *az,
400 const double bz,
const double white_luminance,
double *red,
double *green,
413 const double blue,
double *Y,
double *Db,
double *Dr)
415 *Y=
QuantumScale*(0.298839*red+0.586811*green+0.114350*blue);
416 *Db=
QuantumScale*(-0.450*red-0.883*green+1.333*blue)+0.5;
417 *Dr=
QuantumScale*(-1.333*red+1.116*green+0.217*blue)+0.5;
421 const double blue,
double *Y,
double *I,
double *Q)
423 *Y=
QuantumScale*(0.298839*red+0.586811*green+0.114350*blue);
424 *I=
QuantumScale*(0.595716*red-0.274453*green-0.321263*blue)+0.5;
425 *Q=
QuantumScale*(0.211456*red-0.522591*green+0.311135*blue)+0.5;
429 const double blue,
double *Y,
double *Pb,
double *Pr)
431 *Y=
QuantumScale*(0.298839*red+0.586811*green+0.114350*blue);
432 *Pb=
QuantumScale*((-0.1687367)*red-0.331264*green+0.5*blue)+0.5;
433 *Pr=
QuantumScale*(0.5*red-0.418688*green-0.081312*blue)+0.5;
437 const double blue,
double *Y,
double *Cb,
double *Cr)
443 const double blue,
double *Y,
double *U,
double *V)
445 *Y=
QuantumScale*(0.298839*red+0.586811*green+0.114350*blue);
446 *U=
QuantumScale*((-0.147)*red-0.289*green+0.436*blue)+0.5;
453 #define sRGBTransformImageTag "RGBTransform/Image" 478 assert(image != (
Image *) NULL);
508 #if defined(MAGICKCORE_OPENMP_SUPPORT) 509 #pragma omp parallel for schedule(static) shared(status) \ 510 magick_number_threads(image,image,image->rows,1) 512 for (y=0; y < (ssize_t) image->
rows; y++)
536 for (x=0; x < (ssize_t) image->
columns; x++)
567 #if defined(MAGICKCORE_OPENMP_SUPPORT) 568 #pragma omp parallel for schedule(static) shared(status) \ 569 magick_number_threads(image,image,image->rows,1) 571 for (y=0; y < (ssize_t) image->
rows; y++)
591 for (x=0; x < (ssize_t) image->
columns; x++)
624 #if defined(MAGICKCORE_OPENMP_SUPPORT) 625 #pragma omp parallel for schedule(static) shared(status) \ 626 magick_number_threads(image,image,image->rows,1) 628 for (y=0; y < (ssize_t) image->
rows; y++)
648 for (x=0; x < (ssize_t) image->
columns; x++)
703 white_luminance=10000.0;
705 if (value != (
const char *) NULL)
715 #if defined(MAGICKCORE_OPENMP_SUPPORT) 716 #pragma omp parallel for schedule(static) shared(status) \ 717 magick_number_threads(image,image,image->rows,1) 719 for (y=0; y < (ssize_t) image->
rows; y++)
739 for (x=0; x < (ssize_t) image->
columns; x++)
899 #define DisplayGamma (1.0/1.7) 900 #define FilmGamma 0.6 901 #define ReferenceBlack 95.0 902 #define ReferenceWhite 685.0 924 if (value != (
const char *) NULL)
928 if (value != (
const char *) NULL)
932 if (value != (
const char *) NULL)
936 if (value != (
const char *) NULL)
940 if (logmap == (
Quantum *) NULL)
943 black=pow(10.0,(reference_black-reference_white)*(gamma/density)*0.002*
945 #if defined(MAGICKCORE_OPENMP_SUPPORT) 946 #pragma omp parallel for schedule(static) 948 for (i=0; i <= (ssize_t)
MaxMap; i++)
949 logmap[i]=ScaleMapToQuantum((
double) (
MaxMap*(reference_white+
950 log10(black+(1.0*i/
MaxMap)*(1.0-black))/((gamma/density)*0.002*
953 #if defined(MAGICKCORE_OPENMP_SUPPORT) 954 #pragma omp parallel for schedule(static) shared(status) \ 955 magick_number_threads(image,image,image->rows,1) 957 for (y=0; y < (ssize_t) image->
rows; y++)
977 for (x=(ssize_t) image->
columns; x != 0; x--)
1020 #if defined(MAGICKCORE_OPENMP_SUPPORT) 1021 #pragma omp parallel for schedule(static) shared(status) \ 1022 magick_number_threads(image,image,image->rows,1) 1024 for (y=0; y < (ssize_t) image->
rows; y++)
1044 for (x=0; x < (ssize_t) image->
columns; x++)
1093 (void) memset(&primary_info,0,
sizeof(primary_info));
1108 primary_info.
y=(double) (
MaxMap+1.0)/2.0;
1109 primary_info.
z=(double) (
MaxMap+1.0)/2.0;
1110 #if defined(MAGICKCORE_OPENMP_SUPPORT) 1111 #pragma omp parallel for schedule(static) 1113 for (i=0; i <= (ssize_t)
MaxMap; i++)
1139 primary_info.
y=(double) (
MaxMap+1.0)/2.0;
1140 primary_info.
z=(double) (
MaxMap+1.0)/2.0;
1141 #if defined(MAGICKCORE_OPENMP_SUPPORT) 1142 #pragma omp parallel for schedule(static) 1144 for (i=0; i <= (ssize_t)
MaxMap; i++)
1170 primary_info.
y=(double) (
MaxMap+1.0)/2.0;
1171 primary_info.
z=(double) (
MaxMap+1.0)/2.0;
1172 #if defined(MAGICKCORE_OPENMP_SUPPORT) 1173 #pragma omp parallel for schedule(static) 1175 for (i=0; i <= (ssize_t)
MaxMap; i++)
1200 primary_info.
y=(double) ScaleQuantumToMap(ScaleCharToQuantum(156));
1201 primary_info.
z=(double) ScaleQuantumToMap(ScaleCharToQuantum(137));
1202 for (i=0; i <= (ssize_t) (0.018*
MaxMap); i++)
1204 x_map[i].
x=0.005382*i;
1205 x_map[i].
y=(-0.003296)*i;
1206 x_map[i].
z=0.009410*i;
1207 y_map[i].
x=0.010566*i;
1208 y_map[i].
y=(-0.006471)*i;
1209 y_map[i].
z=(-0.007880)*i;
1210 z_map[i].
x=0.002052*i;
1211 z_map[i].
y=0.009768*i;
1212 z_map[i].
z=(-0.001530)*i;
1214 for ( ; i <= (ssize_t)
MaxMap; i++)
1216 x_map[i].
x=0.298839*(1.099*i-0.099);
1217 x_map[i].
y=(-0.298839)*(1.099*i-0.099);
1218 x_map[i].
z=0.70100*(1.099*i-0.099);
1219 y_map[i].
x=0.586811*(1.099*i-0.099);
1220 y_map[i].
y=(-0.586811)*(1.099*i-0.099);
1221 y_map[i].
z=(-0.586811)*(1.099*i-0.099);
1222 z_map[i].
x=0.114350*(1.099*i-0.099);
1223 z_map[i].
y=0.88600*(1.099*i-0.099);
1224 z_map[i].
z=(-0.114350)*(1.099*i-0.099);
1233 #if defined(MAGICKCORE_OPENMP_SUPPORT) 1234 #pragma omp parallel for schedule(static) 1236 for (i=0; i <= (ssize_t)
MaxMap; i++)
1263 #if defined(MAGICKCORE_OPENMP_SUPPORT) 1264 #pragma omp parallel for schedule(static) shared(status) \ 1265 magick_number_threads(image,image,image->rows,1) 1267 for (y=0; y < (ssize_t) image->
rows; y++)
1295 for (x=0; x < (ssize_t) image->
columns; x++)
1303 pixel.
red=(x_map[red].
x+y_map[green].
x+z_map[blue].
x)+
1305 pixel.
green=(x_map[red].
y+y_map[green].
y+z_map[blue].
y)+
1307 pixel.
blue=(x_map[red].
z+y_map[green].
z+z_map[blue].
z)+
1322 #if defined(MAGICKCORE_OPENMP_SUPPORT) 1345 for (i=0; i < (ssize_t) image->
colors; i++)
1353 pixel.
red=x_map[red].
x+y_map[green].
x+z_map[blue].
x+primary_info.
x;
1354 pixel.
green=x_map[red].
y+y_map[green].
y+z_map[blue].
y+primary_info.
y;
1355 pixel.
blue=x_map[red].
z+y_map[green].
z+z_map[blue].
z+primary_info.
z;
1411 assert(image != (
Image *) NULL);
1421 image->
gamma=1.000/2.200;
1491 assert(image != (
Image *) NULL);
1545 assert(image != (
Image *) NULL);
1599 assert(image != (
Image *) NULL);
1657 const double yellow,
double *red,
double *green,
double *blue)
1665 double *X,
double *Y,
double *Z)
1667 *X=1.096123820835514*L-0.278869000218287*M+0.182745179382773*S;
1668 *Y=0.454369041975359*L+0.473533154307412*M+0.072097803717229*S;
1669 *Z=(-0.009627608738429)*L-0.005698031216113*M+1.015325639954543*S;
1673 const double S,
double *red,
double *green,
double *blue)
1685 const double v,
double *red,
double *green,
double *blue)
1700 if (value >= 1388.0)
1702 return((ssize_t) (value+0.5));
1706 const double b,
double *red,
double *green,
double *blue)
1718 const double cap_Y,
double *red,
double *green,
double *blue)
1727 X=gamma*cap_Y*low_x;
1729 Z=gamma*cap_Y*(1.0-low_x-low_y);
1734 double *red,
double *green,
double *blue)
1736 *red=
QuantumRange*(0.99999999999914679361*Y-1.2188941887145875e-06*(Pb-0.5)+
1737 1.4019995886561440468*(Pr-0.5));
1738 *green=
QuantumRange*(0.99999975910502514331*Y-0.34413567816504303521*(Pb-0.5)-
1739 0.71413649331646789076*(Pr-0.5));
1740 *blue=
QuantumRange*(1.00000124040004623180*Y+1.77200006607230409200*(Pb-0.5)+
1741 2.1453384174593273e-06*(Pr-0.5));
1745 const double Cr,
double *red,
double *green,
double *blue)
1751 double *red,
double *green,
double *blue)
1753 *red=
QuantumRange*(Y+0.9562957197589482261*(I-0.5)+0.6210244164652610754*
1755 *green=
QuantumRange*(Y-0.2721220993185104464*(I-0.5)-0.6473805968256950427*
1757 *blue=
QuantumRange*(Y-1.1069890167364901945*(I-0.5)+1.7046149983646481374*
1762 double *red,
double *green,
double *blue)
1765 0.52591263066186533*(Dr-0.5));
1767 0.26789932820759876*(Dr-0.5));
1769 7.9202543533108e-05*(Dr-0.5));
1773 double *red,
double *green,
double *blue)
1775 *red=
QuantumRange*(Y-3.945707070708279e-05*(U-0.5)+1.1398279671717170825*
1777 *green=
QuantumRange*(Y-0.3946101641414141437*(U-0.5)-0.5805003156565656797*
1779 *blue=
QuantumRange*(Y+2.0319996843434342537*(U-0.5)-4.813762626262513e-04*
1786 #define TransformsRGBImageTag "Transform/Image" 1791 0.000000f, 0.000720f, 0.001441f, 0.002161f, 0.002882f, 0.003602f,
1792 0.004323f, 0.005043f, 0.005764f, 0.006484f, 0.007205f, 0.007925f,
1793 0.008646f, 0.009366f, 0.010086f, 0.010807f, 0.011527f, 0.012248f,
1794 0.012968f, 0.013689f, 0.014409f, 0.015130f, 0.015850f, 0.016571f,
1795 0.017291f, 0.018012f, 0.018732f, 0.019452f, 0.020173f, 0.020893f,
1796 0.021614f, 0.022334f, 0.023055f, 0.023775f, 0.024496f, 0.025216f,
1797 0.025937f, 0.026657f, 0.027378f, 0.028098f, 0.028818f, 0.029539f,
1798 0.030259f, 0.030980f, 0.031700f, 0.032421f, 0.033141f, 0.033862f,
1799 0.034582f, 0.035303f, 0.036023f, 0.036744f, 0.037464f, 0.038184f,
1800 0.038905f, 0.039625f, 0.040346f, 0.041066f, 0.041787f, 0.042507f,
1801 0.043228f, 0.043948f, 0.044669f, 0.045389f, 0.046110f, 0.046830f,
1802 0.047550f, 0.048271f, 0.048991f, 0.049712f, 0.050432f, 0.051153f,
1803 0.051873f, 0.052594f, 0.053314f, 0.054035f, 0.054755f, 0.055476f,
1804 0.056196f, 0.056916f, 0.057637f, 0.058357f, 0.059078f, 0.059798f,
1805 0.060519f, 0.061239f, 0.061960f, 0.062680f, 0.063401f, 0.064121f,
1806 0.064842f, 0.065562f, 0.066282f, 0.067003f, 0.067723f, 0.068444f,
1807 0.069164f, 0.069885f, 0.070605f, 0.071326f, 0.072046f, 0.072767f,
1808 0.073487f, 0.074207f, 0.074928f, 0.075648f, 0.076369f, 0.077089f,
1809 0.077810f, 0.078530f, 0.079251f, 0.079971f, 0.080692f, 0.081412f,
1810 0.082133f, 0.082853f, 0.083573f, 0.084294f, 0.085014f, 0.085735f,
1811 0.086455f, 0.087176f, 0.087896f, 0.088617f, 0.089337f, 0.090058f,
1812 0.090778f, 0.091499f, 0.092219f, 0.092939f, 0.093660f, 0.094380f,
1813 0.095101f, 0.095821f, 0.096542f, 0.097262f, 0.097983f, 0.098703f,
1814 0.099424f, 0.100144f, 0.100865f, 0.101585f, 0.102305f, 0.103026f,
1815 0.103746f, 0.104467f, 0.105187f, 0.105908f, 0.106628f, 0.107349f,
1816 0.108069f, 0.108790f, 0.109510f, 0.110231f, 0.110951f, 0.111671f,
1817 0.112392f, 0.113112f, 0.113833f, 0.114553f, 0.115274f, 0.115994f,
1818 0.116715f, 0.117435f, 0.118156f, 0.118876f, 0.119597f, 0.120317f,
1819 0.121037f, 0.121758f, 0.122478f, 0.123199f, 0.123919f, 0.124640f,
1820 0.125360f, 0.126081f, 0.126801f, 0.127522f, 0.128242f, 0.128963f,
1821 0.129683f, 0.130403f, 0.131124f, 0.131844f, 0.132565f, 0.133285f,
1822 0.134006f, 0.134726f, 0.135447f, 0.136167f, 0.136888f, 0.137608f,
1823 0.138329f, 0.139049f, 0.139769f, 0.140490f, 0.141210f, 0.141931f,
1824 0.142651f, 0.143372f, 0.144092f, 0.144813f, 0.145533f, 0.146254f,
1825 0.146974f, 0.147695f, 0.148415f, 0.149135f, 0.149856f, 0.150576f,
1826 0.151297f, 0.152017f, 0.152738f, 0.153458f, 0.154179f, 0.154899f,
1827 0.155620f, 0.156340f, 0.157061f, 0.157781f, 0.158501f, 0.159222f,
1828 0.159942f, 0.160663f, 0.161383f, 0.162104f, 0.162824f, 0.163545f,
1829 0.164265f, 0.164986f, 0.165706f, 0.166427f, 0.167147f, 0.167867f,
1830 0.168588f, 0.169308f, 0.170029f, 0.170749f, 0.171470f, 0.172190f,
1831 0.172911f, 0.173631f, 0.174352f, 0.175072f, 0.175793f, 0.176513f,
1832 0.177233f, 0.177954f, 0.178674f, 0.179395f, 0.180115f, 0.180836f,
1833 0.181556f, 0.182277f, 0.182997f, 0.183718f, 0.184438f, 0.185159f,
1834 0.185879f, 0.186599f, 0.187320f, 0.188040f, 0.188761f, 0.189481f,
1835 0.190202f, 0.190922f, 0.191643f, 0.192363f, 0.193084f, 0.193804f,
1836 0.194524f, 0.195245f, 0.195965f, 0.196686f, 0.197406f, 0.198127f,
1837 0.198847f, 0.199568f, 0.200288f, 0.201009f, 0.201729f, 0.202450f,
1838 0.203170f, 0.203890f, 0.204611f, 0.205331f, 0.206052f, 0.206772f,
1839 0.207493f, 0.208213f, 0.208934f, 0.209654f, 0.210375f, 0.211095f,
1840 0.211816f, 0.212536f, 0.213256f, 0.213977f, 0.214697f, 0.215418f,
1841 0.216138f, 0.216859f, 0.217579f, 0.218300f, 0.219020f, 0.219741f,
1842 0.220461f, 0.221182f, 0.221902f, 0.222622f, 0.223343f, 0.224063f,
1843 0.224784f, 0.225504f, 0.226225f, 0.226945f, 0.227666f, 0.228386f,
1844 0.229107f, 0.229827f, 0.230548f, 0.231268f, 0.231988f, 0.232709f,
1845 0.233429f, 0.234150f, 0.234870f, 0.235591f, 0.236311f, 0.237032f,
1846 0.237752f, 0.238473f, 0.239193f, 0.239914f, 0.240634f, 0.241354f,
1847 0.242075f, 0.242795f, 0.243516f, 0.244236f, 0.244957f, 0.245677f,
1848 0.246398f, 0.247118f, 0.247839f, 0.248559f, 0.249280f, 0.250000f,
1849 0.250720f, 0.251441f, 0.252161f, 0.252882f, 0.253602f, 0.254323f,
1850 0.255043f, 0.255764f, 0.256484f, 0.257205f, 0.257925f, 0.258646f,
1851 0.259366f, 0.260086f, 0.260807f, 0.261527f, 0.262248f, 0.262968f,
1852 0.263689f, 0.264409f, 0.265130f, 0.265850f, 0.266571f, 0.267291f,
1853 0.268012f, 0.268732f, 0.269452f, 0.270173f, 0.270893f, 0.271614f,
1854 0.272334f, 0.273055f, 0.273775f, 0.274496f, 0.275216f, 0.275937f,
1855 0.276657f, 0.277378f, 0.278098f, 0.278818f, 0.279539f, 0.280259f,
1856 0.280980f, 0.281700f, 0.282421f, 0.283141f, 0.283862f, 0.284582f,
1857 0.285303f, 0.286023f, 0.286744f, 0.287464f, 0.288184f, 0.288905f,
1858 0.289625f, 0.290346f, 0.291066f, 0.291787f, 0.292507f, 0.293228f,
1859 0.293948f, 0.294669f, 0.295389f, 0.296109f, 0.296830f, 0.297550f,
1860 0.298271f, 0.298991f, 0.299712f, 0.300432f, 0.301153f, 0.301873f,
1861 0.302594f, 0.303314f, 0.304035f, 0.304755f, 0.305476f, 0.306196f,
1862 0.306916f, 0.307637f, 0.308357f, 0.309078f, 0.309798f, 0.310519f,
1863 0.311239f, 0.311960f, 0.312680f, 0.313401f, 0.314121f, 0.314842f,
1864 0.315562f, 0.316282f, 0.317003f, 0.317723f, 0.318444f, 0.319164f,
1865 0.319885f, 0.320605f, 0.321326f, 0.322046f, 0.322767f, 0.323487f,
1866 0.324207f, 0.324928f, 0.325648f, 0.326369f, 0.327089f, 0.327810f,
1867 0.328530f, 0.329251f, 0.329971f, 0.330692f, 0.331412f, 0.332133f,
1868 0.332853f, 0.333573f, 0.334294f, 0.335014f, 0.335735f, 0.336455f,
1869 0.337176f, 0.337896f, 0.338617f, 0.339337f, 0.340058f, 0.340778f,
1870 0.341499f, 0.342219f, 0.342939f, 0.343660f, 0.344380f, 0.345101f,
1871 0.345821f, 0.346542f, 0.347262f, 0.347983f, 0.348703f, 0.349424f,
1872 0.350144f, 0.350865f, 0.351585f, 0.352305f, 0.353026f, 0.353746f,
1873 0.354467f, 0.355187f, 0.355908f, 0.356628f, 0.357349f, 0.358069f,
1874 0.358790f, 0.359510f, 0.360231f, 0.360951f, 0.361671f, 0.362392f,
1875 0.363112f, 0.363833f, 0.364553f, 0.365274f, 0.365994f, 0.366715f,
1876 0.367435f, 0.368156f, 0.368876f, 0.369597f, 0.370317f, 0.371037f,
1877 0.371758f, 0.372478f, 0.373199f, 0.373919f, 0.374640f, 0.375360f,
1878 0.376081f, 0.376801f, 0.377522f, 0.378242f, 0.378963f, 0.379683f,
1879 0.380403f, 0.381124f, 0.381844f, 0.382565f, 0.383285f, 0.384006f,
1880 0.384726f, 0.385447f, 0.386167f, 0.386888f, 0.387608f, 0.388329f,
1881 0.389049f, 0.389769f, 0.390490f, 0.391210f, 0.391931f, 0.392651f,
1882 0.393372f, 0.394092f, 0.394813f, 0.395533f, 0.396254f, 0.396974f,
1883 0.397695f, 0.398415f, 0.399135f, 0.399856f, 0.400576f, 0.401297f,
1884 0.402017f, 0.402738f, 0.403458f, 0.404179f, 0.404899f, 0.405620f,
1885 0.406340f, 0.407061f, 0.407781f, 0.408501f, 0.409222f, 0.409942f,
1886 0.410663f, 0.411383f, 0.412104f, 0.412824f, 0.413545f, 0.414265f,
1887 0.414986f, 0.415706f, 0.416427f, 0.417147f, 0.417867f, 0.418588f,
1888 0.419308f, 0.420029f, 0.420749f, 0.421470f, 0.422190f, 0.422911f,
1889 0.423631f, 0.424352f, 0.425072f, 0.425793f, 0.426513f, 0.427233f,
1890 0.427954f, 0.428674f, 0.429395f, 0.430115f, 0.430836f, 0.431556f,
1891 0.432277f, 0.432997f, 0.433718f, 0.434438f, 0.435158f, 0.435879f,
1892 0.436599f, 0.437320f, 0.438040f, 0.438761f, 0.439481f, 0.440202f,
1893 0.440922f, 0.441643f, 0.442363f, 0.443084f, 0.443804f, 0.444524f,
1894 0.445245f, 0.445965f, 0.446686f, 0.447406f, 0.448127f, 0.448847f,
1895 0.449568f, 0.450288f, 0.451009f, 0.451729f, 0.452450f, 0.453170f,
1896 0.453891f, 0.454611f, 0.455331f, 0.456052f, 0.456772f, 0.457493f,
1897 0.458213f, 0.458934f, 0.459654f, 0.460375f, 0.461095f, 0.461816f,
1898 0.462536f, 0.463256f, 0.463977f, 0.464697f, 0.465418f, 0.466138f,
1899 0.466859f, 0.467579f, 0.468300f, 0.469020f, 0.469741f, 0.470461f,
1900 0.471182f, 0.471902f, 0.472622f, 0.473343f, 0.474063f, 0.474784f,
1901 0.475504f, 0.476225f, 0.476945f, 0.477666f, 0.478386f, 0.479107f,
1902 0.479827f, 0.480548f, 0.481268f, 0.481988f, 0.482709f, 0.483429f,
1903 0.484150f, 0.484870f, 0.485591f, 0.486311f, 0.487032f, 0.487752f,
1904 0.488473f, 0.489193f, 0.489914f, 0.490634f, 0.491354f, 0.492075f,
1905 0.492795f, 0.493516f, 0.494236f, 0.494957f, 0.495677f, 0.496398f,
1906 0.497118f, 0.497839f, 0.498559f, 0.499280f, 0.500000f, 0.500720f,
1907 0.501441f, 0.502161f, 0.502882f, 0.503602f, 0.504323f, 0.505043f,
1908 0.505764f, 0.506484f, 0.507205f, 0.507925f, 0.508646f, 0.509366f,
1909 0.510086f, 0.510807f, 0.511527f, 0.512248f, 0.512968f, 0.513689f,
1910 0.514409f, 0.515130f, 0.515850f, 0.516571f, 0.517291f, 0.518012f,
1911 0.518732f, 0.519452f, 0.520173f, 0.520893f, 0.521614f, 0.522334f,
1912 0.523055f, 0.523775f, 0.524496f, 0.525216f, 0.525937f, 0.526657f,
1913 0.527378f, 0.528098f, 0.528818f, 0.529539f, 0.530259f, 0.530980f,
1914 0.531700f, 0.532421f, 0.533141f, 0.533862f, 0.534582f, 0.535303f,
1915 0.536023f, 0.536744f, 0.537464f, 0.538184f, 0.538905f, 0.539625f,
1916 0.540346f, 0.541066f, 0.541787f, 0.542507f, 0.543228f, 0.543948f,
1917 0.544669f, 0.545389f, 0.546109f, 0.546830f, 0.547550f, 0.548271f,
1918 0.548991f, 0.549712f, 0.550432f, 0.551153f, 0.551873f, 0.552594f,
1919 0.553314f, 0.554035f, 0.554755f, 0.555476f, 0.556196f, 0.556916f,
1920 0.557637f, 0.558357f, 0.559078f, 0.559798f, 0.560519f, 0.561239f,
1921 0.561960f, 0.562680f, 0.563401f, 0.564121f, 0.564842f, 0.565562f,
1922 0.566282f, 0.567003f, 0.567723f, 0.568444f, 0.569164f, 0.569885f,
1923 0.570605f, 0.571326f, 0.572046f, 0.572767f, 0.573487f, 0.574207f,
1924 0.574928f, 0.575648f, 0.576369f, 0.577089f, 0.577810f, 0.578530f,
1925 0.579251f, 0.579971f, 0.580692f, 0.581412f, 0.582133f, 0.582853f,
1926 0.583573f, 0.584294f, 0.585014f, 0.585735f, 0.586455f, 0.587176f,
1927 0.587896f, 0.588617f, 0.589337f, 0.590058f, 0.590778f, 0.591499f,
1928 0.592219f, 0.592939f, 0.593660f, 0.594380f, 0.595101f, 0.595821f,
1929 0.596542f, 0.597262f, 0.597983f, 0.598703f, 0.599424f, 0.600144f,
1930 0.600865f, 0.601585f, 0.602305f, 0.603026f, 0.603746f, 0.604467f,
1931 0.605187f, 0.605908f, 0.606628f, 0.607349f, 0.608069f, 0.608790f,
1932 0.609510f, 0.610231f, 0.610951f, 0.611671f, 0.612392f, 0.613112f,
1933 0.613833f, 0.614553f, 0.615274f, 0.615994f, 0.616715f, 0.617435f,
1934 0.618156f, 0.618876f, 0.619597f, 0.620317f, 0.621037f, 0.621758f,
1935 0.622478f, 0.623199f, 0.623919f, 0.624640f, 0.625360f, 0.626081f,
1936 0.626801f, 0.627522f, 0.628242f, 0.628963f, 0.629683f, 0.630403f,
1937 0.631124f, 0.631844f, 0.632565f, 0.633285f, 0.634006f, 0.634726f,
1938 0.635447f, 0.636167f, 0.636888f, 0.637608f, 0.638329f, 0.639049f,
1939 0.639769f, 0.640490f, 0.641210f, 0.641931f, 0.642651f, 0.643372f,
1940 0.644092f, 0.644813f, 0.645533f, 0.646254f, 0.646974f, 0.647695f,
1941 0.648415f, 0.649135f, 0.649856f, 0.650576f, 0.651297f, 0.652017f,
1942 0.652738f, 0.653458f, 0.654179f, 0.654899f, 0.655620f, 0.656340f,
1943 0.657061f, 0.657781f, 0.658501f, 0.659222f, 0.659942f, 0.660663f,
1944 0.661383f, 0.662104f, 0.662824f, 0.663545f, 0.664265f, 0.664986f,
1945 0.665706f, 0.666427f, 0.667147f, 0.667867f, 0.668588f, 0.669308f,
1946 0.670029f, 0.670749f, 0.671470f, 0.672190f, 0.672911f, 0.673631f,
1947 0.674352f, 0.675072f, 0.675793f, 0.676513f, 0.677233f, 0.677954f,
1948 0.678674f, 0.679395f, 0.680115f, 0.680836f, 0.681556f, 0.682277f,
1949 0.682997f, 0.683718f, 0.684438f, 0.685158f, 0.685879f, 0.686599f,
1950 0.687320f, 0.688040f, 0.688761f, 0.689481f, 0.690202f, 0.690922f,
1951 0.691643f, 0.692363f, 0.693084f, 0.693804f, 0.694524f, 0.695245f,
1952 0.695965f, 0.696686f, 0.697406f, 0.698127f, 0.698847f, 0.699568f,
1953 0.700288f, 0.701009f, 0.701729f, 0.702450f, 0.703170f, 0.703891f,
1954 0.704611f, 0.705331f, 0.706052f, 0.706772f, 0.707493f, 0.708213f,
1955 0.708934f, 0.709654f, 0.710375f, 0.711095f, 0.711816f, 0.712536f,
1956 0.713256f, 0.713977f, 0.714697f, 0.715418f, 0.716138f, 0.716859f,
1957 0.717579f, 0.718300f, 0.719020f, 0.719741f, 0.720461f, 0.721182f,
1958 0.721902f, 0.722622f, 0.723343f, 0.724063f, 0.724784f, 0.725504f,
1959 0.726225f, 0.726945f, 0.727666f, 0.728386f, 0.729107f, 0.729827f,
1960 0.730548f, 0.731268f, 0.731988f, 0.732709f, 0.733429f, 0.734150f,
1961 0.734870f, 0.735591f, 0.736311f, 0.737032f, 0.737752f, 0.738473f,
1962 0.739193f, 0.739914f, 0.740634f, 0.741354f, 0.742075f, 0.742795f,
1963 0.743516f, 0.744236f, 0.744957f, 0.745677f, 0.746398f, 0.747118f,
1964 0.747839f, 0.748559f, 0.749280f, 0.750000f, 0.750720f, 0.751441f,
1965 0.752161f, 0.752882f, 0.753602f, 0.754323f, 0.755043f, 0.755764f,
1966 0.756484f, 0.757205f, 0.757925f, 0.758646f, 0.759366f, 0.760086f,
1967 0.760807f, 0.761527f, 0.762248f, 0.762968f, 0.763689f, 0.764409f,
1968 0.765130f, 0.765850f, 0.766571f, 0.767291f, 0.768012f, 0.768732f,
1969 0.769452f, 0.770173f, 0.770893f, 0.771614f, 0.772334f, 0.773055f,
1970 0.773775f, 0.774496f, 0.775216f, 0.775937f, 0.776657f, 0.777378f,
1971 0.778098f, 0.778818f, 0.779539f, 0.780259f, 0.780980f, 0.781700f,
1972 0.782421f, 0.783141f, 0.783862f, 0.784582f, 0.785303f, 0.786023f,
1973 0.786744f, 0.787464f, 0.788184f, 0.788905f, 0.789625f, 0.790346f,
1974 0.791066f, 0.791787f, 0.792507f, 0.793228f, 0.793948f, 0.794669f,
1975 0.795389f, 0.796109f, 0.796830f, 0.797550f, 0.798271f, 0.798991f,
1976 0.799712f, 0.800432f, 0.801153f, 0.801873f, 0.802594f, 0.803314f,
1977 0.804035f, 0.804755f, 0.805476f, 0.806196f, 0.806916f, 0.807637f,
1978 0.808357f, 0.809078f, 0.809798f, 0.810519f, 0.811239f, 0.811960f,
1979 0.812680f, 0.813401f, 0.814121f, 0.814842f, 0.815562f, 0.816282f,
1980 0.817003f, 0.817723f, 0.818444f, 0.819164f, 0.819885f, 0.820605f,
1981 0.821326f, 0.822046f, 0.822767f, 0.823487f, 0.824207f, 0.824928f,
1982 0.825648f, 0.826369f, 0.827089f, 0.827810f, 0.828530f, 0.829251f,
1983 0.829971f, 0.830692f, 0.831412f, 0.832133f, 0.832853f, 0.833573f,
1984 0.834294f, 0.835014f, 0.835735f, 0.836455f, 0.837176f, 0.837896f,
1985 0.838617f, 0.839337f, 0.840058f, 0.840778f, 0.841499f, 0.842219f,
1986 0.842939f, 0.843660f, 0.844380f, 0.845101f, 0.845821f, 0.846542f,
1987 0.847262f, 0.847983f, 0.848703f, 0.849424f, 0.850144f, 0.850865f,
1988 0.851585f, 0.852305f, 0.853026f, 0.853746f, 0.854467f, 0.855187f,
1989 0.855908f, 0.856628f, 0.857349f, 0.858069f, 0.858790f, 0.859510f,
1990 0.860231f, 0.860951f, 0.861671f, 0.862392f, 0.863112f, 0.863833f,
1991 0.864553f, 0.865274f, 0.865994f, 0.866715f, 0.867435f, 0.868156f,
1992 0.868876f, 0.869597f, 0.870317f, 0.871037f, 0.871758f, 0.872478f,
1993 0.873199f, 0.873919f, 0.874640f, 0.875360f, 0.876081f, 0.876801f,
1994 0.877522f, 0.878242f, 0.878963f, 0.879683f, 0.880403f, 0.881124f,
1995 0.881844f, 0.882565f, 0.883285f, 0.884006f, 0.884726f, 0.885447f,
1996 0.886167f, 0.886888f, 0.887608f, 0.888329f, 0.889049f, 0.889769f,
1997 0.890490f, 0.891210f, 0.891931f, 0.892651f, 0.893372f, 0.894092f,
1998 0.894813f, 0.895533f, 0.896254f, 0.896974f, 0.897695f, 0.898415f,
1999 0.899135f, 0.899856f, 0.900576f, 0.901297f, 0.902017f, 0.902738f,
2000 0.903458f, 0.904179f, 0.904899f, 0.905620f, 0.906340f, 0.907061f,
2001 0.907781f, 0.908501f, 0.909222f, 0.909942f, 0.910663f, 0.911383f,
2002 0.912104f, 0.912824f, 0.913545f, 0.914265f, 0.914986f, 0.915706f,
2003 0.916427f, 0.917147f, 0.917867f, 0.918588f, 0.919308f, 0.920029f,
2004 0.920749f, 0.921470f, 0.922190f, 0.922911f, 0.923631f, 0.924352f,
2005 0.925072f, 0.925793f, 0.926513f, 0.927233f, 0.927954f, 0.928674f,
2006 0.929395f, 0.930115f, 0.930836f, 0.931556f, 0.932277f, 0.932997f,
2007 0.933718f, 0.934438f, 0.935158f, 0.935879f, 0.936599f, 0.937320f,
2008 0.938040f, 0.938761f, 0.939481f, 0.940202f, 0.940922f, 0.941643f,
2009 0.942363f, 0.943084f, 0.943804f, 0.944524f, 0.945245f, 0.945965f,
2010 0.946686f, 0.947406f, 0.948127f, 0.948847f, 0.949568f, 0.950288f,
2011 0.951009f, 0.951729f, 0.952450f, 0.953170f, 0.953891f, 0.954611f,
2012 0.955331f, 0.956052f, 0.956772f, 0.957493f, 0.958213f, 0.958934f,
2013 0.959654f, 0.960375f, 0.961095f, 0.961816f, 0.962536f, 0.963256f,
2014 0.963977f, 0.964697f, 0.965418f, 0.966138f, 0.966859f, 0.967579f,
2015 0.968300f, 0.969020f, 0.969741f, 0.970461f, 0.971182f, 0.971902f,
2016 0.972622f, 0.973343f, 0.974063f, 0.974784f, 0.975504f, 0.976225f,
2017 0.976945f, 0.977666f, 0.978386f, 0.979107f, 0.979827f, 0.980548f,
2018 0.981268f, 0.981988f, 0.982709f, 0.983429f, 0.984150f, 0.984870f,
2019 0.985591f, 0.986311f, 0.987032f, 0.987752f, 0.988473f, 0.989193f,
2020 0.989914f, 0.990634f, 0.991354f, 0.992075f, 0.992795f, 0.993516f,
2021 0.994236f, 0.994957f, 0.995677f, 0.996398f, 0.997118f, 0.997839f,
2022 0.998559f, 0.999280f, 1.000000f
2045 assert(image != (
Image *) NULL);
2070 #if defined(MAGICKCORE_OPENMP_SUPPORT) 2071 #pragma omp parallel for schedule(static) shared(status) \ 2072 magick_number_threads(image,image,image->rows,1) 2074 for (y=0; y < (ssize_t) image->
rows; y++)
2098 for (x=0; x < (ssize_t) image->
columns; x++)
2129 #if defined(MAGICKCORE_OPENMP_SUPPORT) 2130 #pragma omp parallel for schedule(static) shared(status) \ 2131 magick_number_threads(image,image,image->rows,1) 2133 for (y=0; y < (ssize_t) image->
rows; y++)
2153 for (x=(ssize_t) image->
columns; x != 0; x--)
2190 #if defined(MAGICKCORE_OPENMP_SUPPORT) 2191 #pragma omp parallel for schedule(static) shared(status) \ 2192 magick_number_threads(image,image,image->rows,1) 2194 for (y=0; y < (ssize_t) image->
rows; y++)
2214 for (x=(ssize_t) image->
columns; x != 0; x--)
2270 white_luminance=10000.0;
2272 if (value != (
const char *) NULL)
2282 #if defined(MAGICKCORE_OPENMP_SUPPORT) 2283 #pragma omp parallel for schedule(static) shared(status) \ 2284 magick_number_threads(image,image,image->rows,1) 2286 for (y=0; y < (ssize_t) image->
rows; y++)
2306 for (x=0; x < (ssize_t) image->
columns; x++)
2486 if (value != (
const char *) NULL)
2490 if (value != (
const char *) NULL)
2494 if (value != (
const char *) NULL)
2498 if (value != (
const char *) NULL)
2502 if (logmap == (
Quantum *) NULL)
2505 black=pow(10.0,(reference_black-reference_white)*(gamma/density)*0.002*
2507 for (i=0; i <= (ssize_t) (reference_black*
MaxMap/1024.0); i++)
2509 for ( ; i < (ssize_t) (reference_white*
MaxMap/1024.0); i++)
2511 (pow(10.0,(1024.0*i/
MaxMap-reference_white)*(gamma/density)*0.002*
2513 for ( ; i <= (ssize_t)
MaxMap; i++)
2523 #if defined(MAGICKCORE_OPENMP_SUPPORT) 2524 #pragma omp parallel for schedule(static) shared(status) \ 2525 magick_number_threads(image,image,image->rows,1) 2527 for (y=0; y < (ssize_t) image->
rows; y++)
2547 for (x=(ssize_t) image->
columns; x != 0; x--)
2554 red=(double) logmap[ScaleQuantumToMap(
GetPixelRed(image,q))];
2555 green=(double) logmap[ScaleQuantumToMap(
GetPixelGreen(image,q))];
2556 blue=(double) logmap[ScaleQuantumToMap(
GetPixelBlue(image,q))];
2589 #if defined(MAGICKCORE_OPENMP_SUPPORT) 2590 #pragma omp parallel for schedule(static) shared(status) \ 2591 magick_number_threads(image,image,image->rows,1) 2593 for (y=0; y < (ssize_t) image->
rows; y++)
2613 for (x=(ssize_t) image->
columns; x != 0; x--)
2679 #if defined(MAGICKCORE_OPENMP_SUPPORT) 2680 #pragma omp parallel for schedule(static) 2682 for (i=0; i <= (ssize_t)
MaxMap; i++)
2708 #if defined(MAGICKCORE_OPENMP_SUPPORT) 2709 #pragma omp parallel for schedule(static) 2711 for (i=0; i <= (ssize_t)
MaxMap; i++)
2713 x_map[i].
x=0.99999999999914679361*(double) i;
2714 y_map[i].
x=0.5*(-1.2188941887145875e-06)*(2.00*(
double) i-
MaxMap);
2715 z_map[i].
x=0.5*1.4019995886561440468*(2.00*(double) i-
MaxMap);
2716 x_map[i].
y=0.99999975910502514331*(double) i;
2717 y_map[i].
y=0.5*(-0.34413567816504303521)*(2.00*(double) i-
MaxMap);
2718 z_map[i].
y=0.5*(-0.71413649331646789076)*(2.00*(double) i-
MaxMap);
2719 x_map[i].
z=1.00000124040004623180*(double) i;
2720 y_map[i].
z=0.5*1.77200006607230409200*(2.00*(double) i-
MaxMap);
2721 z_map[i].
z=0.5*2.1453384174593273e-06*(2.00*(double) i-
MaxMap);
2737 #if defined(MAGICKCORE_OPENMP_SUPPORT) 2738 #pragma omp parallel for schedule(static) 2740 for (i=0; i <= (ssize_t)
MaxMap; i++)
2765 #if defined(MAGICKCORE_OPENMP_SUPPORT) 2766 #pragma omp parallel for schedule(static) 2768 for (i=0; i <= (ssize_t)
MaxMap; i++)
2773 ScaleQuantumToMap(ScaleCharToQuantum(137))));
2776 ScaleQuantumToMap(ScaleCharToQuantum(156))));
2778 ScaleQuantumToMap(ScaleCharToQuantum(137))));
2781 ScaleQuantumToMap(ScaleCharToQuantum(156))));
2791 #if defined(MAGICKCORE_OPENMP_SUPPORT) 2792 #pragma omp parallel for schedule(static) 2794 for (i=0; i <= (ssize_t)
MaxMap; i++)
2821 #if defined(MAGICKCORE_OPENMP_SUPPORT) 2822 #pragma omp parallel for schedule(static) shared(status) \ 2823 magick_number_threads(image,image,image->rows,1) 2825 for (y=0; y < (ssize_t) image->
rows; y++)
2848 for (x=0; x < (ssize_t) image->
columns; x++)
2858 pixel.
red=x_map[red].
x+y_map[green].
x+z_map[blue].
x;
2859 pixel.
green=x_map[red].
y+y_map[green].
y+z_map[blue].
y;
2860 pixel.
blue=x_map[red].
z+y_map[green].
z+z_map[blue].
z;
2889 #if defined(MAGICKCORE_OPENMP_SUPPORT) 2907 #if defined(MAGICKCORE_OPENMP_SUPPORT) 2908 #pragma omp parallel for schedule(static) shared(status) \ 2909 magick_number_threads(image,image,image->rows,1) 2911 for (i=0; i < (ssize_t) image->
colors; i++)
2924 pixel.
red=x_map[red].
x+y_map[green].
x+z_map[blue].
x;
2925 pixel.
green=x_map[red].
y+y_map[green].
y+z_map[blue].
y;
2926 pixel.
blue=x_map[red].
z+y_map[green].
z+z_map[blue].
z;
MagickExport MagickRealType EncodePixelGamma(const MagickRealType pixel)
MagickDoubleType MagickRealType
MagickExport CacheView * DestroyCacheView(CacheView *cache_view)
MagickExport MagickBooleanType IsStringFalse(const char *value)
MagickPrivate void ConvertLCHabToRGB(const double, const double, const double, double *, double *, double *)
static void ConvertXYZToDisplayP3(const double X, const double Y, const double Z, double *red, double *green, double *blue)
MagickExport void ConvertRGBToHSL(const double red, const double green, const double blue, double *hue, double *saturation, double *lightness)
MagickPrivate void ConvertHSIToRGB(const double, const double, const double, double *, double *, double *)
static void ConvertRGBToYUV(const double red, const double green, const double blue, double *Y, double *U, double *V)
MagickProgressMonitor progress_monitor
MagickExport MagickBooleanType SyncImage(Image *image, ExceptionInfo *exception)
static void ConvertLMSToXYZ(const double L, const double M, const double S, double *X, double *Y, double *Z)
#define TransformsRGBImageTag
MagickExport MagickBooleanType TransformImageColorspace(Image *image, const ColorspaceType colorspace, ExceptionInfo *exception)
static void ConvertProPhotoToXYZ(const double red, const double green, const double blue, double *X, double *Y, double *Z)
static Quantum GetPixelRed(const Image *magick_restrict image, const Quantum *magick_restrict pixel)
MagickExport MagickBooleanType DeleteImageProfile(Image *image, const char *name)
static void ConvertXYZToAdobe98(const double X, const double Y, const double Z, double *red, double *green, double *blue)
static void ConvertLMSToRGB(const double L, const double M, const double S, double *red, double *green, double *blue)
MagickExport ImageType IdentifyImageGray(const Image *image, ExceptionInfo *exception)
static void ConvertRGBToAdobe98(const double red, const double green, const double blue, double *r, double *g, double *b)
static void ConvertJzazbzToXYZ(const double Jz, const double az, const double bz, const double white_luminance, double *X, double *Y, double *Z)
static void ConvertRGBToDisplayP3(const double red, const double green, const double blue, double *r, double *g, double *b)
static void SetPixelGray(const Image *magick_restrict image, const Quantum gray, Quantum *magick_restrict pixel)
MagickPrivate MagickBooleanType SyncImagePixelCache(Image *, ExceptionInfo *)
static void ConvertJzazbzToRGB(const double Jz, const double az, const double bz, const double white_luminance, double *red, double *green, double *blue)
static ssize_t RoundToYCC(const double value)
static void ConvertYCbCrToRGB(const double Y, const double Cb, const double Cr, double *red, double *green, double *blue)
static void ConvertAdobe98ToXYZ(const double red, const double green, const double blue, double *X, double *Y, double *Z)
static void ConvertYPbPrToRGB(const double Y, const double Pb, const double Pr, double *red, double *green, double *blue)
static double StringToDouble(const char *magick_restrict string, char **magick_restrict sentinal)
static MagickBooleanType TransformsRGBImage(Image *, ExceptionInfo *)
static void ConvertRGBToxyY(const double red, const double green, const double blue, double *low_x, double *low_y, double *cap_Y)
static MagickBooleanType IsRGBColorspace(const ColorspaceType colorspace)
static void SetPixelViaPixelInfo(const Image *magick_restrict image, const PixelInfo *magick_restrict pixel_info, Quantum *magick_restrict pixel)
static MagickBooleanType IsGrayColorspace(const ColorspaceType colorspace)
static void ConvertRGBToYDbDr(const double red, const double green, const double blue, double *Y, double *Db, double *Dr)
MagickExport MagickBooleanType IdentifyImageMonochrome(const Image *image, ExceptionInfo *exception)
#define ThrowBinaryException(severity, tag, context)
static Quantum ClampToQuantum(const MagickRealType quantum)
MagickExport void GetPixelInfo(const Image *image, PixelInfo *pixel)
static void ConvertAdobe98ToRGB(const double r, const double g, const double b, double *red, double *green, double *blue)
MagickPrivate void ConvertRGBToHSB(const double, const double, const double, double *, double *, double *)
MagickExport MagickBooleanType SetImageGray(Image *image, ExceptionInfo *exception)
MagickExport MagickRealType DecodePixelGamma(const MagickRealType pixel)
#define MagickCoreSignature
MagickExport Quantum * GetCacheViewAuthenticPixels(CacheView *cache_view, const ssize_t x, const ssize_t y, const size_t columns, const size_t rows, ExceptionInfo *exception)
static void ConvertRGBToYCbCr(const double red, const double green, const double blue, double *Y, double *Cb, double *Cr)
static double PerceptibleReciprocal(const double x)
static MagickBooleanType IssRGBCompatibleColorspace(const ColorspaceType colorspace)
MagickExport void * AcquireQuantumMemory(const size_t count, const size_t quantum)
MagickPrivate void ConvertLCHuvToRGB(const double, const double, const double, double *, double *, double *)
static void ConvertYDbDrToRGB(const double Y, const double Db, const double Dr, double *red, double *green, double *blue)
static void ConvertLuvToXYZ(const double L, const double u, const double v, double *X, double *Y, double *Z)
static void ConvertDisplayP3ToRGB(const double r, const double g, const double b, double *red, double *green, double *blue)
static Quantum GetPixelGreen(const Image *magick_restrict image, const Quantum *magick_restrict pixel)
static void ConvertRGBToLuv(const double red, const double green, const double blue, double *L, double *u, double *v)
static void GetPixelInfoPixel(const Image *magick_restrict image, const Quantum *magick_restrict pixel, PixelInfo *magick_restrict pixel_info)
static void ConvertCMYToRGB(const double cyan, const double magenta, const double yellow, double *red, double *green, double *blue)
static void ConvertXYZToProPhoto(const double X, const double Y, const double Z, double *red, double *green, double *blue)
MagickPrivate void ConvertRGBToHSV(const double, const double, const double, double *, double *, double *)
static void ConvertDisplayP3ToXYZ(const double red, const double green, const double blue, double *X, double *Y, double *Z)
static MagickBooleanType IssRGBColorspace(const ColorspaceType colorspace)
static void ConvertXYZToLuv(const double X, const double Y, const double Z, double *L, double *u, double *v)
MagickPrivate void ConvertRGBToHSI(const double, const double, const double, double *, double *, double *)
MagickExport MagickBooleanType LogMagickEvent(const LogEventType type, const char *module, const char *function, const size_t line, const char *format,...)
static void ConvertRGBToCMYK(PixelInfo *pixel)
static void ConvertProPhotoToRGB(const double r, const double g, const double b, double *red, double *green, double *blue)
MagickBooleanType(* MagickProgressMonitor)(const char *, const MagickOffsetType, const MagickSizeType, void *)
MagickExport ImageType IdentifyImageType(const Image *image, ExceptionInfo *exception)
static void SetPixelBlue(const Image *magick_restrict image, const Quantum blue, Quantum *magick_restrict pixel)
MagickExport MagickBooleanType SetImageStorageClass(Image *image, const ClassType storage_class, ExceptionInfo *exception)
MagickExport void ConvertHSLToRGB(const double hue, const double saturation, const double lightness, double *red, double *green, double *blue)
static void ConvertLuvToRGB(const double L, const double u, const double v, double *red, double *green, double *blue)
static size_t GetPixelChannels(const Image *magick_restrict image)
MagickPrivate void ConvertHWBToRGB(const double, const double, const double, double *, double *, double *)
char filename[MagickPathExtent]
static MagickBooleanType sRGBTransformImage(Image *image, const ColorspaceType colorspace, ExceptionInfo *exception)
#define GetMagickModule()
PrimaryInfo green_primary
static void ConvertRGBToJzazbz(const double red, const double green, const double blue, const double white_luminance, double *Jz, double *az, double *bz)
static void ConvertRGBToXYZ(const double red, const double green, const double blue, double *X, double *Y, double *Z)
RenderingIntent rendering_intent
MagickExport MagickBooleanType IsImageGray(const Image *image)
#define sRGBTransformImageTag
static void ConvertRGBToYPbPr(const double red, const double green, const double blue, double *Y, double *Pb, double *Pr)
MagickExport MagickBooleanType SetImageColorspace(Image *image, const ColorspaceType colorspace, ExceptionInfo *exception)
static void ConvertYIQToRGB(const double Y, const double I, const double Q, double *red, double *green, double *blue)
MagickPrivate void ConvertRGBToLab(const double, const double, const double, double *, double *, double *)
MagickPrivate void ConvertHSVToRGB(const double, const double, const double, double *, double *, double *)
static void ConvertLabToXYZ(const double L, const double a, const double b, double *X, double *Y, double *Z)
MagickExport const char * GetImageProperty(const Image *image, const char *property, ExceptionInfo *exception)
static void ConvertxyYToRGB(const double low_x, const double low_y, const double cap_Y, double *red, double *green, double *blue)
ChromaticityInfo chromaticity
MagickPrivate void ConvertHCLToRGB(const double, const double, const double, double *, double *, double *)
static void ConvertXYZToLMS(const double x, const double y, const double z, double *L, double *M, double *S)
MagickPrivate void ConvertRGBToHWB(const double, const double, const double, double *, double *, double *)
static void ConvertLabToRGB(const double L, const double a, const double b, double *red, double *green, double *blue)
MagickPrivate void ConvertHCLpToRGB(const double, const double, const double, double *, double *, double *)
MagickExport void * RelinquishMagickMemory(void *memory)
static void ConvertXYZToRGB(const double X, const double Y, const double Z, double *red, double *green, double *blue)
MagickPrivate void ConvertRGBToLCHab(const double, const double, const double, double *, double *, double *)
static void SetPixelRed(const Image *magick_restrict image, const Quantum red, Quantum *magick_restrict pixel)
MagickExport ColorspaceType GetImageColorspaceType(const Image *image, ExceptionInfo *exception)
static void ConvertRGBToLMS(const double red, const double green, const double blue, double *L, double *M, double *S)
MagickExport MagickBooleanType SyncCacheViewAuthenticPixels(CacheView *magick_restrict cache_view, ExceptionInfo *exception)
MagickPrivate void ConvertHSBToRGB(const double, const double, const double, double *, double *, double *)
MagickExport CacheView * AcquireAuthenticCacheView(const Image *image, ExceptionInfo *exception)
MagickExport MagickBooleanType SetImageMonochrome(Image *image, ExceptionInfo *exception)
static void ConvertRGBToYIQ(const double red, const double green, const double blue, double *Y, double *I, double *Q)
MagickPrivate void ConvertRGBToHCL(const double, const double, const double, double *, double *, double *)
static void ConvertXYZToJzazbz(const double X, const double Y, const double Z, const double white_luminance, double *Jz, double *az, double *bz)
static Quantum GetPixelBlue(const Image *magick_restrict image, const Quantum *magick_restrict pixel)
MagickPrivate void ConvertRGBToLCHuv(const double, const double, const double, double *, double *, double *)
static void ConvertYUVToRGB(const double Y, const double U, const double V, double *red, double *green, double *blue)
static void ConvertCMYKToRGB(PixelInfo *pixel)
ColorspaceType colorspace
struct _TransformPacket TransformPacket
MagickExport MagickBooleanType SetImageProgress(const Image *image, const char *tag, const MagickOffsetType offset, const MagickSizeType extent)
MagickPrivate void ConvertRGBToHCLp(const double, const double, const double, double *, double *, double *)
static void ConvertRGBToProPhoto(const double red, const double green, const double blue, double *r, double *g, double *b)
static void SetPixelGreen(const Image *magick_restrict image, const Quantum green, Quantum *magick_restrict pixel)
static void ConvertRGBToCMY(const double red, const double green, const double blue, double *cyan, double *magenta, double *yellow)