private void _generateImagesIM( FileVersion fileVersion, File file, int depth, int dpi, int height, int width, boolean thumbnail) throws Exception { // Generate images String tempFileId = DLUtil.getTempFileId(fileVersion.getFileEntryId(), fileVersion.getVersion()); IMOperation imOperation = new IMOperation(); imOperation.alpha("off"); imOperation.density(dpi, dpi); if (height != 0) { imOperation.adaptiveResize(width, height); } else { imOperation.adaptiveResize(width); } imOperation.depth(depth); if (thumbnail) { imOperation.addImage(file.getPath() + "[0]"); imOperation.addImage(getThumbnailTempFilePath(tempFileId)); } else { imOperation.addImage(file.getPath()); imOperation.addImage(getPreviewTempFilePath(tempFileId, -1)); } _convertCmd.run(imOperation); // Store images if (thumbnail) { File thumbnailTempFile = getThumbnailTempFile(tempFileId); try { addFileToStore( fileVersion.getCompanyId(), THUMBNAIL_PATH, getThumbnailFilePath(fileVersion), thumbnailTempFile); } finally { FileUtil.delete(thumbnailTempFile); } } else { // ImageMagick converts single page PDFs without appending an // index. Rename file for consistency. File singlePagePreviewFile = getPreviewTempFile(tempFileId, -1); if (singlePagePreviewFile.exists()) { singlePagePreviewFile.renameTo(getPreviewTempFile(tempFileId, 1)); } int total = getPreviewTempFileCount(fileVersion); for (int i = 0; i < total; i++) { File previewTempFile = getPreviewTempFile(tempFileId, i + 1); try { addFileToStore( fileVersion.getCompanyId(), PREVIEW_PATH, getPreviewFilePath(fileVersion, i + 1), previewTempFile); } finally { FileUtil.delete(previewTempFile); } } } }