Here you can find the source of imageToBytes(BufferedImage image, String imageFormat)
public static byte[] imageToBytes(BufferedImage image, String imageFormat) throws IOException
//package com.java2s; /*/*w w w. j a v a 2 s. c o m*/ * Copyright 2012 buddycloud * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import javax.imageio.IIOImage; import javax.imageio.ImageIO; import javax.imageio.ImageWriteParam; import javax.imageio.ImageWriter; import javax.imageio.stream.MemoryCacheImageOutputStream; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; public class Main { public static byte[] imageToBytes(BufferedImage image, String imageFormat) throws IOException { ByteArrayOutputStream stream = new ByteArrayOutputStream(); ImageWriter writer = ImageIO.getImageWritersByFormatName(imageFormat).next(); ImageWriteParam param = getParams(writer); writer.setOutput(new MemoryCacheImageOutputStream(stream)); writer.write(null, new IIOImage(image, null, null), param); stream.flush(); byte[] imageInByte = stream.toByteArray(); stream.close(); return imageInByte; } private static ImageWriteParam getParams(ImageWriter writer) { ImageWriteParam param = writer.getDefaultWriteParam(); try { // Do not compress before output the file param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); param.setCompressionQuality(1.0f); } catch (Throwable ignored) { // If the format does not support setting compression mode } return param; } }