package org.hwo.image; import java.awt.image.BufferedImage; import java.io.File; import org.hwo.image.imageio.ImageIOFile; import org.hwo.image.tiff.TiffFile; public class ImageProvider { private static ImageProvider imageProvider; public static ImageProvider instance() { if (imageProvider == null) imageProvider = new ImageProvider(); return new ImageProvider(); } ImageFile[] imageFiles = { new TiffFile(), new ImageIOFile("png"), new ImageIOFile("jpg") }; protected ImageProvider() { } public ImageFile load(File file) { for (ImageFile imageFile:imageFiles) { if (imageFile.identify(file)) { ImageFile ifile = imageFile.newInstance(); ifile.load(file); return ifile; } } return null; } public ImageFile load(String path) { return load(new File(path)); } public void save(BufferedImage image,File imageFile) { for (ImageFile ifile:imageFiles) { if (ifile.identify(imageFile)) { ImageFile writer = ifile.newInstance(); writer.addPage(image); writer.save(imageFile); return; } } } }