OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libjava/] [classpath/] [javax/] [imageio/] [IIOImage.java] - Blame information for rev 14

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 14 jlechner
/* IIOImage.java --
2
   Copyright (C) 2003 Free Software Foundation, Inc.
3
 
4
This file is part of GNU Classpath.
5
 
6
GNU Classpath is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2, or (at your option)
9
any later version.
10
 
11
GNU Classpath is distributed in the hope that it will be useful, but
12
WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
General Public License for more details.
15
 
16
You should have received a copy of the GNU General Public License
17
along with GNU Classpath; see the file COPYING.  If not, write to the
18
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19
02110-1301 USA.
20
 
21
Linking this library statically or dynamically with other modules is
22
making a combined work based on this library.  Thus, the terms and
23
conditions of the GNU General Public License cover the whole
24
combination.
25
 
26
As a special exception, the copyright holders of this library give you
27
permission to link this library with independent modules to produce an
28
executable, regardless of the license terms of these independent
29
modules, and to copy and distribute the resulting executable under
30
terms of your choice, provided that you also meet, for each linked
31
independent module, the terms and conditions of the license of that
32
module.  An independent module is a module which is not derived from
33
or based on this library.  If you modify this library, you may extend
34
this exception to your version of the library, but you are not
35
obligated to do so.  If you do not wish to do so, delete this
36
exception statement from your version. */
37
 
38
 
39
package javax.imageio;
40
 
41
import java.awt.image.BufferedImage;
42
import java.awt.image.Raster;
43
import java.awt.image.RenderedImage;
44
import java.util.List;
45
 
46
import javax.imageio.metadata.IIOMetadata;
47
 
48
/**
49
 * IIOImage is a container class for components of an image file that
50
 * stores image data, image metadata and thumbnails.
51
 *
52
 * The image data can be either a RenderedImage or a Raster but not
53
 * both.  Image readers that produce IIOImages will always produce
54
 * BufferedImages from the RenderedImage field.  Image writers that
55
 * accept IIOImages will always accept RenderedImages and may
56
 * optionally accept Rasters.
57
 *
58
 * @author Thomas Fitzsimmons (fitzsim@redhat.com)
59
 */
