List of usage examples for javax.imageio ImageIO getWriterFormatNames
public static String[] getWriterFormatNames()
From source file:ShowImageIOInfo.java
static public void main(String args[]) throws Exception { String names[] = ImageIO.getReaderFormatNames(); for (int i = 0; i < names.length; ++i) { System.out.println("reader " + names[i]); }/*w w w. j a v a 2 s . c o m*/ names = ImageIO.getWriterFormatNames(); for (int i = 0; i < names.length; ++i) { System.out.println("writer " + names[i]); } }
From source file:Main.java
public static void main(String[] args) { String[] readers, writers;/*from w w w. ja v a 2 s . co m*/ System.out.println("For Reading:"); readers = ImageIO.getReaderFormatNames(); System.out.println("\tBy format:"); for (int i = 0; i < readers.length; i++) System.out.println("\t\t" + readers[i]); readers = ImageIO.getReaderMIMETypes(); System.out.println("\tBy MIME Types:"); for (int i = 0; i < readers.length; i++) System.out.println("\t\t" + readers[i]); System.out.println("For Writing:"); writers = ImageIO.getWriterFormatNames(); System.out.println("\tBy format:"); for (int i = 0; i < writers.length; i++) System.out.println("\t\t" + writers[i]); writers = ImageIO.getWriterMIMETypes(); System.out.println("\tBy MIME Types:"); for (int i = 0; i < writers.length; i++) System.out.println("\t\t" + writers[i]); }
From source file:com.opopov.cloud.image.service.Validator.java
public Validator() { supportedImageWriteFormats.addAll(Arrays.asList(ImageIO.getWriterFormatNames())); }
From source file:info.magnolia.module.imaging.tools.ImageIOPluginsPage.java
public Collection<String> getOutputFormatNames() { return filter(ImageIO.getWriterFormatNames()); }
From source file:SaveImage.java
public String[] getFormats() { String[] formats = ImageIO.getWriterFormatNames(); TreeSet<String> formatSet = new TreeSet<String>(); for (String s : formats) { formatSet.add(s.toLowerCase());/*from w ww. j a v a 2 s . com*/ } return formatSet.toArray(new String[0]); }
From source file:com.chiorichan.factory.event.PostImageProcessor.java
@EventHandler() public void onEvent(PostEvalEvent event) { try {//from www. j a v a2s. c om if (event.context().contentType() == null || !event.context().contentType().toLowerCase().startsWith("image")) return; float x = -1; float y = -1; boolean cacheEnabled = AppConfig.get().getBoolean("advanced.processors.imageProcessorCache", true); boolean grayscale = false; ScriptingContext context = event.context(); HttpRequestWrapper request = context.request(); Map<String, String> rewrite = request.getRewriteMap(); if (rewrite != null) { if (rewrite.get("serverSideOptions") != null) { String[] params = rewrite.get("serverSideOptions").trim().split("_"); for (String p : params) if (p.toLowerCase().startsWith("width") && x < 0) x = Integer.parseInt(p.substring(5)); else if ((p.toLowerCase().startsWith("x") || p.toLowerCase().startsWith("w")) && p.length() > 1 && x < 0) x = Integer.parseInt(p.substring(1)); else if (p.toLowerCase().startsWith("height") && y < 0) y = Integer.parseInt(p.substring(6)); else if ((p.toLowerCase().startsWith("y") || p.toLowerCase().startsWith("h")) && p.length() > 1 && y < 0) y = Integer.parseInt(p.substring(1)); else if (p.toLowerCase().equals("thumb")) { x = 150; y = 0; break; } else if (p.toLowerCase().equals("bw") || p.toLowerCase().equals("grayscale")) grayscale = true; } if (request.getArgument("width") != null && request.getArgument("width").length() > 0) x = request.getArgumentInt("width"); if (request.getArgument("height") != null && request.getArgument("height").length() > 0) y = request.getArgumentInt("height"); if (request.getArgument("w") != null && request.getArgument("w").length() > 0) x = request.getArgumentInt("w"); if (request.getArgument("h") != null && request.getArgument("h").length() > 0) y = request.getArgumentInt("h"); if (request.getArgument("thumb") != null) { x = 150; y = 0; } if (request.hasArgument("bw") || request.hasArgument("grayscale")) grayscale = true; } // Tests if our Post Processor can process the current image. List<String> readerFormats = Arrays.asList(ImageIO.getReaderFormatNames()); List<String> writerFormats = Arrays.asList(ImageIO.getWriterFormatNames()); if (context.contentType() != null && !readerFormats.contains(context.contentType().split("/")[1].toLowerCase())) return; int inx = event.context().buffer().readerIndex(); BufferedImage img = ImageIO.read(new ByteBufInputStream(event.context().buffer())); event.context().buffer().readerIndex(inx); if (img == null) return; float w = img.getWidth(); float h = img.getHeight(); float w1 = w; float h1 = h; if (x < 1 && y < 1) { x = w; y = h; } else if (x > 0 && y < 1) { w1 = x; h1 = x * (h / w); } else if (y > 0 && x < 1) { w1 = y * (w / h); h1 = y; } else if (x > 0 && y > 0) { w1 = x; h1 = y; } boolean resize = w1 > 0 && h1 > 0 && w1 != w && h1 != h; boolean argb = request.hasArgument("argb") && request.getArgument("argb").length() == 8; if (!resize && !argb && !grayscale) return; // Produce a unique encapsulated id based on this image processing request String encapId = SecureFunc.md5(context.filename() + w1 + h1 + request.getArgument("argb") + grayscale); File tmp = context.site() == null ? AppConfig.get().getDirectoryCache() : context.site().directoryTemp(); File file = new File(tmp, encapId + "_" + new File(context.filename()).getName()); if (cacheEnabled && file.exists()) { event.context().resetAndWrite(FileUtils.readFileToByteArray(file)); return; } Image image = resize ? img.getScaledInstance(Math.round(w1), Math.round(h1), AppConfig.get().getBoolean("advanced.processors.useFastGraphics", true) ? Image.SCALE_FAST : Image.SCALE_SMOOTH) : img; // TODO Report malformed parameters to user if (argb) { FilteredImageSource filteredSrc = new FilteredImageSource(image.getSource(), new RGBColorFilter((int) Long.parseLong(request.getArgument("argb"), 16))); image = Toolkit.getDefaultToolkit().createImage(filteredSrc); } BufferedImage rtn = new BufferedImage(Math.round(w1), Math.round(h1), img.getType()); Graphics2D graphics = rtn.createGraphics(); graphics.drawImage(image, 0, 0, null); graphics.dispose(); if (grayscale) { ColorConvertOp op = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null); op.filter(rtn, rtn); } if (resize) Log.get().info(EnumColor.GRAY + "Resized image from " + Math.round(w) + "px by " + Math.round(h) + "px to " + Math.round(w1) + "px by " + Math.round(h1) + "px"); if (rtn != null) { ByteArrayOutputStream bs = new ByteArrayOutputStream(); if (context.contentType() != null && writerFormats.contains(context.contentType().split("/")[1].toLowerCase())) ImageIO.write(rtn, context.contentType().split("/")[1].toLowerCase(), bs); else ImageIO.write(rtn, "png", bs); if (cacheEnabled && !file.exists()) FileUtils.writeByteArrayToFile(file, bs.toByteArray()); event.context().resetAndWrite(bs.toByteArray()); } } catch (Throwable e) { e.printStackTrace(); } return; }
From source file:com.aimluck.eip.message.MessageRoomFormData.java
/** * //from w w w.j a v a 2 s . c om * @param rundata * @param context * @param msgList * @return */ @Override protected boolean setFormData(RunData rundata, Context context, List<String> msgList) throws ALPageNotFoundException, ALDBErrorException { boolean res = super.setFormData(rundata, context, msgList); if (res) { try { String memberNames[] = rundata.getParameters().getStrings("member_to"); memberList.clear(); if (memberNames != null && memberNames.length > 0) { SelectQuery<TurbineUser> query = Database.query(TurbineUser.class); Expression exp = ExpressionFactory.inExp(TurbineUser.LOGIN_NAME_PROPERTY, memberNames); query.setQualifier(exp); memberList.addAll(ALEipUtils.getUsersFromSelectQuery(query)); } if (memberList.size() == 0) { memberList.add(login_user); } List<FileuploadLiteBean> fileBeanList = FileuploadUtils.getFileuploadList(rundata); if (fileBeanList != null && fileBeanList.size() > 0) { filebean = fileBeanList.get(0); if (filebean.getFileId() != 0) { String[] acceptExts = ImageIO.getWriterFormatNames(); facePhoto = null; ShrinkImageSet bytesShrinkFilebean = FileuploadUtils.getBytesShrinkFilebean( Database.getDomainName(), folderName, ALEipUtils.getUserId(rundata), filebean, acceptExts, FileuploadUtils.DEF_THUMBNAIL_WIDTH, FileuploadUtils.DEF_THUMBNAIL_HEIGHT, msgList, false); if (bytesShrinkFilebean != null) { facePhoto = bytesShrinkFilebean.getShrinkImage(); } facePhoto_smartphone = null; ShrinkImageSet bytesShrinkFilebean2 = FileuploadUtils.getBytesShrinkFilebean( Database.getDomainName(), folderName, ALEipUtils.getUserId(rundata), filebean, acceptExts, FileuploadUtils.DEF_THUMBNAIL_WIDTH_SMARTPHONE, FileuploadUtils.DEF_THUMBNAIL_HEIGHT_SMARTPHONE, msgList, false); if (bytesShrinkFilebean2 != null) { facePhoto_smartphone = bytesShrinkFilebean2.getShrinkImage(); } } else { facePhoto = null; facePhoto_smartphone = null; } } } catch (Exception ex) { logger.error("MessageRoomFormData.setFormData", ex); } } return res; }
From source file:ImageIOTest.java
/** * Gets a set of "preferred" format names of all image writers. The preferred format name is the * first format name that a writer specifies. * @return the format name set/*from w w w . j av a 2s . c o m*/ */ public static Set<String> getWriterFormats() { TreeSet<String> writerFormats = new TreeSet<String>(); TreeSet<String> formatNames = new TreeSet<String>(Arrays.asList(ImageIO.getWriterFormatNames())); while (formatNames.size() > 0) { String name = formatNames.iterator().next(); Iterator<ImageWriter> iter = ImageIO.getImageWritersByFormatName(name); ImageWriter writer = iter.next(); String[] names = writer.getOriginatingProvider().getFormatNames(); String format = names[0]; if (format.equals(format.toLowerCase())) format = format.toUpperCase(); writerFormats.add(format); formatNames.removeAll(Arrays.asList(names)); } return writerFormats; }
From source file:com.ackpdfbox.app.imageio.ImageIOUtil.java
/** * Writes a buffered image to a file using the given image format. * Compression is fixed for PNG, GIF, BMP and WBMP, dependent of the quality * parameter for JPG, and dependent of bit count for TIFF (a bitonal image * will be compressed with CCITT G4, a color image with LZW). Creating a * TIFF image is only supported if the jai_imageio library is in the class * path.//from w w w.j av a 2s. c o m * * @param image the image to be written * @param formatName the target format (ex. "png") * @param output the output stream to be used for writing * @param dpi the resolution in dpi (dots per inch) to be used in metadata * @param quality quality to be used when compressing the image (0 < * quality < 1.0f) * @return true if the image file was produced, false if there was an error. * @throws IOException if an I/O error occurs */ public static boolean writeImage(BufferedImage image, String formatName, OutputStream output, int dpi, float quality) throws IOException { ImageOutputStream imageOutput = null; ImageWriter writer = null; try { // find suitable image writer Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName(formatName); ImageWriteParam param = null; IIOMetadata metadata = null; // Loop until we get the best driver, i.e. one that supports // setting dpi in the standard metadata format; however we'd also // accept a driver that can't, if a better one can't be found while (writers.hasNext()) { if (writer != null) { writer.dispose(); } writer = writers.next(); param = writer.getDefaultWriteParam(); metadata = writer.getDefaultImageMetadata(new ImageTypeSpecifier(image), param); if (metadata != null && !metadata.isReadOnly() && metadata.isStandardMetadataFormatSupported()) { break; } } if (writer == null) { LOG.error("No ImageWriter found for '" + formatName + "' format"); StringBuilder sb = new StringBuilder(); String[] writerFormatNames = ImageIO.getWriterFormatNames(); for (String fmt : writerFormatNames) { sb.append(fmt); sb.append(' '); } LOG.error("Supported formats: " + sb); return false; } // compression if (param != null && param.canWriteCompressed()) { param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); if (formatName.toLowerCase().startsWith("tif")) { // TIFF compression TIFFUtil.setCompressionType(param, image); } else { param.setCompressionType(param.getCompressionTypes()[0]); param.setCompressionQuality(quality); } } if (formatName.toLowerCase().startsWith("tif")) { // TIFF metadata TIFFUtil.updateMetadata(metadata, image, dpi); } else if ("jpeg".equals(formatName.toLowerCase()) || "jpg".equals(formatName.toLowerCase())) { // This segment must be run before other meta operations, // or else "IIOInvalidTreeException: Invalid node: app0JFIF" // The other (general) "meta" methods may not be used, because // this will break the reading of the meta data in tests JPEGUtil.updateMetadata(metadata, dpi); } else { // write metadata is possible if (metadata != null && !metadata.isReadOnly() && metadata.isStandardMetadataFormatSupported()) { setDPI(metadata, dpi, formatName); } } // write imageOutput = ImageIO.createImageOutputStream(output); writer.setOutput(imageOutput); writer.write(null, new IIOImage(image, null, metadata), param); } finally { if (writer != null) { writer.dispose(); } if (imageOutput != null) { imageOutput.close(); } } return true; }
From source file:com.aimluck.eip.wiki.util.WikiFileUtils.java
public static boolean insertFileDataDelegate(RunData rundata, Context context, EipTWiki wiki, List<FileuploadLiteBean> fileuploadList, String folderName, List<String> msgList) { if (fileuploadList == null || fileuploadList.size() <= 0) { fileuploadList = new ArrayList<FileuploadLiteBean>(); }/* w ww .j a va 2s.co m*/ int uid = ALEipUtils.getUserId(rundata); String orgId = Database.getDomainName(); List<Integer> hadfileids = new ArrayList<Integer>(); for (FileuploadLiteBean file : fileuploadList) { if (!file.isNewFile()) { hadfileids.add(file.getFileId()); } } SelectQuery<EipTWikiFile> dbquery = Database.query(EipTWikiFile.class); dbquery.andQualifier(ExpressionFactory.matchExp(EipTWikiFile.WIKI_ID_PROPERTY, wiki.getWikiId())); List<EipTWikiFile> existsFiles = dbquery.fetchList(); List<EipTWikiFile> delFiles = new ArrayList<EipTWikiFile>(); for (EipTWikiFile file : existsFiles) { if (!hadfileids.contains(file.getFileId())) { delFiles.add(file); } } // ?????? if (delFiles.size() > 0) { int delsize = delFiles.size(); for (int i = 0; i < delsize; i++) { ALStorageService .deleteFile(WikiFileUtils.getSaveDirPath(orgId, uid) + (delFiles.get(i)).getFilePath()); } // ?? Database.deleteAll(delFiles); } // ? try { for (FileuploadLiteBean filebean : fileuploadList) { if (!filebean.isNewFile()) { continue; } // ?? String[] acceptExts = ImageIO.getWriterFormatNames(); ShrinkImageSet shrinkImageSet = FileuploadUtils.getBytesShrinkFilebean(orgId, folderName, uid, filebean, acceptExts, FileuploadUtils.DEF_THUMBNAIL_WIDTH, FileuploadUtils.DEF_THUMBNAIL_HEIGHT, msgList, true); String filename = "0_" + String.valueOf(System.nanoTime()); // ? EipTWikiFile file = Database.create(EipTWikiFile.class); // file.setOwnerId(Integer.valueOf(uid)); // ID file.setEipTWiki(wiki); // ?? file.setFileName(filebean.getFileName()); // file.setFilePath(WikiFileUtils.getRelativePath(filename)); // ?? if (shrinkImageSet != null && shrinkImageSet.getShrinkImage() != null) { file.setFileThumbnail(shrinkImageSet.getShrinkImage()); } // ? file.setCreateDate(Calendar.getInstance().getTime()); // file.setUpdateDate(Calendar.getInstance().getTime()); if (shrinkImageSet != null && shrinkImageSet.getFixImage() != null) { // ?? ALStorageService.createNewFile(new ByteArrayInputStream(shrinkImageSet.getFixImage()), FOLDER_FILEDIR_WIKI + ALStorageService.separator() + Database.getDomainName() + ALStorageService.separator() + CATEGORY_KEY + ALStorageService.separator() + uid + ALStorageService.separator() + filename); } else { // ? ALStorageService.copyTmpFile(uid, folderName, String.valueOf(filebean.getFileId()), FOLDER_FILEDIR_WIKI, CATEGORY_KEY + ALStorageService.separator() + uid, filename); } } // ?? ALStorageService.deleteTmpFolder(uid, folderName); } catch (Exception e) { Database.rollback(); logger.error("WikiFileUtils.insertFileDataDelegate", e); return false; } return true; }