加入收藏 | 设为首页 | 会员中心 | 我要投稿 通化站长网 (https://www.0435zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Java图片缩放剪切解决

发布时间:2021-11-24 12:34:26 所属栏目:教程 来源:互联网
导读:Java图片缩放剪切处理: package action; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.awt.image.CropImageFilter; import java.awt.image.FilteredImageSource; import

Java图片缩放剪切处理:
 
package action;     
    
import java.awt.Graphics;     
import java.awt.Image;     
import java.awt.Toolkit;     
import java.awt.image.BufferedImage;     
import java.awt.image.CropImageFilter;     
import java.awt.image.FilteredImageSource;     
import java.awt.image.ImageFilter;     
import java.io.File;     
import java.io.FileOutputStream;     
import java.io.IOException;     
    
import javax.imageio.ImageIO;     
    
import com.sun.image.codec.jpeg.JPEGCodec;     
import com.sun.image.codec.jpeg.JPEGImageEncoder;     
    
public class ImageProcess {     
    
    /**   
     * 对图片进行缩放   
     *    
     * @param srcImgFileName   
     * @throws IOException   
     */    
    public void zoomImage(String srcImgFileName) throws IOException {     
        // 读入文件      
        File _file = new File(srcImgFileName);     
        // 构造Image对象      
        BufferedImage src = javax.imageio.ImageIO.read(_file);     
        int width = src.getWidth();     
        int height = src.getHeight();     
    
        // 边长缩小为二分之一      
        BufferedImage tag = new BufferedImage(width / 2, height / 2, BufferedImage.TYPE_INT_RGB);     
        // 绘制缩小后的图      
        tag.getGraphics().drawImage(src, 0, 0, width / 2, height / 2, null);     
        FileOutputStream out = new FileOutputStream("D:test1targetIMG1-4.jpg");     
        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);     
        encoder.encode(tag);     
        out.close();     
    
        // 边长扩大为2倍      
        tag = new BufferedImage(width * 2, height * 2, BufferedImage.TYPE_INT_RGB);     
        tag.getGraphics().drawImage(src, 0, 0, width * 2, height * 2, null);     
        out = new FileOutputStream("D:test1targetIMGx2.jpg");     
        encoder = JPEGCodec.createJPEGEncoder(out);     
        encoder.encode(tag);     
        out.close();     
    
    }     
    
    /**   
     * 将图片分成九块   
     *    
     * @param srcImageFile   
     * @throws IOException   
     */    
    public void cut(String srcImageFile) throws IOException {     
        Image img;     
        ImageFilter cropFilter;     
        String dir = null;     
        // 读取源图像      
        BufferedImage src = ImageIO.read(new File(srcImageFile));     
        int destWidth = src.getWidth() / 3;     
        int destHeight = src.getHeight() / 3;     
        // 循环      
        for (int i = 0; i < 3; i++) {     
            for (int j = 0; j < 3; j++) {     
                // 四个参数分别为图像起点坐标和宽高      
                cropFilter = new CropImageFilter(j * destWidth, i * destHeight, destWidth, destHeight);     
                img = Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(src.getSource(), cropFilter));     
                BufferedImage tag = new BufferedImage(destWidth, destHeight, BufferedImage.TYPE_INT_RGB);     
                Graphics g = tag.getGraphics();     
                g.drawImage(img, 0, 0, null); // 绘制小图      
                g.dispose();     
                // 输出为文件      
                dir = "D:test1cut_image_" + i + "_" + j + ".jpg";     
                File f = new File(dir);     
                ImageIO.write(tag, "JPEG", f);     
            }     
        }     
    }     
    
    public static void main(String[] args) throws IOException {     
        String imgFileName = "D:testtest.png";     
        ImageProcess iZoom = new ImageProcess();     
    
        iZoom.zoomImage(imgFileName);     
        iZoom.cut(imgFileName);     
    }     
}    
 

(编辑:通化站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!