mirror of
https://github.com/yacy/yacy_search_server.git
synced 2024-09-21 00:00:13 +02:00
d2938c44a1
- image parser that implement the document parser interface return itself in the list of images of the document which should cause that the parsed images contribute to the image search git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@6493 6c8d7289-2bf4-0310-a012-ef5d649a1542
39 lines
1.3 KiB
Java
39 lines
1.3 KiB
Java
package net.yacy.document;
|
|
|
|
import java.awt.Container;
|
|
import java.awt.Image;
|
|
import java.awt.MediaTracker;
|
|
import java.awt.Toolkit;
|
|
|
|
import net.yacy.document.parser.images.bmpParser;
|
|
import net.yacy.document.parser.images.icoParser;
|
|
|
|
public class ImageParser {
|
|
|
|
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"))) && (bmpParser.isBMP(source))) {
|
|
// parse image with BMP parser
|
|
image = bmpParser.parse(source).getImage();
|
|
if (image == null) return null;
|
|
} else if ((filename.endsWith(".ico")) && (icoParser.isICO(source))) {
|
|
// parse image with ICO parser
|
|
icoParser icoparser;
|
|
icoparser = new icoParser(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;
|
|
}
|
|
|
|
}
|