All Downloads are FREE. Search and download functionalities are using the official Maven repository.

utilities.Ppm2Jpeg Maven / Gradle / Ivy

The newest version!
package utilities;

import javax.imageio.ImageIO;
import javax.media.jai.JAI;
import javax.media.jai.RenderedOp;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.RenderedImage;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.FileFilter;
import java.util.Hashtable;

/**
 * Converts PPM files to JPEG files; can pass in single file name or a directory name, the
 * latter will process all .ppm files in the directory, and output to that directory.
 * This requires JAI to be installed.
 */
public class Ppm2Jpeg {
    public static void main(String[] args) {
        File f = new File(args[0]);
        if (f.exists()) {
            if (f.isFile()) {
                ppm2Jpeg(f);
            } else {
                File[] list = f.listFiles(new FileFilter() {
                    public boolean accept(File pathname) {
                        return pathname.getName().endsWith(".ppm");
                    }
                });
                for (int i = 0; i < list.length; i++) {
                    File file = list[i];
                    ppm2Jpeg(file);
                }
            }
        } else {
            System.err.println("Please enter a file or directory name as arg: " + f);
        }
    }

    private static void ppm2Jpeg(File file) {
        try {
            System.out.print("Converting " + file);
            String fileName = file.getAbsolutePath();
            String outname = "";
            if (fileName.endsWith("ppm")) {
                outname = fileName.substring(0, fileName.length() - 4) + ".jpg";
            } else {
                outname = fileName + ".jpg";
            }
            RenderedOp img = JAI.create("fileload", fileName);
            ColorModel cm = img.getColorModel();
            WritableRaster imgRaster = img.copyData();
            BufferedImage bi = new BufferedImage(cm, imgRaster, false, new Hashtable());
            ImageIO.write((RenderedImage) bi, "jpg", new File(outname));
            System.out.println("...done, " + outname);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy