12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
- /* $Id$ */
-
- package org.apache.fop.pdf;
-
- /**
- * This class represents a "CIE L*a*b*" color space. It is expected that the components have
- * the following ranges: L* [0..100], a* and b* [-127..127]
- */
- public class PDFCIELabColorSpace extends PDFArray implements PDFColorSpace {
-
- /**
- * Creates a new "CIE L*a*b*" color space. Valid value ranges for the white and black point
- * are [0..1] as per the PDF spec.
- * @param whitePoint the white point
- * @param blackPoint the optional black point (may be null)
- */
- public PDFCIELabColorSpace(float[] whitePoint, float[] blackPoint) {
- super();
-
- add(new PDFName("Lab"));
- PDFDictionary dict = new PDFDictionary();
- dict.put("WhitePoint", toPDFArray("White point", whitePoint));
- if (whitePoint[1] != 1f) {
- throw new IllegalArgumentException("The white point's Y coordinate must be 1.0");
- }
- if (blackPoint != null) {
- dict.put("BlackPoint", toPDFArray("Black point", blackPoint));
- }
- dict.put("Range", new PDFArray(dict, new int[] {-128, 128, -128, 128}));
- add(dict);
- }
-
- private PDFArray toPDFArray(String name, float[] whitePoint) {
- PDFArray wp = new PDFArray();
- if (whitePoint == null || whitePoint.length != 3) {
- throw new IllegalArgumentException(name + " must be given an have 3 components");
- }
- for (int i = 0; i < 3; i++) {
- wp.add(whitePoint[i]);
- }
- return wp;
- }
-
- /** {@inheritDoc} */
- public String getName() {
- return "CS" + this.getObjectNumber();
- }
-
- /** {@inheritDoc} */
- public int getNumComponents() {
- return 3;
- }
-
- /** {@inheritDoc} */
- public boolean isCMYKColorSpace() {
- return false;
- }
-
- /** {@inheritDoc} */
- public boolean isDeviceColorSpace() {
- return false;
- }
-
- /** {@inheritDoc} */
- public boolean isGrayColorSpace() {
- return false;
- }
-
- /** {@inheritDoc} */
- public boolean isRGBColorSpace() {
- return false;
- }
-
- }
|