21

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.

BalusC
  • 1,040,783
  • 362
  • 3,548
  • 3,513
adam
  • 22,064
  • 20
  • 85
  • 119

4 Answers4

38

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();
Hat
  • 502
  • 8
  • 25
adam
  • 22,064
  • 20
  • 85
  • 119
15

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);
bezmax
  • 24,722
  • 10
  • 51
  • 84
15

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).

Brad Larson
  • 169,393
  • 45
  • 393
  • 567
Joachim Sauer
  • 291,719
  • 55
  • 540
  • 600
0
BufferedImage bufferGambar;
try {

    bufferGambar = ImageIO.read(new File("ImagePNG.png"));
    // pkai type INT karna bertipe integer RGB bufferimage
    BufferedImage newBufferGambar = new BufferedImage(bufferGambar.getWidth(), bufferGambar.getHeight(), BufferedImage.TYPE_INT_RGB);

    newBufferGambar.createGraphics().drawImage(bufferGambar, 0, 0, Color.white, null);
    ImageIO.write(newBufferGambar, "jpg", new File("Create file JPEG.jpg"));

    JOptionPane.showMessageDialog(null, "Convert to JPG succes YES");

} catch(Exception e) {
    JOptionPane.showMessageDialog(null, e);
}
bfontaine
  • 16,410
  • 12
  • 69
  • 92
waviq
  • 19
  • This answer doesn't match the question. OP asked for JPG to PNG, not the other way round... – Cardin Aug 27 '18 at 09:06