Image to string and string to image conversion

import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.util.Iterator;
 
import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
 
import com.sun.org.apache.xml.internal.security.utils.Base64;
 
public class Utility
{
	//here path of image is needed to convert it into string
	public String ImageToString(String imagePath) throws Exception
	{
		File file = new File(imagePath);
		FileInputStream fis = new FileInputStream(file);
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		byte[] buffer = new byte[1024];
		try
		{
			for (int readNum; (readNum = fis.read(buffer)) != -1;)
			{
				baos.write(buffer, 0, readNum);
			}
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
		}
		byte[] bytes = baos.toByteArray();
		String imagestring = Base64.encode(bytes);
		return imagestring;
	}
	//here String is provided to be converted into given extension (image only)
	//image created on the fly is stored into pathToStore
	public void StringToImage(String imageContainer, String Extension,
			String pathToStore)
	{
 
		byte[] ImageByteArray;
		try
		{
			ImageByteArray = Base64.decode(imageContainer);
 
			ByteArrayInputStream bais = new ByteArrayInputStream(ImageByteArray);
			Iterator<?> readers = ImageIO
					.getImageReadersByFormatName(Extension);
 
			ImageReader reader = (ImageReader) readers.next();
			Object source = bais;
 
			ImageInputStream iis = ImageIO.createImageInputStream(source);
			reader.setInput(iis, true);
			ImageReadParam param = reader.getDefaultReadParam();
 
			Image image = reader.read(0, param);
 
			BufferedImage buffimage = new BufferedImage(image.getWidth(null),
					image.getHeight(null), BufferedImage.TYPE_INT_RGB);
 
			Graphics2D g2 = buffimage.createGraphics();
			g2.drawImage(image, null, null);
			File newfile = new File(pathToStore);
			ImageIO.write(buffimage, Extension, newfile);
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
		}
 
	}
	
	public static void main(String[] args) throws Exception
	{
		Utility ut = new Utility();

//		String str = ut.ImageToString("c:/ss.bmp");
//		File file = new File("c:/ss.txt");
//		FileOutputStream out = new FileOutputStream(file);
//		out.write(str.getBytes());
//		out.flush();
//		out.close();
		
		File file = new File("c:/ss.txt");
		DataInputStream in = new DataInputStream(new FileInputStream(file));
		String line = null;
		StringBuffer all = new StringBuffer();
		while((line = in.readLine()) != null)
		{
			all.append(line);
		}
		
		ut.StringToImage(all.toString(), "BMP", "c:/ff.jpg");
	}
}

你可能感兴趣的:(java,C++,c,C#,IIS)