zoukankan      html  css  js  c++  java
  • Java 图片设置圆角(设置边框,旁白)

    /**
         * 图片设置圆角
         * @param srcImage
         * @param radius
         * @param border
         * @param padding
         * @return
         * @throws IOException
         */
        public static BufferedImage setRadius(BufferedImage srcImage, int radius, int border, int padding) throws IOException{
            int width = srcImage.getWidth();
            int height = srcImage.getHeight();
            int canvasWidth = width + padding * 2;
            int canvasHeight = height + padding * 2;
            
            BufferedImage image = new BufferedImage(canvasWidth, canvasHeight, BufferedImage.TYPE_INT_ARGB);
            Graphics2D gs = image.createGraphics();
            gs.setComposite(AlphaComposite.Src);
            gs.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            gs.setColor(Color.WHITE);
            gs.fill(new RoundRectangle2D.Float(0, 0, canvasWidth, canvasHeight, radius, radius));
            gs.setComposite(AlphaComposite.SrcAtop);
            gs.drawImage(setClip(srcImage, radius), padding, padding, null);
            if(border !=0){
                gs.setColor(Color.GRAY);
                gs.setStroke(new BasicStroke(border));
                gs.drawRoundRect(padding, padding, canvasWidth - 2 * padding, canvasHeight - 2 * padding, radius, radius);    
            }
            gs.dispose();
            return image;
        }
        
        /**
         * 图片设置圆角
         * @param srcImage
         * @return
         * @throws IOException
         */
        public static BufferedImage setRadius(BufferedImage srcImage) throws IOException{
            int radius = (srcImage.getWidth() + srcImage.getHeight()) / 6;
            return setRadius(srcImage, radius, 2, 5);
        }
        
        /**
         * 图片切圆角
         * @param srcImage
         * @param radius
         * @return
         */
        public static BufferedImage setClip(BufferedImage srcImage, int radius){
            int width = srcImage.getWidth();
            int height = srcImage.getHeight();
            BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
            Graphics2D gs = image.createGraphics();
    
            gs.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            gs.setClip(new RoundRectangle2D.Double(0, 0, width, height, radius, radius));
            gs.drawImage(srcImage, 0, 0, null);
            gs.dispose();
            return image;
        }
  • 相关阅读:
    正则表达式中?=和?:和?!的理解
    Python isinstance() 函数
    什么是REST架构
    [iOS常见问题] 关于使用QQ做第三方登录的问题!
    js与webview 常用交互代码
    AFNetworking 使用 核心代码
    NSString / NSData / char* 类型之间的转换
    集合视图 代码
    IOS面试问题总结
    UIViewController的生命周期及iOS程序执行顺序
  • 原文地址:https://www.cnblogs.com/rubekid/p/4047259.html
Copyright © 2011-2022 走看看