裁剪图像

 

public static void main(String[] args) throws Exception {
        String name = "d:/Auser/2.png";
        BufferedImage src = ImageIO.read(new File(name));
        //原图大小
        int sw = src.getWidth();
        int sh = src.getHeight();

        //新图大小
        int dw = 400;
        int dh = (int) (sh * (1.0 * dw / sw));
        dh = 400;
        BufferedImage dst = new BufferedImage(dw, dh, 1);
        //新图画笔
        Graphics2D g = dst.createGraphics();
        g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP);
        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_DEFAULT);
        //添加背景颜色
        // g.setColor(Color.BLUE);
        // g.fillRect(0, 0, dw, dh);
        //透明度
        // g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, .5f));
        // g.drawImage(src, 0, 0, dw, dh, null);
        //截图位置
        int x = 690;
        int y = 160;
        //在原图上操作,开始位置0,0从左上角开始,从哪,大小,到那
//        g.drawImage(src, 0, 0, dw, dh, 50, 50,dw,dh,null);
        g.drawImage(src, 0, 0, dw, dh, x, y, x + dw, dh + y, null);
        g.dispose();//处理器

        String n1 = name.substring(0, name.lastIndexOf("."));//从零开始节到最后一个点,不包含点
        String n2 = name.substring(name.lastIndexOf("."));//从最后一个点截出来
        String nn = n1 + "_ok" + n2;
        //写,取字符串得jpg +1去点
        ImageIO.write(dst, name.substring(name.lastIndexOf(".") + 1), new File(nn));

        Runtime run = Runtime.getRuntime();//获取运行时间
        run.exec("cmd /k start " + nn);

    }

 缩略图

    public static void main(String[] args) throws Exception {
        String name = "d:/Auser/2.png";
        BufferedImage src = ImageIO.read(new File(name));
        //原图大小
        int sw = src.getWidth();
        int sh = src.getHeight();
        //新图大小
        int dw = 400;
        int dh = (int) (sh * (1.0 * dw / sw));
        //也可以在这里指定大小
        //dh = 400;//省略自动算
        BufferedImage dst = new BufferedImage(dw, dh, 1);
        //新图画笔
        Graphics2D g = dst.createGraphics();
        g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP);
        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_DEFAULT);
        //添加背景颜色
        // g.setColor(Color.BLUE);
        // g.fillRect(0, 0, dw, dh);
        //透明度
        // g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, .5f));
         g.drawImage(src, 0, 0, dw, dh, null);

        String n1 = name.substring(0, name.lastIndexOf("."));//从零开始节到最后一个点,不包含点
        String n2 = name.substring(name.lastIndexOf("."));//从最后一个点截出来
                                        //名称添加尺寸
        String nn = n1 + String.format("_so(%d_%d)",dw,dh) + n2;
        //写,取字符串得jpg +1去点
        ImageIO.write(dst, name.substring(name.lastIndexOf(".") + 1), new File(nn));

        Runtime run = Runtime.getRuntime();//获取运行时间
        run.exec("cmd /k start " + nn);

    }

 

posted @ 2021-01-24 17:54  谷先生  阅读(146)  评论(0)    收藏  举报