yacy_search_server/source/de/anomic/ymage/ymageImageParser.java
danielr 3bb870bfcd added final where possible
git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@5030 6c8d7289-2bf4-0310-a012-ef5d649a1542
2008-08-02 12:12:04 +00:00

39 lines
1.3 KiB
Java

package de.anomic.ymage;
import java.awt.Container;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
public class ymageImageParser {
public static final Image parse(final String filename, final byte[] source) {
final MediaTracker mediaTracker = new MediaTracker(new Container());
Image image;
if (((filename.endsWith(".ico")) || (filename.endsWith(".bmp"))) && (ymageBMPParser.isBMP(source))) {
// parse image with BMP parser
ymageBMPParser bmpparser;
bmpparser = new ymageBMPParser(source);
image = bmpparser.getImage();
if (image == null) return null;
} else if ((filename.endsWith(".ico")) && (ymageICOParser.isICO(source))) {
// parse image with ICO parser
ymageICOParser icoparser;
icoparser = new ymageICOParser(source);
image = icoparser.getImage(0);
if (image == null) return null;
} else {
// awt can handle jpg, png and gif formats, try it
image = Toolkit.getDefaultToolkit().createImage(source);
}
final int handle = image.hashCode();
mediaTracker.addImage(image, handle);
try {mediaTracker.waitForID(handle);} catch (final InterruptedException e) {}
return image;
}
}