Image transcoding (JPEG to PNG) with Java
31,421
Solution 1
ImageIO can be used to load JPEG files and save PNG files (also into a ByteArrayOutputStream
if you don't want to write to a file).
Solution 2
This is what I ended up doing, I was thinking toooo far outside of the box when I asked the question..
// these are the imports needed
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import java.io.ByteArrayOutputStream;
// read a jpeg from a inputFile
BufferedImage bufferedImage = ImageIO.read(new File(inputFile));
// write the bufferedImage back to outputFile
ImageIO.write(bufferedImage, "png", new File(outputFile));
// this writes the bufferedImage into a byte array called resultingBytes
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "png", byteArrayOut);
byte[] resultingBytes = byteArrayOut.toByteArray();
Solution 3
javax.imageio should be enough. Put your JPEG to BufferedImage, then save it with:
File file = new File("newimage.png");
ImageIO.write(myJpegImage, "png", file);
Author by
Abhishek Yadav
Updated on July 09, 2020Comments
-
Abhishek Yadav almost 4 years
In my Java application I would like to download a JPEG, transfer it to a PNG and do something with the resulting bytes.
I am almost certain I remember a library to do this exists, I cannot remember its name.
-
clay over 7 yearsCode example was helpful here. Glad to not to write out to a new file.
-
Cardin almost 6 yearsThis answer doesn't match the question. OP asked for JPG to PNG, not the other way round...