Changeset 8262


Ignore:
Timestamp:
06/14/12 19:59:44 (11 months ago)
Author:
cristy
Message:
 
Location:
ImageMagick/trunk/MagickCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • ImageMagick/trunk/MagickCore/color-private.h

    r6226 r8262  
    2525#include "MagickCore/image.h" 
    2626 
     27static inline double GammaCompanding(const double intensity) 
     28{ 
     29  if (intensity <= 0.0031308) 
     30    return(intensity*12.92); 
     31  return(1.055*pow(intensity,1.0/2.4)-0.055); 
     32} 
     33 
     34static inline double GammaDecompanding(const double intensity) 
     35{ 
     36  if (intensity <= 0.04045) 
     37    return(intensity/12.92); 
     38  return(pow((intensity+0.055)/1.055,2.4)); 
     39} 
     40 
    2741extern MagickPrivate MagickBooleanType 
    2842  ColorComponentGenesis(void); 
  • ImageMagick/trunk/MagickCore/colorspace.c

    r8257 r8262  
    127127  assert(Y != (double *) NULL); 
    128128  assert(Z != (double *) NULL); 
    129   r=QuantumScale*red; 
    130   if (r <= 0.04045) 
    131     r/=12.92; 
    132   else 
    133     r=pow((r+0.055)/1.055,2.4); 
    134   g=QuantumScale*green; 
    135   if (g <= 0.04045) 
    136     g/=12.92; 
    137   else 
    138     g=pow((g+0.055)/1.055,2.4); 
    139   b=QuantumScale*blue; 
    140   if (b <= 0.04045) 
    141     b/=12.92; 
    142   else 
    143     b=pow((b+0.055)/1.055,2.4); 
     129  r=GammaDecompanding(QuantumScale*red); 
     130  g=GammaDecompanding(QuantumScale*green); 
     131  b=GammaDecompanding(QuantumScale*blue); 
    144132  *X=0.4360747*r+0.3850649*g+0.1430804*b; 
    145133  *Y=0.2225045*r+0.7168786*g+0.0606169*b; 
     
    14601448  g=(-0.9787684*x+1.9161415*y+0.0334540*z); 
    14611449  b=0.0719453*x-0.2289914*y+1.4052427*z; 
    1462   if (r > 0.0031308) 
    1463     r=1.055*pow(r,1.0/2.4)-0.055; 
    1464   else 
    1465     r*=12.92; 
    1466   if (g > 0.0031308) 
    1467     g=1.055*pow(g,1.0/2.4)-0.055; 
    1468   else 
    1469     g*=12.92; 
    1470   if (b > 0.0031308) 
    1471     b=1.055*pow(b,1.0/2.4)-0.055; 
    1472   else 
    1473     b*=12.92; 
    1474   *red=RoundToQuantum((MagickRealType) QuantumRange*r); 
    1475   *green=RoundToQuantum((MagickRealType) QuantumRange*g); 
    1476   *blue=RoundToQuantum((MagickRealType) QuantumRange*b); 
     1450  *red=RoundToQuantum((MagickRealType) QuantumRange*GammaCompanding(r)); 
     1451  *green=RoundToQuantum((MagickRealType) QuantumRange*GammaCompanding(g)); 
     1452  *blue=RoundToQuantum((MagickRealType) QuantumRange*GammaCompanding(b)); 
    14771453} 
    14781454 
Note: See TracChangeset for help on using the changeset viewer.