java ImageIO处理图像的封装

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

package com.adam.dev.pic.easyImage;
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.color.ColorSpace;
import java.awt.image.BufferedImage;
import java.awt.image.ColorConvertOp;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.List;


import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;


import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;


/**
 * @author adam.胡升阳
 * 创建日期 2012-2-29
 */
public class OperateImage{


    public OperateImage() {
 super();
 }


 /** 
 * 对图片裁剪,并把裁剪新图片保存 
 * @param srcPath 读取源图片路径
 * @param toPath	写入图片路径
 * @param x 剪切起始点x坐标
 * @param y 剪切起始点y坐标
 * @param width 剪切宽度
 * @param height	 剪切高度
 * @param readImageFormat  读取图片格式
 * @param writeImageFormat 写入图片格式
 * @throws IOException
 */
    public void cropImage(String srcPath,String toPath,
    		int x,int y,int width,int height,
    		String readImageFormat,String writeImageFormat) throws IOException{   
        FileInputStream fis = null ;
        ImageInputStream iis =null ;
        try{   
            //读取图片文件
        	fis = new FileInputStream(srcPath); 
            Iterator it = ImageIO.getImageReadersByFormatName(readImageFormat); 
            ImageReader reader = (ImageReader) it.next(); 
            //获取图片流 
            iis = ImageIO.createImageInputStream(fis);  
            reader.setInput(iis,true) ;
            ImageReadParam param = reader.getDefaultReadParam(); 
            //定义一个矩形
            Rectangle rect = new Rectangle(x, y, width, height); 
            //提供一个 BufferedImage,将其用作解码像素数据的目标。 
            param.setSourceRegion(rect);
            BufferedImage bi = reader.read(0,param);                
            //保存新图片 
            ImageIO.write(bi, writeImageFormat, new File(toPath));     
        }finally{
            if(fis!=null)
            	fis.close();       
            if(iis!=null)
               iis.close(); 
        } 
    }


