zoukankan      html  css  js  c++  java
  • 截图图片成 圆形 图片

    /*//截图成圆形
    		File localFile = new File("c:/a.jpg");
    		BufferedImage sourceImg = ImageIO.read(localFile);
    		BufferedImage newImage = new BufferedImage(toWidth, (int)height, originalImage.getType());
            Graphics g = newImage.getGraphics();
            g.drawImage(sourceImg, 0, 0, toWidth, (int)height, null);
            g.dispose();
            ByteArrayOutputStream bs = new ByteArrayOutputStream();         
            ImageOutputStream imOut = ImageIO.createImageOutputStream(bs); 
            ImageIO.write(newImage, "png", imOut); 
            */
    		BufferedImage bi1 = ImageIO.read(new File("d:/1.jpg"));
            
            // 根据需要是否使用 BufferedImage.TYPE_INT_ARGB
            BufferedImage image = new BufferedImage(bi1.getWidth(), bi1.getHeight(),
                    BufferedImage.TYPE_INT_ARGB);
      
            Ellipse2D.Double shape = new Ellipse2D.Double(0, 0, 110, 98);
            int x = 0, y = 0,srcH=bi1.getHeight(),srcW=bi1.getWidth(),w=110,h=98,srcw,srch;  
            x = srcW / 2 - w / 2;   
            y = srcH / 2 - h / 2;   
            srcw = srcW / 2 + w / 2;   
            srch = srcH / 2 + h / 2; 
            Graphics2D g2 = image.createGraphics();
            image = g2.getDeviceConfiguration().createCompatibleImage(110, 98, Transparency.TRANSLUCENT);
            g2 = image.createGraphics();
            g2.setComposite(AlphaComposite.Clear);
            g2.fill(new Rectangle(110,98));
            g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC, 1.0f));
            g2.setClip(shape);
            // 使用 setRenderingHint 设置抗锯齿
            g2.drawImage(bi1, 0, 0,110,98,x,y,srcw,srch, null);
            g2.dispose();
             
            try {
                ImageIO.write(image, "PNG", new File("d:/2.png"));
            } catch (IOException e) {
                e.printStackTrace();
            }
    

      

    /*//截图成圆形File localFile = new File("c:/a.jpg");BufferedImage sourceImg = ImageIO.read(localFile);BufferedImage newImage = new BufferedImage(toWidth, (int)height, originalImage.getType());        Graphics g = newImage.getGraphics();        g.drawImage(sourceImg, 0, 0, toWidth, (int)height, null);        g.dispose();        ByteArrayOutputStream bs = new ByteArrayOutputStream();                 ImageOutputStream imOut = ImageIO.createImageOutputStream(bs);         ImageIO.write(newImage, "png", imOut);         */BufferedImage bi1 = ImageIO.read(new File("d:/1.jpg"));                // 根据需要是否使用 BufferedImage.TYPE_INT_ARGB        BufferedImage image = new BufferedImage(bi1.getWidth(), bi1.getHeight(),                BufferedImage.TYPE_INT_ARGB);          Ellipse2D.Double shape = new Ellipse2D.Double(0, 0, 110, 98);        int x = 0, y = 0,srcH=bi1.getHeight(),srcW=bi1.getWidth(),w=110,h=98,srcw,srch;          x = srcW / 2 - w / 2;           y = srcH / 2 - h / 2;           srcw = srcW / 2 + w / 2;           srch = srcH / 2 + h / 2;         Graphics2D g2 = image.createGraphics();        image = g2.getDeviceConfiguration().createCompatibleImage(110, 98, Transparency.TRANSLUCENT);        g2 = image.createGraphics();        g2.setComposite(AlphaComposite.Clear);        g2.fill(new Rectangle(110,98));        g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC, 1.0f));        g2.setClip(shape);        // 使用 setRenderingHint 设置抗锯齿        g2.drawImage(bi1, 0, 0,110,98,x,y,srcw,srch, null);        g2.dispose();                 try {            ImageIO.write(image, "PNG", new File("d:/2.png"));        } catch (IOException e) {            e.printStackTrace();        }

  • 相关阅读:
    无名信号量在多线程间的同步
    ftok函数例子
    strerror和perror函数详解
    lockf函数的使用
    背包问题-2动态规划【正解】
    递归思想即背包问题
    生产者消费者问题(基于线程和无名信号量)
    eclipse 安装python后pydev不出现
    Eclipse+pydev解决中文显示和注释问题的方法大全
    MyEclipse10配置PyDev进行Python开发
  • 原文地址:https://www.cnblogs.com/zhangchenglzhao/p/5168430.html
Copyright © 2011-2022 走看看