summaryrefslogtreecommitdiffstats
path: root/awt/java/awt/image/ImageConsumer.java
blob: caf87d108847d2f2dd190ce0d219fadfe24b3bdb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
/*
 *  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.
 */
/**
 * @author Igor V. Stolyarov
 * @version $Revision$
 */

package java.awt.image;

import java.util.Hashtable;

/**
 * The ImageConsumer interface provides the data about the image and about how
 * its data is delivered. A ImageProducer provides all of the information about
 * the image using the methods defined in this interface.
 * 
 * @since Android 1.0
 */
public interface ImageConsumer {

    /**
     * The Constant RANDOMPIXELORDER indicates that the pixels are delivered in
     * a random order.
     */
    public static final int RANDOMPIXELORDER = 1;

    /**
     * The Constant TOPDOWNLEFTRIGHT indicates that the pixels are delivered in
     * top-down, left-to-right order.
     */
    public static final int TOPDOWNLEFTRIGHT = 2;

    /**
     * The Constant COMPLETESCANLINES indicates that the pixels are delivered in
     * complete scanline.
     */
    public static final int COMPLETESCANLINES = 4;

    /**
     * The Constant SINGLEPASS indicates that pixels are delivered in a single
     * pass.
     */
    public static final int SINGLEPASS = 8;

    /**
     * The Constant SINGLEFRAME indicates that image consists of single frame.
     */
    public static final int SINGLEFRAME = 16;

    /**
     * The Constant IMAGEERROR indicates an image error during image producing.
     */
    public static final int IMAGEERROR = 1;

    /**
     * The Constant SINGLEFRAMEDONE indicates that only one of the image's
     * frames is completed.
     */
    public static final int SINGLEFRAMEDONE = 2;

    /**
     * The Constant STATICIMAGEDONE indicates that the image is completed.
     */
    public static final int STATICIMAGEDONE = 3;

    /**
     * The Constant IMAGEABORTED indicates that the image producing process is
     * aborted.
     */
    public static final int IMAGEABORTED = 4;

    /**
     * Sets the properties for the image associated with this ImageConsumer.
     * 
     * @param props
     *            the properties for the image associated with this
     *            ImageConsumer.
     */
    public void setProperties(Hashtable<?, ?> props);

    /**
     * Sets the ColorModel object.
     * 
     * @param model
     *            the new ColorModel.
     */
    public void setColorModel(ColorModel model);

    /**
     * Sets the pixels for the specified rectangular area of the image.
     * 
     * @param x
     *            the X coordinate of rectangular area.
     * @param y
     *            the Y coordinate of rectangular area.
     * @param w
     *            the width of rectangular area.
     * @param h
     *            the height of rectangular area.
     * @param model
     *            the specified ColorModel to be used for pixels converting.
     * @param pixels
     *            the array of pixels.
     * @param off
     *            the offset of pixels array.
     * @param scansize
     *            the distance from the one row of pixels to the next row in the
     *            specified array.
     */
    public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off,
            int scansize);

    /**
     * Sets the pixels for the specified rectangular area of the image.
     * 
     * @param x
     *            the X coordinate of rectangular area.
     * @param y
     *            the Y coordinate of rectangular area.
     * @param w
     *            the width of rectangular area.
     * @param h
     *            the height of rectangular area.
     * @param model
     *            the specified ColorModel to be used for pixels converting.
     * @param pixels
     *            the array of pixels.
     * @param off
     *            the offset of pixels array.
     * @param scansize
     *            the distance from the one row of pixels to the next row in the
     *            specified array.
     */
    public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int off,
            int scansize);

    /**
     * Sets the dimensions of a source image.
     * 
     * @param width
     *            the width of the image.
     * @param height
     *            the height of the image.
     */
    public void setDimensions(int width, int height);

    /**
     * Sets the hint flags of pixels order, which is used by the ImageConsumer
     * for obtaining pixels from the ImageProducer for which this ImageConsumer
     * is added.
     * 
     * @param hintflags
     *            the mask of hint flags.
     */
    public void setHints(int hintflags);

    /**
     * THis method is called in the one of the following cases:
     * <ul>
     * <li>The ImageProducer (for which this ImageConsumer is added) has been
     * delivered all pixels of the source image.</li>
     * <li>A one frame of an animation has been completed.</li>
     * <li>An error while loading or producing of the image has occurred.
     * </ul>
     * 
     * @param status
     *            the status of image producing.
     */
    public void imageComplete(int status);

}