Saturday, February 26, 2011

Java Tiff Image Jpeg Image Png Image Convert


Java Tiff Image Jpeg Image Png Image Convert

package com.store.file;

import java.awt.Dimension;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.awt.image.renderable.ParameterBlock;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Random;
import javax.imageio.ImageIO;
import org.apache.commons.codec.binary.Base64;
import org.apache.http.protocol.HTTP;

import com.sun.media.jai.codec.FileSeekableStream;
import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageDecoder;
import com.sun.media.jai.codec.SeekableStream;
import com.sun.media.jai.codec.TIFFDecodeParam;

import javax.media.jai.JAI;
import javax.media.jai.NullOpImage;
import javax.media.jai.OpImage;
import javax.media.jai.PlanarImage;

public class PutImageIntoXml {
    public static int DISPLAY_WIDTH = 100;
    public static String transferImage(String storeLocation, String imageName,
            String claimNumber) throws IOException {
        ByteArrayOutputStream stream = null;
        String imageXmlFile = null;
        System.out.println("\nStoreLocation:" + storeLocation);
        System.out.println("\nImage Name:" + imageName);
        String[] contents = imageName.split("\\.");
      
        if (contents.length == 2) {
            if (contents[1].equals("tiff") || contents[1].equals("tif")) {
                try {
                    SeekableStream s = new FileSeekableStream(storeLocation
                            + imageName);
                    TIFFDecodeParam param = null;
                    ImageDecoder dec = ImageCodec.createImageDecoder("tiff", s,
                            param);
                    ArrayList<ByteArrayOutputStream> bytecontents= new ArrayList<ByteArrayOutputStream>();
                    int numofpages = dec.getNumPages();
                    System.out.println(numofpages);
                    for (int i=0; i< numofpages; i++) {
                    RenderedImage op = new  NullOpImage(dec.decodeAsRenderedImage(i),null,null,OpImage.OP_COMPUTE_BOUND);
                    stream = new ByteArrayOutputStream();
                    int width = op.getWidth();
                    int height = op.getHeight();
                    double conversionFactor = (double)DISPLAY_WIDTH / (double)width;
                    float conversionFactor_ = DISPLAY_WIDTH / width;
                    int thumbHeight = (int)((double)height * conversionFactor);
                    int thumbWidth = (int)((double)width * conversionFactor);
                    Dimension dim = new Dimension(thumbHeight, thumbWidth);              
                    JAI.setDefaultRenderingSize(dim);
                    JAI.setDefaultTileSize(dim);
                    JAI.create("encode", op, stream, "tiff");
                    bytecontents.add(stream);
                    }
                    StringBuffer encodedImage = new StringBuffer();
                    int numberofpages = bytecontents.size();
                    for(int i=0;i<numberofpages;i++){
                    stream = bytecontents.get(i);
                    byte[] b = stream.toByteArray();
                    encodedImage =encodedImage.append(Base64.encodeBase64String(b));
                    }
                    imageXmlFile =createImageXML(storeLocation, encodedImage.toString(),
                            claimNumber);
                    System.out.println(imageXmlFile);
                    imageXmlFile=URLEncoder.encode(imageXmlFile,HTTP.UTF_8);
                } catch (Exception e) {
                    e.printStackTrace();
                System.out.println("Some problem with image");
                } finally {
                    stream.close();
                }
            } else {
                try {
                    BufferedImage img = ImageIO.read(new File(storeLocation
                            + imageName));
                    stream = new ByteArrayOutputStream();
                    ImageIO.write(img, "png", stream);
                    stream.flush();
                    String encodedImage = Base64.encodeBase64String(stream
                            .toByteArray());
                    imageXmlFile = createImageXML(storeLocation, encodedImage,
                            claimNumber);
                } catch (Exception e) {
                } finally {
                    stream.close();
                }
                return imageXmlFile;
            }
        }
        return imageXmlFile;

    }

    public static String createImageXML(String storeLocation,
            String encodedImage, String claimNumber) {
        StringBuffer out = null;
        Calendar cal = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
        Random randomGenerator = new Random();
        int randomInt = randomGenerator.nextInt(100);
        try {
            String timeFileSent = sdf.format(cal.getTime());
            out = new StringBuffer();
            out.append("<ABC>");
            out.append("<Document>");
            out.append(encodedImage);
            out.append("</Document>");
            out.append("<WorkType>Documentation</WorkType>");
            out.append(" </ABC>");
            System.out.println("\nWrote the file");
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        } finally {
        }
        return out.toString();
    }

    public static String[] splitStoreLocationAndImageName(String imageName) {
        String[] storeAndImage = new String[2];
        System.out.println("\nImageName:" + imageName);
        int lastIndex = imageName.lastIndexOf("/");
        System.out.println(lastIndex);
        storeAndImage[0] = imageName.substring(0, lastIndex + 1);
        System.out.println();
        storeAndImage[1] = (imageName.substring(lastIndex + 1));
        return storeAndImage;
    }

    public static final String DATE_FORMAT_NOW = "yyyy-MM-ddHH:mm:ss:";
}

Delete all files of directory using Php

<?php
$dir= "/opt/liferay/6.0.4/test2";
   
class Deletefile{
function deleteDirectory($dir) {
    if (!file_exists($dir)) return true;
    if (!is_dir($dir) || is_link($dir)) {
         chmod($dir, 0777);
        return unlink($dir);}
        foreach (scandir($dir) as $item) {
            if ($item == '.' || $item == '..') continue;
            if (!self::deleteDirectory($dir . "/" . $item)) {
                chmod($dir . "/" . $item, 0777);
                if (!self::deleteDirectory($dir . "/" . $item)) return false;
            };
        }
        return rmdir($dir);
    }

}

$df = new Deletefile();
$df->deleteDirectory($dir);
echo "Reached here";

Read a file in Java

public static String readFile(){
        System.out.println("Reading Dummy file");
        StringBuilder contents = new StringBuilder();
        File aFile = new File("/opt/liferay/6.0.4/test.xml");
        try {
              BufferedReader input =  new BufferedReader(new FileReader(aFile));
              try {
                String line = null;
                while (( line = input.readLine()) != null){
                  contents.append(line);
                  contents.append(System.getProperty("line.separator"));
                }
              }
              finally {
                input.close();
              }
            }
            catch (IOException ex){
              ex.printStackTrace();
            }
           
    return contents.toString();

    }