/** * Generate a Thumbnail of the input file. Try all available Thumbnailers and use the first that * returns an image. * * <p>MIME-Detection narrows the selection of Thumbnailers to try: * <li>First all Thumbnailers that declare to accept such a MIME Type are used * <li>Then all Thumbnailers that declare to accept all possible MIME Types. * * @param input Input file that should be processed * @param output File in which should be written * @param mimeType MIME-Type of input file (null if unknown) * @throws IOException If file cannot be read/written. * @throws ThumbnailerException If the thumbnailing process failed (i.e., no thumbnailer could * generate an Thumbnail. The last ThumbnailerException is re-thrown.) */ public void generateThumbnail(File input, File output, String mimeType) throws IOException, ThumbnailerException { FileDoesNotExistException.check(input, "The input file"); FileDoesNotExistException.checkWrite(output, "The output file", true, false); boolean generated = false; // MIME might be known already (in case of recursive thumbnail managers) if (mimeType == null) { mimeType = mimeTypeDetector.getMimeType(input); mLog.debug("Detected Mime-Typ: " + mimeType); } if (mimeType != null) generated = executeThumbnailers(mimeType, input, output, mimeType); // Try again using wildcard thumbnailers if (!generated) generated = executeThumbnailers(ALL_MIME_WILDCARD, input, output, mimeType); if (!generated) throw new ThumbnailerException( "No suitable Thumbnailer has been found. (File: " + input.getName() + " ; Detected MIME: " + mimeType + ")"); }
/** * Set the folder where the thumbnails should be generated by default (if no output file is * given). * * @param thumbnailPath Path where the future thumbnails will be written to * @throws FileDoesNotExistException If the given path is not writeable */ public void setThumbnailFolder(File thumbnailPath) throws FileDoesNotExistException { FileDoesNotExistException.checkWrite(thumbnailPath, "The thumbnail folder", true, true); thumbnailFolder = thumbnailPath; }