60
public class IIOImage
61
{
62
  /**
63
   * Image data as a RenderedImage.  null if this IIOImage uses the
64
   * Raster representation.
65
   */
66
  protected RenderedImage image;
67
 
68
  /**
69
   * Image metadata.
70
   */
71
  protected IIOMetadata metadata;
72
 
73
  /**
74
   * Image data as a Raster.  null if this IIOImage uses the
75
   * RenderedImage representation.
76
   */
77
  protected Raster raster;
78
 
79
  /**
80
   * A list of BufferedImage thumbnails of this image.
81
   */
82
  // for 1.5 these lists are List<? extends BufferedImage>
83
  protected List thumbnails;
84
 
85
  /**
86
   * Construct an IIOImage containing raster image data, thumbnails
87
   * and metadata.
88
   *
89
   * @param raster image data
90
   * @param thumbnails a list of BufferedImage thumbnails or null
91
   * @param metadata image metadata or null
92
   *
93
   * @exception IllegalArgumentException if raster is null
94
   */
95
  public IIOImage (Raster raster, List thumbnails, IIOMetadata metadata)
96
  {
97
    if (raster == null)
98
      throw new IllegalArgumentException ("raster may not be null");
99
 
100
    this.raster = raster;
101
    this.thumbnails = thumbnails;
102
    this.metadata = metadata;
103
  }
104
 
105
  /**
106
   * Construct an IIOImage containing rendered image data, thumbnails
107
   * and metadata.
108
   *
109
   * @param image rendered image data
110
   * @param thumbnails a list of BufferedImage thumbnails or null
111
   * @param metadata image metadata or null
112
   *
113
   * @exception IllegalArgumentException if image is null
114
   */
115
  public IIOImage (RenderedImage image, List thumbnails, IIOMetadata metadata)
116
  {
117
    if (image == null)
118
      throw new IllegalArgumentException ("image may not be null");
119
 
120
    this.image = image;
121
    this.thumbnails = thumbnails;
122
    this.metadata = metadata;
123
  }
124
 
125
  /**
126
   * Retrieve the image metadata or null if there is no metadata
127
   * associated with this IIOImage.
128
   *
129
   * @return image metadata or null
130
   */
131
  public IIOMetadata getMetadata()
132
  {
133
    return metadata;
134
  }
135
 
136
  /**
137
   * Retrieve the number of thumbnails in this IIOImage.
138
   *
139
   * @return the number of thumbnails
140
   */
141
  public int getNumThumbnails()
142
  {
143
    return thumbnails == null ? 0 : thumbnails.size();
144
  }
145
 
146
  /**
147
   * Retrieve the raster image data stored in this IIOImage or null if
148
   * this image stores data using the RenderedImage representation.
149
   *
150
   * @return the raster image data or null
151
   */
152
  public Raster getRaster()
153
  {
154
    return raster;
155
  }
156
 
157
  /**
158
   * Retrieve the rendered image data stored in this IIOImage or null
159
   * if this image stores data using the Raster representation.
160
   *
161
   * @return the rendered image data or null
162
   */
163
  public RenderedImage getRenderedImage()
164
  {
165
    return image;
166
  }
167
 
168
  /**
169
   * Retrieve the thumbnail stored at the specified index in the
170
   * thumbnails list.
171
   *
172
   * @param index the index of the thumbnail to retrieve
173
   *
174
   * @return the buffered image thumbnail
175
   *
176
   * @exception IndexOutOfBoundsException if index is out-of-bounds
177
   * @exception ClassCastException if the object returned from the
178
   * thumbnails list is not a BufferedImage
179
   */
180
  public BufferedImage getThumbnail (int index)
181
  {
182
    // This throws a ClassCastException if the returned object is not
183
    // a BufferedImage or an IndexOutOfBoundsException if index is
184
    // out-of-bounds.
185
    return (BufferedImage) thumbnails.get (index);
186
  }
187
 
188
  /**
189
   * Retrieve the list of thumbnails or null if there are no
190
   * thumbnails associated with this IIOImage.  The returned reference
191
   * can be used to update the thumbnails list.
192
   *
193
   * @return a list of thumbnails or null
194
   */
195
  public List getThumbnails()
196
  {
197
    return thumbnails;
198
  }
199
 
200
  /**
201
   * Check whether this IIOImage stores its image data as a Raster or
202
   * as a RenderedImage.
203
   *
204
   * @return true if this IIOImage uses the Raster representation,
205
   * false if it uses the RenderedImage representation.
206
   */
207
  public boolean hasRaster()
208
  {
209
    return raster != null;
210
  }
211
 
212
  /**
213
   * Set this IIOImage's metadata.
214
   *
215
   * @param metadata the image metadata
216
   */
217
  public void setMetadata (IIOMetadata metadata)
218
  {
219
    this.metadata = metadata;
220
  }
221
 
222
  /**
223
   * Set the raster data for this image.  This disposes of any
224
   * existing rendered image data stored in this IIOImage.
225
   *
226
   * @param raster the image raster data
227
   *
228
   * @exception IllegalArgumentException if raster is null
229
   */
230
  public void setRaster (Raster raster)
231
  {
232
    if (raster == null)
233
      throw new IllegalArgumentException ("raster may not be null");
234
 
235
    this.image = null;
236
    this.raster = raster;
237
  }
238
 
239
  /**
240
   * Set the rendered image data for this image.  This disposes of any
241
   * existing raster data stored in this IIOImage.
242
   *
243
   * @param image the rendered image data
244
   *
245
   * @exception IllegalArgumentException if image is null
246
   */
247
  public void setRenderedImage (RenderedImage image)
248
  {
249
    if (image == null)
250
      throw new IllegalArgumentException ("image may not be null");
251
 
252
    this.image = image;
253
    this.raster = null;
254
  }
255
 
256
  /**
257
   * Set the list of thumbnails for this IIOImage to a new list of
258
   * BufferedImages or to null.  Any existing thumbnails list is
259
   * disposed.
260
   *
261
   * @param thumbnails a new list of thumbnails or null
262
   */
263
  public void setThumbnails (List thumbnails)
264
  {
265
    this.thumbnails = thumbnails;
266
  }
267
}

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.