1 /* 2 * Copyright (c) 1995, 1996, 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 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 if (imagefile == null) { 52 return null; 53 } 54 55 InputStream is; 56 try { 57 is = new BufferedInputStream(new FileInputStream(imagefile)); 58 } catch (FileNotFoundException e) { 59 return null; 60 } 61 // Don't believe the file suffix - many users don't know what 62 // kind of image they have and guess wrong... 63 /* 64 int suffixpos = imagefile.lastIndexOf('.'); 65 if (suffixpos >= 0) { 66 String suffix = imagefile.substring(suffixpos+1).toLowerCase(); 67 if (suffix.equals("gif")) { 68 return new GifImageDecoder(this, is); 69 } else if (suffix.equals("jpeg") || suffix.equals("jpg") || 70 suffix.equals("jpe") || suffix.equals("jfif")) { 71 return new JPEGImageDecoder(this, is); 72 } else if (suffix.equals("xbm")) { 73 return new XbmImageDecoder(this, is); 74 } 75 } 76 */ 77 return getDecoder(is); 78 } 79 }