1/* 2 * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25package com.sun.imageio.plugins.tiff; 26 27/** 28 * An abstract class that performs simple color conversion on 3-banded source 29 * images, for use with the TIFF Image I/O plug-in. 30 */ 31public abstract class TIFFColorConverter { 32 33 /** 34 * Constructs an instance of a {@code TIFFColorConverter}. 35 */ 36 public TIFFColorConverter() {} 37 38 /** 39 * Converts an RGB triple into the native color space of this 40 * TIFFColorConverter, and stores the result in the first three 41 * entries of the {@code result} array. 42 * 43 * @param r the red value. 44 * @param g the green value. 45 * @param b the blue value. 46 * @param result an array of {@code float}s containing three elements. 47 * @throws NullPointerException if {@code result} is 48 * {@code null}. 49 * @throws ArrayIndexOutOfBoundsException if 50 * {@code result.length < 3}. 51 */ 52 public abstract void fromRGB(float r, float g, float b, float[] result); 53 54 /** 55 * Converts a triple in the native color space of this 56 * TIFFColorConverter into an RGB triple, and stores the result in 57 * the first three entries of the {@code rgb} array. 58 * 59 * @param x0 the value of channel 0. 60 * @param x1 the value of channel 1. 61 * @param x2 the value of channel 2. 62 * @param rgb an array of {@code float}s containing three elements. 63 * @throws NullPointerException if {@code rgb} is 64 * {@code null}. 65 * @throws ArrayIndexOutOfBoundsException if 66 * {@code rgb.length < 3}. 67 */ 68 public abstract void toRGB(float x0, float x1, float x2, float[] rgb); 69} 70