History

My first initial commit with all of mine experimental changes.

Dmitry Kabak (userdima committed 13 years ago

Commit d37b88d1 parent 3f5b46618352 files · +2598093 −-8690Browse files

Showing the changes to java/pkg/java/awt/image/BufferedImageOp.java (1 of 18352 files). Show all

Unified · Split

java/pkg/java/awt/image/BufferedImageOp.java+136−0
@@ -0,0 +1,136 @@
1+/*
2+ * Copyright (c) 1997, 2006, 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+ */
25+
26+package java.awt.image;
27+
28+import java.awt.geom.Rectangle2D;
29+import java.awt.geom.Point2D;
30+import java.awt.RenderingHints;
31+
32+/**
33+ * This interface describes single-input/single-output
34+ * operations performed on <CODE>BufferedImage</CODE> objects.
35+ * It is implemented by <CODE>AffineTransformOp</CODE>,
36+ * <CODE>ConvolveOp</CODE>, <CODE>ColorConvertOp</CODE>, <CODE>RescaleOp</CODE>,
37+ * and <CODE>LookupOp</CODE>. These objects can be passed into
38+ * a <CODE>BufferedImageFilter</CODE> to operate on a
39+ * <CODE>BufferedImage</CODE> in the
40+ * ImageProducer-ImageFilter-ImageConsumer paradigm.
41+ * <p>
42+ * Classes that implement this
43+ * interface must specify whether or not they allow in-place filtering--
44+ * filter operations where the source object is equal to the destination
45+ * object.
46+ * <p>
47+ * This interface cannot be used to describe more sophisticated operations
48+ * such as those that take multiple sources. Note that this restriction also
49+ * means that the values of the destination pixels prior to the operation are
50+ * not used as input to the filter operation.
51+
52+ * @see BufferedImage
53+ * @see BufferedImageFilter
54+ * @see AffineTransformOp
55+ * @see BandCombineOp
56+ * @see ColorConvertOp
57+ * @see ConvolveOp
58+ * @see LookupOp
59+ * @see RescaleOp
60+ */
61+public interface BufferedImageOp {
62+ /**
63+ * Performs a single-input/single-output operation on a
64+ * <CODE>BufferedImage</CODE>.
65+ * If the color models for the two images do not match, a color
66+ * conversion into the destination color model is performed.
67+ * If the destination image is null,
68+ * a <CODE>BufferedImage</CODE> with an appropriate <CODE>ColorModel</CODE>
69+ * is created.
70+ * <p>
71+ * An <CODE>IllegalArgumentException</CODE> may be thrown if the source
72+ * and/or destination image is incompatible with the types of images $
73+ * allowed by the class implementing this filter.
74+ *
75+ * @param src The <CODE>BufferedImage</CODE> to be filtered
76+ * @param dest The <CODE>BufferedImage</CODE> in which to store the results$
77+ *
78+ * @return The filtered <CODE>BufferedImage</CODE>.
79+ *
80+ * @throws IllegalArgumentException If the source and/or destination
81+ * image is not compatible with the types of images allowed by the class
82+ * implementing this filter.
83+ */
84+ public BufferedImage filter(BufferedImage src, BufferedImage dest);
85+
86+ /**
87+ * Returns the bounding box of the filtered destination image.
88+ * An <CODE>IllegalArgumentException</CODE> may be thrown if the source
89+ * image is incompatible with the types of images allowed
90+ * by the class implementing this filter.
91+ *
92+ * @param src The <CODE>BufferedImage</CODE> to be filtered
93+ *
94+ * @return The <CODE>Rectangle2D</CODE> representing the destination
95+ * image's bounding box.
96+ */
97+ public Rectangle2D getBounds2D (BufferedImage src);
98+
99+ /**
100+ * Creates a zeroed destination image with the correct size and number of
101+ * bands.
102+ * An <CODE>IllegalArgumentException</CODE> may be thrown if the source
103+ * image is incompatible with the types of images allowed
104+ * by the class implementing this filter.
105+ *
106+ * @param src The <CODE>BufferedImage</CODE> to be filtered
107+ * @param destCM <CODE>ColorModel</CODE> of the destination. If null,
108+ * the <CODE>ColorModel</CODE> of the source is used.
109+ *
110+ * @return The zeroed destination image.
111+ */
112+ public BufferedImage createCompatibleDestImage (BufferedImage src,
113+ ColorModel destCM);
114+
115+ /**
116+ * Returns the location of the corresponding destination point given a
117+ * point in the source image. If <CODE>dstPt</CODE> is specified, it
118+ * is used to hold the return value.
119+ * @param srcPt the <code>Point2D</code> that represents the point in
120+ * the source image
121+ * @param dstPt The <CODE>Point2D</CODE> in which to store the result
122+ *
123+ * @return The <CODE>Point2D</CODE> in the destination image that
124+ * corresponds to the specified point in the source image.
125+ */
126+ public Point2D getPoint2D (Point2D srcPt, Point2D dstPt);
127+
128+ /**
129+ * Returns the rendering hints for this operation.
130+ *
131+ * @return The <CODE>RenderingHints</CODE> object for this
132+ * <CODE>BufferedImageOp</CODE>. Returns
133+ * null if no hints have been set.
134+ */
135+ public RenderingHints getRenderingHints();
136+}