    /**
     * 按倍率缩小图片
     * @param srcImagePath 读取图片路径
     * @param toImagePath 写入图片路径
     * @param widthRatio	宽度缩小比例
     * @param heightRatio	 高度缩小比例
     * @throws IOException
     */
    public void reduceImageByRatio(String srcImagePath,String toImagePath,int widthRatio,int heightRatio) throws IOException{
    	FileOutputStream out = null;
    	try{
    		//读入文件  
            File file = new File(srcImagePath);  
            // 构造Image对象  
            BufferedImage src = javax.imageio.ImageIO.read(file);  
            int width = src.getWidth();  
            int height = src.getHeight();  
            // 缩小边长 
            BufferedImage tag = new BufferedImage(width / widthRatio, height / heightRatio, BufferedImage.TYPE_INT_RGB);  
            // 绘制 缩小  后的图片 
            tag.getGraphics().drawImage(src, 0, 0, width / widthRatio, height / heightRatio, null);  
            out = new FileOutputStream(toImagePath);  
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);  
            encoder.encode(tag);  
    	}catch(Exception e){
    		e.printStackTrace();
    	}finally{
    		if(out != null){
                out.close();  
    		}
    	}
    }


    /**
     * 长高等比例缩小图片
     * @param srcImagePath 读取图片路径
     * @param toImagePath 写入图片路径
     * @param ratio 缩小比例
     * @throws IOException
     */
    public void reduceImageEqualProportion(String srcImagePath,String toImagePath,int ratio) throws IOException{
    	FileOutputStream out = null;
    	try{
    		//读入文件  
            File file = new File(srcImagePath);  
            // 构造Image对象  
            BufferedImage src = javax.imageio.ImageIO.read(file);  
            int width = src.getWidth();  
            int height = src.getHeight();  
            // 缩小边长 
            BufferedImage tag = new BufferedImage(width / ratio, height / ratio, BufferedImage.TYPE_INT_RGB);  
            // 绘制 缩小  后的图片 
            tag.getGraphics().drawImage(src, 0, 0, width / ratio, height / ratio, null);  
            out = new FileOutputStream(toImagePath);  
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);  
            encoder.encode(tag);  
    	}catch(Exception e){
    		e.printStackTrace();
    	}finally{
    		if(out != null){
                out.close();  
    		}
    	}
    }
    
    /**
     * 按倍率放大图片
     * @param srcImagePath 读取图形路径
     * @param toImagePath 写入入行路径
     * @param widthRatio	宽度放大比例
     * @param heightRatio 高度放大比例
     * @throws IOException
     */
    public void enlargementImageByRatio(String srcImagePath,String toImagePath,int widthRatio,int heightRatio) throws IOException{
    	FileOutputStream out = null;
    	try{
    		//读入文件  
            File file = new File(srcImagePath);  
            // 构造Image对象  
            BufferedImage src = javax.imageio.ImageIO.read(file);  
            int width = src.getWidth();  
            int height = src.getHeight();  
            // 放大边长
            BufferedImage tag = new BufferedImage(width * widthRatio, height * heightRatio, BufferedImage.TYPE_INT_RGB);  
            //绘制放大后的图片
            tag.getGraphics().drawImage(src, 0, 0, width * widthRatio, height * heightRatio, null);  
            out = new FileOutputStream(toImagePath);  
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);  
            encoder.encode(tag);  
    	}catch(Exception e){
    		e.printStackTrace();
    	}finally{
    		if(out != null){
                out.close();  
    		}
    	}
    }
    
    
    /**
     * 长高等比例放大图片
     * @param srcImagePath 读取图形路径
     * @param toImagePath 写入入行路径
     * @param ratio	放大比例
     * @throws IOException
     */
    public void enlargementImageEqualProportion(String srcImagePath,String toImagePath,int ratio) throws IOException{
    	FileOutputStream out = null;
    	try{
    		//读入文件  
            File file = new File(srcImagePath);  
            // 构造Image对象  
            BufferedImage src = javax.imageio.ImageIO.read(file);  
            int width = src.getWidth();  
            int height = src.getHeight();  
            // 放大边长
            BufferedImage tag = new BufferedImage(width * ratio, height * ratio, BufferedImage.TYPE_INT_RGB);  
            //绘制放大后的图片
            tag.getGraphics().drawImage(src, 0, 0, width * ratio, height * ratio, null);  
            out = new FileOutputStream(toImagePath);  
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);  
            encoder.encode(tag);  
    	}catch(Exception e){
    		e.printStackTrace();
    	}finally{
    		if(out != null){
                out.close();  
    		}
    	}
    }
    
    /**
     * 重置图形的边长大小
     * @param srcImagePath 
     * @param toImagePath
     * @param width
     * @param height
     * @throws IOException
     */
    public void resizeImage(String srcImagePath,String toImagePath,int width,int height) throws IOException{
    	FileOutputStream out = null;
    	try{
    		//读入文件  
            File file = new File(srcImagePath);  
            // 构造Image对象  
            BufferedImage src = javax.imageio.ImageIO.read(file);  
            // 放大边长
            BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);  
            //绘制放大后的图片
            tag.getGraphics().drawImage(src, 0, 0, width, height, null);  
            out = new FileOutputStream(toImagePath);  
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);  
            encoder.encode(tag);  
    	}catch(Exception e){
    		e.printStackTrace();
    	}finally{
    		if(out != null){
                out.close();  
    		}
    	}
    }
    
    /**
     * 横向拼接图片(两张)
     * @param firstSrcImagePath 第一张图片的路径
     * @param secondSrcImagePath	第二张图片的路径
     * @param imageFormat	拼接生成图片的格式
     * @param toPath	拼接生成图片的路径
     */
    public void joinImagesHorizontal(String firstSrcImagePath, String secondSrcImagePath,String imageFormat, String toPath){  
    	try {  
    		//读取第一张图片    
    		File  fileOne  =  new  File(firstSrcImagePath);    
            BufferedImage  imageOne = ImageIO.read(fileOne);    
            int  width  =  imageOne.getWidth();//图片宽度    
            int  height  =  imageOne.getHeight();//图片高度    
            //从图片中读取RGB    
            int[]  imageArrayOne  =  new  int[width*height];    
            imageArrayOne  =  imageOne.getRGB(0,0,width,height,imageArrayOne,0,width);    
           
            //对第二张图片做相同的处理    
            File  fileTwo  =  new  File(secondSrcImagePath);    
            BufferedImage  imageTwo  =  ImageIO.read(fileTwo); 
            int width2 = imageTwo.getWidth();
            int height2 = imageTwo.getHeight();
            int[]   ImageArrayTwo  =  new  int[width2*height2];    
            ImageArrayTwo  =  imageTwo.getRGB(0,0,width,height,ImageArrayTwo,0,width);    
            //ImageArrayTwo  =  imageTwo.getRGB(0,0,width2,height2,ImageArrayTwo,0,width2); 
           
            //生成新图片
            //int height3 = (height>height2 || height==height2)?height:height2;
            BufferedImage  imageNew  =  new  BufferedImage(width*2,height,BufferedImage.TYPE_INT_RGB);    
            //BufferedImage  imageNew  =  new  BufferedImage(width+width2,height3,BufferedImage.TYPE_INT_RGB);    
            imageNew.setRGB(0,0,width,height,imageArrayOne,0,width);//设置左半部分的RGB  
            imageNew.setRGB(width,0,width,height,ImageArrayTwo,0,width);//设置右半部分的RGB 
            //imageNew.setRGB(width,0,width2,height2,ImageArrayTwo,0,width2);//设置右半部分的RGB    
           
            File  outFile  =  new  File(toPath);    
            ImageIO.write(imageNew,  imageFormat,  outFile);//写图片
        } catch (Exception e) {  
        	e.printStackTrace();  
        }  
    }
    
    /**
 * 横向拼接一组(多张)图像
 * @param pics  将要拼接的图像
 * @param type 图像写入格式
 * @param dst_pic 图像写入路径
 * @return
 */
    public  boolean joinImageListHorizontal(String[] pics, String type, String dst_pic) {   
    	try {  
    		int len = pics.length;  
    		if (len < 1) {  
    			System.out.println("pics len < 1");  
                return false;  
            }  
    		File[] src = new File[len];  
    		BufferedImage[] images = new BufferedImage[len];  
    		int[][] imageArrays = new int[len][];  
    		for (int i = 0; i < len; i++) {  
    			src[i] = new File(pics[i]);  
    			images[i] = ImageIO.read(src[i]);  
    			int width = images[i].getWidth();  
    			int height = images[i].getHeight();  
    			imageArrays[i] = new int[width * height];// 从图片中读取RGB    
    			imageArrays[i] = images[i].getRGB(0, 0, width, height,  imageArrays[i], 0, width);  
    		}  
    
    		int dst_width = 0;  
    		int dst_height = images[0].getHeight();  
    		for (int i = 0; i < images.length; i++) {  
    			dst_height = dst_height > images[i].getHeight() ? dst_height : images[i].getHeight();  
    			dst_width += images[i].getWidth();
    		}  
    		//System.out.println(dst_width);  
    		//System.out.println(dst_height);  
    		if (dst_height < 1) {  
    			System.out.println("dst_height < 1");  
    			return false;  
    		} 
    		// 生成新图片 
    		BufferedImage ImageNew = new BufferedImage(dst_width, dst_height,  BufferedImage.TYPE_INT_RGB);  
    		int width_i = 0;
    		for (int i = 0; i < images.length; i++) {  
    			ImageNew.setRGB(width_i, 0, images[i].getWidth(), dst_height,  imageArrays[i], 0, images[i].getWidth());  
    			width_i += images[i].getWidth();
    		}  
    		File outFile = new File(dst_pic);  
    		ImageIO.write(ImageNew, type, outFile);// 写图片   
    	} catch (Exception e) {  
            e.printStackTrace();  
            return false;  
        }  
        return true;  
    }
    
    /**
     * 纵向拼接图片(两张)
     * @param firstSrcImagePath 读取的第一张图片
     * @param secondSrcImagePath	读取的第二张图片
     * @param imageFormat 图片写入格式
     * @param toPath	图片写入路径
     */
    public void joinImagesVertical(String firstSrcImagePath, String secondSrcImagePath,String imageFormat, String toPath){  
        try {  
        	//读取第一张图片    
            File  fileOne  =  new  File(firstSrcImagePath);    
            BufferedImage  imageOne = ImageIO.read(fileOne);    
            int  width  =  imageOne.getWidth();//图片宽度    
            int  height  =  imageOne.getHeight();//图片高度    
            //从图片中读取RGB    
            int[]  imageArrayOne  =  new  int[width*height];    
            imageArrayOne  =  imageOne.getRGB(0,0,width,height,imageArrayOne,0,width);    
       
            //对第二张图片做相同的处理    
            File  fileTwo  =  new  File(secondSrcImagePath);    
            BufferedImage  imageTwo  =  ImageIO.read(fileTwo); 
            int width2 = imageTwo.getWidth();
            int height2 = imageTwo.getHeight();
            int[]   ImageArrayTwo  =  new  int[width2*height2];    
            ImageArrayTwo  =  imageTwo.getRGB(0,0,width,height,ImageArrayTwo,0,width);    
            //ImageArrayTwo  =  imageTwo.getRGB(0,0,width2,height2,ImageArrayTwo,0,width2); 
       
            //生成新图片
            //int width3 = (width>width2 || width==width2)?width:width2;
            BufferedImage  imageNew  =  new  BufferedImage(width,height*2,BufferedImage.TYPE_INT_RGB);    
            //BufferedImage  imageNew  =  new  BufferedImage(width3,height+height2,BufferedImage.TYPE_INT_RGB);    
            imageNew.setRGB(0,0,width,height,imageArrayOne,0,width);//设置上半部分的RGB    
            imageNew.setRGB(0,height,width,height,ImageArrayTwo,0,width);//设置下半部分的RGB
            //imageNew.setRGB(0,height,width2,height2,ImageArrayTwo,0,width2);//设置下半部分的RGB    
       
            File  outFile  =  new  File(toPath);    
            ImageIO.write(imageNew,  imageFormat,  outFile);//写图片
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }
    
    /**
     * 纵向拼接一组(多张)图像
     * @param pics		将要拼接的图像数组
     * @param type	写入图像类型
     * @param dst_pic	写入图像路径
     * @return
     */
 public  boolean joinImageListVertical(String[] pics, String type, String dst_pic) {   
        try {  
        	int len = pics.length;  
            if (len < 1) {  
                System.out.println("pics len < 1");  
                return false;  
            }  
        	 File[] src = new File[len];  
             BufferedImage[] images = new BufferedImage[len];  
             int[][] imageArrays = new int[len][];  
             for (int i = 0; i < len; i++) {  
            	//System.out.println(i);
            src[i] = new File(pics[i]);  
            images[i] = ImageIO.read(src[i]);  
            int width = images[i].getWidth();  
            int height = images[i].getHeight();  
            imageArrays[i] = new int[width * height];// 从图片中读取RGB   
            imageArrays[i] = images[i].getRGB(0, 0, width, height,  imageArrays[i], 0, width);  
        }  
             
        int dst_height = 0;  
        int dst_width = images[0].getWidth();  
        for (int i = 0; i < images.length; i++) {  
            dst_width = dst_width > images[i].getWidth() ? dst_width : images[i].getWidth();  
            dst_height += images[i].getHeight();  
        }  
        //System.out.println(dst_width);  
        //System.out.println(dst_height);  
        if (dst_height < 1) {  
            System.out.println("dst_height < 1");  
            return false;  
        }  
        // 生成新图片   
            BufferedImage ImageNew = new BufferedImage(dst_width, dst_height,  BufferedImage.TYPE_INT_RGB);  
            int height_i = 0;  
            for (int i = 0; i < images.length; i++) {  
                ImageNew.setRGB(0, height_i, dst_width, images[i].getHeight(),  imageArrays[i], 0, dst_width);  
                height_i += images[i].getHeight();  
            }  
            File outFile = new File(dst_pic);  
            ImageIO.write(ImageNew, type, outFile);// 写图片   
        } catch (Exception e) {  
            e.printStackTrace();  
            return false;  
        }  
        return true;  
    }  
    
    /**
     * 合并图片(按指定初始x、y坐标将附加图片贴到底图之上)
     * @param negativeImagePath 背景图片路径
     * @param additionImagePath	附加图片路径
     * @param x 附加图片的起始点x坐标
     * @param y  附加图片的起始点y坐标
     * @param toPath 图片写入路径
     * @throws IOException
     */
    public void mergeBothImage(String negativeImagePath,String additionImagePath,int x,int y,String toPath ) throws IOException{
    	InputStream is= null;
    	InputStream is2= null;
    	OutputStream os = null;
    	try{
    		is=new FileInputStream(negativeImagePath);
            is2=new FileInputStream(additionImagePath);
            BufferedImage image=ImageIO.read(is);
            BufferedImage image2=ImageIO.read(is2);
            Graphics g=image.getGraphics();
            g.drawImage(image2,x,y,null);
            os = new FileOutputStream(toPath);
            JPEGImageEncoder enc=JPEGCodec.createJPEGEncoder(os);
            enc.encode(image);
    	}catch(Exception e){
    		e.printStackTrace();
    	}finally{
    		if(os != null){
    			os.close();
    		}
    		if(is2 != null){
    			is2.close();
    		}
    		if(is != null){
    			is.close();
    		}
    	}
    }
    
    /** 
     * 将一组图片一次性附加合并到底图上
     * @param negativeImagePath		源图像(底图)路径
     * @param additionImageList	附加图像信息列表
     * @param imageFormat	图像写入格式
     * @param toPath	图像写入路径
     * @throws IOException
     */
    public void mergeImageList(String negativeImagePath,List additionImageList,String imageFormat, String toPath) throws IOException{
    	InputStream is= null;
    	InputStream is2= null;
    	OutputStream os = null;
    	try{
    		is=new FileInputStream(negativeImagePath);
    		BufferedImage image=ImageIO.read(is);
    		//Graphics g=image.getGraphics();
    		Graphics2D g = image.createGraphics();;
    		BufferedImage image2 = null;
    		if(additionImageList != null){
    			for(int i=0;i100,则调用Jmagick的方法。
    
    	/*List iamgePathList = new ArrayList();		// D:/test/16a/
    	iamgePathList.add("D:/test/16a/12384_2492.jpg");
    	iamgePathList.add("D:/test/16a/12384_2493.jpg");
    	iamgePathList.add("D:/test/16a/12384_2494.jpg");
    	iamgePathList.add("D:/test/16a/12384_2495.jpg");
    	iamgePathList.add("D:/test/16a/12384_2496.jpg");
    	iamgePathList.add("D:/test/16a/12384_2497.jpg");
    	iamgePathList.add("D:/test/16a/12384_2498.jpg");
    	iamgePathList.add("D:/test/16a/12384_2499.jpg");
    	iamgePathList.add("D:/test/16a/12384_2500.jpg");
    	iamgePathList.add("D:/test/16a/12384_2501.jpg");
    	iamgePathList.add("D:/test/16a/12384_2502.jpg");*/
    	//String imageFormat = "jpg";
    	//String toPath = "D:/test/desk/16a_v1.jpg";
    	//imageObj.joinImageListHorizontal(iamgePathList, imageFormat, toPath);
    
    	/*String imageFormat = "jpg";
    	String[] pics1 = {"D:/test/16a/12384_2502.jpg","D:/test/16a/12384_2501.jpg",
    			"D:/test/16a/12384_2500.jpg","D:/test/16a/12384_2499.jpg","D:/test/16a/12384_2498.jpg",
    			"D:/test/16a/12384_2497.jpg","D:/test/16a/12384_2496.jpg","D:/test/16a/12384_2495.jpg",
    			"D:/test/16a/12384_2494.jpg","D:/test/16a/12384_2493.jpg","D:/test/16a/12384_2492.jpg"};
    
    	String[] pics2 = {"D:/test/16a/12385_2502.jpg","D:/test/16a/12385_2501.jpg",
    			"D:/test/16a/12385_2500.jpg","D:/test/16a/12385_2499.jpg","D:/test/16a/12385_2498.jpg",
    			"D:/test/16a/12385_2497.jpg","D:/test/16a/12385_2496.jpg","D:/test/16a/12385_2495.jpg",
    			"D:/test/16a/12385_2494.jpg","D:/test/16a/12385_2493.jpg","D:/test/16a/12385_2492.jpg"};
    
    	String[] pics3 = {"D:/test/16a/12386_2502.jpg","D:/test/16a/12386_2501.jpg",
    			"D:/test/16a/12386_2500.jpg","D:/test/16a/12386_2499.jpg","D:/test/16a/12386_2498.jpg",
    			"D:/test/16a/12386_2497.jpg","D:/test/16a/12386_2496.jpg","D:/test/16a/12386_2495.jpg",
    			"D:/test/16a/12386_2494.jpg","D:/test/16a/12386_2493.jpg","D:/test/16a/12386_2492.jpg"};
    
    	String[] pics4 = {"D:/test/16a/12387_2502.jpg","D:/test/16a/12387_2501.jpg",
    			"D:/test/16a/12387_2500.jpg","D:/test/16a/12387_2499.jpg","D:/test/16a/12387_2498.jpg",
    			"D:/test/16a/12387_2497.jpg","D:/test/16a/12387_2496.jpg","D:/test/16a/12387_2495.jpg",
    			"D:/test/16a/12387_2494.jpg","D:/test/16a/12387_2493.jpg","D:/test/16a/12387_2492.jpg"};
    
    	String[] pics5 = {"D:/test/16a/12388_2502.jpg","D:/test/16a/12388_2501.jpg",
    			"D:/test/16a/12388_2500.jpg","D:/test/16a/12388_2499.jpg","D:/test/16a/12388_2498.jpg",
    			"D:/test/16a/12388_2497.jpg","D:/test/16a/12388_2496.jpg","D:/test/16a/12388_2495.jpg",
    			"D:/test/16a/12388_2494.jpg","D:/test/16a/12388_2493.jpg","D:/test/16a/12388_2492.jpg"};
    
    	String[] pics6 = {"D:/test/16a/12389_2502.jpg","D:/test/16a/12389_2501.jpg",
    			"D:/test/16a/12389_2500.jpg","D:/test/16a/12389_2499.jpg","D:/test/16a/12389_2498.jpg",
    			"D:/test/16a/12389_2497.jpg","D:/test/16a/12389_2496.jpg","D:/test/16a/12389_2495.jpg",
    			"D:/test/16a/12389_2494.jpg","D:/test/16a/12389_2493.jpg","D:/test/16a/12389_2492.jpg"};
    
    	String toPath1 = "D:/test/desk/16a_v1.jpg";
    	String toPath2 = "D:/test/desk/16a_v2.jpg";
    	String toPath3 = "D:/test/desk/16a_v3.jpg";
    	String toPath4 = "D:/test/desk/16a_v4.jpg";
    	String toPath5 = "D:/test/desk/16a_v5.jpg";
    	String toPath6 = "D:/test/desk/16a_v6.jpg";
    
    	String[] pics7 = {toPath1,toPath2,toPath3,toPath4,toPath5,toPath6};
    	String toPath7 = "D:/test/desk/16a_h1.jpg";
    
    	long start = System.currentTimeMillis();
    	imageObj.joinImageListVertical(pics1, imageFormat, toPath1);
    	imageObj.joinImageListVertical(pics2, imageFormat, toPath2);
    	imageObj.joinImageListVertical(pics3, imageFormat, toPath3);
    	imageObj.joinImageListVertical(pics4, imageFormat, toPath4);
    	imageObj.joinImageListVertical(pics5, imageFormat, toPath5);
    	imageObj.joinImageListVertical(pics6, imageFormat, toPath6);
    
    	imageObj.joinImageListHorizontal(pics7, imageFormat, toPath7);
    	long end = System.currentTimeMillis();
    	System.out.println(end-start);*/
    
    	String str = "北京\n上海\n广州\n深圳";
    	System.out.println(str);
    	String path = "c:/relevantdata.txt";
    	FileOutputStream fops = new FileOutputStream(path);
    	fops.write(str.getBytes());
    
    	BufferedReader inputStream = new BufferedReader(new FileReader(new File(path)));
    	String mrMsg = "";
    	while((mrMsg = inputStream.readLine())!=null){
    	System.out.println(mrMsg);
    	}
    	}
    	//数量		11			11x6
    	//纵向		375 
    	//横向		391		3250
}

以上为个人对java ImageIO处理图形的一些常用的方法进行的封装。全部测试通过,main方法中的均为测试代码,如果想用这个图像处理类,可以参考mian方法的例子。

另外代码中有些地方需要改进,效率也需要进一步提高。

希望给大家带来方便~

转载于:https://my.oschina.net/fangshaowei/blog/150539

你可能感兴趣的:(java,python,人工智能)