01: /*
02: * Copyright 1995-1996 Sun Microsystems, Inc. All Rights Reserved.
03: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
04: *
05: * This code is free software; you can redistribute it and/or modify it
06: * under the terms of the GNU General Public License version 2 only, as
07: * published by the Free Software Foundation. Sun designates this
08: * particular file as subject to the "Classpath" exception as provided
09: * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22: * CA 95054 USA or visit www.sun.com if you need additional information or
23: * have any questions.
24: */
25:
26: package sun.awt.image;
27:
28: import java.io.InputStream;
29: import java.io.FileInputStream;
30: import java.io.BufferedInputStream;
31: import java.io.FileNotFoundException;
32:
33: public class FileImageSource extends InputStreamImageSource {
34: String imagefile;
35:
36: public FileImageSource(String filename) {
37: SecurityManager security = System.getSecurityManager();
38: if (security != null) {
39: security.checkRead(filename);
40: }
41: imagefile = filename;
42: }
43:
44: final boolean checkSecurity(Object context, boolean quiet) {
45: // File based images only ever need to be checked statically
46: // when the image is retrieved from the cache.
47: return true;
48: }
49:
50: protected ImageDecoder getDecoder() {
51: InputStream is;
52: try {
53: is = new BufferedInputStream(new FileInputStream(imagefile));
54: } catch (FileNotFoundException e) {
55: return null;
56: }
57: // Don't believe the file suffix - many users don't know what
58: // kind of image they have and guess wrong...
59: /*
60: int suffixpos = imagefile.lastIndexOf('.');
61: if (suffixpos >= 0) {
62: String suffix = imagefile.substring(suffixpos+1).toLowerCase();
63: if (suffix.equals("gif")) {
64: return new GifImageDecoder(this, is);
65: } else if (suffix.equals("jpeg") || suffix.equals("jpg") ||
66: suffix.equals("jpe") || suffix.equals("jfif")) {
67: return new JPEGImageDecoder(this, is);
68: } else if (suffix.equals("xbm")) {
69: return new XbmImageDecoder(this, is);
70: }
71: }
72: */
73: return getDecoder(is);
74: }
75: }
|