Class PCDYCbCrConversion

  • All Implemented Interfaces:
    YCbCrIndex, RGBIndex

    public class PCDYCbCrConversion
    extends Object
    implements RGBIndex, YCbCrIndex
    Convert from YCbCr color space (as used in Kodak PCD files) to RGB. Only works for 24 bits per pixel (8 bits per channel) image data.
    Author:
    Marco Schmidt
    • Constructor Detail

      • PCDYCbCrConversion

        private PCDYCbCrConversion()
    • Method Detail

      • floatToByte

        private static byte floatToByte​(float f)
      • convertYccToRgb

        public static void convertYccToRgb​(byte[] y,
                                           byte[] cb,
                                           byte[] cr,
                                           int yccOffset,
                                           byte[] r,
                                           byte[] g,
                                           byte[] b,
                                           int rgbOffset,
                                           int num)
                                    throws IllegalArgumentException
        Converts pixels from YCbCr to RGB color space. Input pixels are given as three byte arrays for luminance and the two chroma components. Same for output pixels, three other arrays for red, green and blue. Offset values can be specified separately for the YCbCr and the RGB arrays.
        Parameters:
        y - the array of gray source samples
        cb - the array of chroma blue source samples
        cr - the array of chroma red source samples
        yccOffset - offset value into the arrays y, cb and cr; color conversion will be started at the yccOffset'th value of each array
        r - the array of red destination samples
        g - the array of green destination samples
        b - the array of blue destination samples
        rgbOffset - offset value into the arrays r, g and b; destination samples will be written to the three arrays starting at the rgbOffset'th value of each array
        num - the number of pixels to be converted
        Throws:
        IllegalArgumentException - if one of the int values is negative or one of the arrays is null or too small