精华内容
下载资源
问答
  • android显示圆角矩形的图片其原理就是首先获取到图片的Bitmap,然后进行裁剪对应的圆角矩形的bitmap,然后在onDraw()进行绘制圆角矩形图片输出
  • 以上为SEO关键字 推荐使用网址1 网址1: http://www.pcccp.cn/yj/http://www.pcccp.cn/yj/ 网址1: http://roundpic.com/http://roundpic.com/

    以上为SEO关键字

    推荐使用网址1

    网址1:

    http://www.pcccp.cn/yj/icon-default.png?t=L892http://www.pcccp.cn/yj/

    网址1:

    http://roundpic.com/icon-default.png?t=L892http://roundpic.com/

    展开全文
  • canvas应用——圆角矩形图片

    千次阅读 2018-06-04 22:05:04
    前段时间写了一个canvas应用——将方形图片处理为圆形 ,最近就想把这个完善一下,所以就再补充一个圆角矩形的canvas处理方式。 例子 你可以直接点击此处查看 例子 ,先一睹为快。 参数 参数 默认值 ...

    前段时间写了一个canvas应用——将方形图片处理为圆形 ,最近就想把这个完善一下,所以就再补充一个canvas的圆角矩形处理方式。

    例子

    你可以直接点击此处查看 例子 ,先一睹为快。

    参数

    参数默认值描述
    imgnull图片(img)对象
    type0,number类型设置生成图片的大小:0设置生成的图片大小是以图片设置的css大小为准,1设置生成的图片大小是以图片分辨率为准
    radius0,number类型圆角矩形的圆角半径

    代码

    /**
     * 把图片处理成圆角矩形
     * @param  {object} img 图片(img)对象
     * @param  {number} type 设置生成图片的大小:0设置生成的图片大小是以图片设置的css大小为准,1设置生成的图片大小是以图片分辨率为准,默认值为0
     * @param  {number} radius 圆角矩形的半径,默认值为0
     * @return {string}     return base64 png图片字符串
     */
    function circleRect_image(option) {
        var img = option.img;
        var type = option.type || 0;
        var radius = option.radius || 0;
        var imgSize, canvas, ctx;
        if (type){
            imgSize = {
                width: img.naturalWidth,
                height: img.naturalHeight
            }
        }else{
            imgSize = {
                width: img.width,
                height: img.height
            }
        }
        canvas = document.createElement('canvas');
        if (!canvas.getContext) { // 判断浏览器是否支持canvas,如果不支持在此处做相应的提示
            console.log('您的浏览器版本过低,暂不支持。');
            return false;
        }
        canvas.width = imgSize.width;
        canvas.height = imgSize.height;
        ctx = canvas.getContext("2d");
        ctx.clearRect(0, 0, imgSize.width, imgSize.height);
        ctx.save();
        ctx.beginPath();
        roundedRect(ctx, 0, 0, imgSize.width, imgSize.height, radius);
        ctx.clip();  // 通过裁剪得到圆角矩形 
        if(type){
            ctx.drawImage(img, 0, 0, imgSize.width, imgSize.height, 0, 0, imgSize.width, imgSize.height);        
        }else{
            ctx.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, imgSize.width, imgSize.height);
        }
        ctx.restore();
    
        // 画圆角矩形
        function roundedRect(ctx, x, y, width, height, radius) {
            ctx.strokeStyle = "#fff";
            ctx.beginPath();
            ctx.moveTo(x, y + radius);
            ctx.lineTo(x, y + height - radius);
            ctx.quadraticCurveTo(x, y + height, x + radius, y + height);
            ctx.lineTo(x + width - radius, y + height);
            ctx.quadraticCurveTo(x + width, y + height, x + width, y + height - radius);
            ctx.lineTo(x + width, y + radius);
            ctx.quadraticCurveTo(x + width, y, x + width - radius, y);
            ctx.lineTo(x + radius, y);
            ctx.quadraticCurveTo(x, y, x, y + radius);
            ctx.stroke();
        }
        return canvas.toDataURL('image/png');
    }
    展开全文
  • Canvas 中文名称叫“画布”,它是游戏中所有UI组件的“容器”。一个场景中,可以允许多个Canvas对象的存在,还允许Canvas之间可以进行“嵌套”使用。需要注意的是,场景中的任何一个UI对象,都肯定是某个Canvas对象...
  • 在 Canvas 中我们常常遇到的一个需求 绘制一个圆形或者一个圆角矩形图像,常用于展示用户头像,我们知道 CSS 有border-radius属性,但是 Canvas 是没有的~???? 很尴尬,我们就来瞅瞅怎么整出一个圆形头像~ Part.1 ...

    前言

    在 Canvas 中我们常常遇到的一个需求 绘制一个圆形或者一个圆角矩形图像,常用于展示用户头像,我们知道 CSS 有 border-radius 属性,但是 Canvas 是没有的~😂 

    很尴尬,我们就来瞅瞅怎么整出一个圆形头像~

    Part.1  效果

    圆形头像

    圆角矩形

    Part.2  原理

    首先,制作圆形和圆角矩形并不是一个方法,但是都大同小异~

    圆形使用的是:arc()

    圆角使用的是:arcTo()

    圆形:利用 Canvas 先画出一个圆形,然后将图片定位到圆形中心位置进行剪切,将超出圆形的部分去掉,就会形成一个圆形

    圆角:利用 Canvas 先画出一个圆角矩形,然后将图片定位到圆角矩形位置进行剪切,将超出圆形的部分去掉,就会形成一个圆角矩形

    区别在于,圆角需要我们一段一段的自己画出来,而圆形有现成的方法只用设置想要的值即可

    Part.3  代码展示

    HTML

    复制代码

    1 <template>
    2     <view class="layout">
    3          <view class="layout-header">
    4              <canvas canvas-id="myCanvas" class="header-canvas"></canvas>
    5          </view>
    6     </view>
    7 </template>

    复制代码

    JS

    复制代码

     1 <script>
     2     export default {
     3         onLoad() {
     4             uni.showLoading({
     5                 title: '我正在努力...',
     6                 mask: true
     7             });
     8 
     9             // 开始制作头像
    10             this.createPlacard()
    11         },
    12         methods: {
    13             // 开始制作头像
    14             createPlacard() {
    15                 uni.getImageInfo({
    16                     src: 'https://pic.liesio.com/2020/07/02/e0eb38388da1c.jpg', // 网络图片需先下载,得到临时本地路径,否则绘入 Canvas 可能会出现空白
    17                     success: (img)=> {
    18                         const ctx = wx.createCanvasContext('myCanvas', this);
    19                         ctx.fillStyle = "#FFFFFF";
    20                         ctx.fillRect(0, 0, uni.upx2px(750), uni.upx2px(1000));
    21 
    22                         // 如何在 Canvas 中绘入圆形图片?
    23                         // 原理:利用 Canvas 先画出一个圆形,然后将图片定位到圆形中心位置进行剪切,将超出圆形的部分去掉,就会形成一个圆形
    24                         this.circleImgOne(ctx, img.path, uni.upx2px(175), uni.upx2px(95), uni.upx2px(200));
    25 
    26                         // 如何在 Canvas 中绘入圆角矩形?
    27                         // 原理:利用 Canvas 先画出一个圆角矩形,然后将图片定位到圆角矩形位置进行剪切,将超出圆形的部分去掉,就会形成一个圆角矩形
    28                         //this.circleImgTwo(ctx, img.path, uni.upx2px(105), uni.upx2px(95), uni.upx2px(512), uni.upx2px(382), uni.upx2px(20));
    29 
    30                         ctx.draw();
    31                         uni.hideLoading()
    32                     }
    33                 })
    34             },
    35 
    36             /*
    37             *  参数说明
    38             *  ctx Canvas实例
    39             *  img 图片地址
    40             *   x  x轴坐标
    41             *   y  y轴坐标
    42             *   r  圆形半径
    43             */
    44             circleImgOne(ctx, img, x, y, r) {
    45                 // 如果在绘制图片之后还有需要绘制别的元素,需启动 save() 、restore() 方法,否则 clip() 方法会导致之后元素都不可见
    46                 //    save():保存当前 Canvas 画布状态
    47                 // restore():恢复到保存时的状态
    48 
    49                 /* ctx.save(); */
    50                 let d = r * 2;
    51                 let cx = x + r;
    52                 let cy = y + r;
    53                 ctx.arc(cx, cy, r, 0, 2 * Math.PI);
    54                 ctx.strokeStyle = '#FFFFFF'; // 设置绘制圆形边框的颜色
    55                 ctx.stroke(); // 绘制出圆形,默认为黑色,可通过 ctx.strokeStyle = '#FFFFFF', 设置想要的颜色
    56                 ctx.clip();
    57                 ctx.drawImage(img, x, y, d, d);
    58                 /* ctx.restore(); */
    59             },
    60 
    61             /*
    62             *  参数说明
    63             *  ctx Canvas实例
    64             *  img 图片地址
    65             *   x  x轴坐标
    66             *   y  y轴坐标
    67             *   w  宽度
    68             *   h  高度
    69             *   r  弧度大小
    70             */
    71             circleImgTwo(ctx, img, x, y, w, h, r) {
    72                 // 画一个图形
    73                 if (w < 2 * r) r = w / 2;
    74                 if (h < 2 * r) r = h / 2;
    75                 ctx.beginPath();
    76                 ctx.moveTo(x + r, y);
    77                 ctx.arcTo(x + w, y, x + w, y + h, r);
    78                 ctx.arcTo(x + w, y + h, x, y + h, r);
    79                 ctx.arcTo(x, y + h, x, y, r);
    80                 ctx.arcTo(x, y, x + w, y, r);
    81                 ctx.closePath();
    82                 ctx.strokeStyle = '#FFFFFF'; // 设置绘制圆形边框的颜色
    83                 ctx.stroke();
    84                 ctx.clip();
    85                 ctx.drawImage(img, x, y, w, h);
    86             }
    87         }
    88     }
    89 </script>
    展开全文
  • unity 切圆角矩形

    2016-03-01 16:36:52
    unity 切圆角矩形,通过shader编码实现图片圆角
  • 主要代码: BufferedImage image = new BufferedImage(400, 120, BufferedImage.TYPE_4BYTE_ABGR); Graphics2D g2d = image.createGraphics(); g2d.setColor(Color.BLUE); ... //g2d.fillRoundRect(0, 0, 400, ...
  • 在Android中绘制圆角矩形图片

    千次阅读 2014-07-26 17:53:39
    圆角矩形图片在苹果的产品中很流行,相比于普通的矩形,很多人都喜欢圆角矩形的图片,下面在Android中实现将普通的矩形图片绘制成圆角矩形。  先来看一下普通矩形图片的显示,代码很简单,从resource中将图片...

    http://blog.chinaunix.net/uid-20771867-id-3260250.html

    圆角矩形图片在苹果的产品中很流行,相比于普通的矩形,很多人都喜欢圆角矩形的图片,下面在Android中实现将普通的矩形图片绘制成圆角矩形。


           先来看一下普通矩形图片的显示,代码很简单,从resource中将图片取出来直接拿来用:

    点击(此处)折叠或打开

    1. public class PhotoTestActivity extends Activity {
    2.     /** Called when the activity is first created. */
    3.     @Override
    4.     public void onCreate(Bundle savedInstanceState) {
    5.         super.onCreate(savedInstanceState);
    6.         setContentView(R.layout.main);
    7.         ImageView image = (ImageView)findViewById(R.id.image);
    8.         Bitmap photo = BitmapFactory.decodeResource(getResources(), R.drawable.test);
    9.         image.setImageBitmap(photo);
    10.     }
    11. }
             显示结果如下图:


            四个角是直角的图片是不是看起来不那么舒服呢?下面将直角转换为圆角:

    点击(此处)折叠或打开

    1. public class PhotoTestActivity extends Activity {
    2.     /** Called when the activity is first created. */
    3.     @Override
    4.     public void onCreate(Bundle savedInstanceState) {
    5.         super.onCreate(savedInstanceState);
    6.         setContentView(R.layout.main);
    7.         ImageView image = (ImageView)findViewById(R.id.image);
    8.         Bitmap photo = BitmapFactory.decodeResource(getResources(), R.drawable.test);
    9.         image.setImageBitmap(createFramedPhoto(500,400,photo,50));
    10.     }

    11.     /**
    12.      *
    13.      * @param x 图像的宽度
    14.      * @param y 图像的高度
    15.      * @param image 源图片
    16.      * @param outerRadiusRat 圆角的大小
    17.      * @return 圆角图片
    18.      */
    19.     Bitmap createFramedPhoto(int x, int y, Bitmap image, float outerRadiusRat) {
    20.         //根据源文件新建一个darwable对象
    21.         Drawable imageDrawable = new BitmapDrawable(image);

    22.         // 新建一个新的输出图片
    23.         Bitmap output = Bitmap.createBitmap(x, y, Bitmap.Config.ARGB_8888);
    24.         Canvas canvas = new Canvas(output);

    25.         // 新建一个矩形
    26.         RectF outerRect = new RectF(0, 0, x, y);

    27.         // 产生一个红色的圆角矩形
    28.         Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    29.         paint.setColor(Color.RED);
    30.         canvas.drawRoundRect(outerRect, outerRadiusRat, outerRadiusRat, paint);

    31.         // 将源图片绘制到这个圆角矩形上
    32.         paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
    33.         imageDrawable.setBounds(0, 0, x, y);
    34.         canvas.saveLayer(outerRect, paint, Canvas.ALL_SAVE_FLAG);
    35.         imageDrawable.draw(canvas);
    36.         canvas.restore();

    37.         return output;
    38.     }
    39. }

           方法的原理就是先创建出一个圆角矩形的图片,然后将我们原来的图片作为上面的一层覆盖在这个圆角矩形上,并且使用该圆角图片的形状。ok,看看结果吧,是不是看起来好多了?


    展开全文
  • Glide是一个功能强大的图片加载库,下面是平常开发中使用到的一些功能,基于Glide-4.X版本的用法 Glide-github地址 Glide jar包下载地址 加载圆形图片: RequestOptions mRequestOptions = RequestOptions....
  • 图片的圆形/圆角矩形的处理方式有很多,网上也有很多例子,最近项目比较清闲,就试着自己写了一个通用的图片处理,可以根据参数的不同自动生成原型图片或者圆角矩形图片的自定义view大致的效果如下图,两个view是同...
  • 圆角矩形图片

    2016-05-26 00:36:00
    从网络加载的图片是矩形的,而且大小不限,为了让图片显示为四个角显示为1/4圆这样的圆角矩形,有多种方法。 通过UI资源实现 可以让美术切一个九宫格四角遮盖,中间透明的图片,使用一个View覆盖在要加载显示的...
  • Glide加载显示圆形图片:public class GlideCircleTransfromUtil extends BitmapTransformation { public GlideCircleTransfromUtil(Context context) { super(context); } @Override protected Bitmap
  • android 使用canvas把矩形图片变成圆角矩形显示 参考网址:http://blog.csdn.net/rhljiayou/article/details/7212620
  • PS如何制作圆角矩形图片

    千次阅读 2014-11-20 10:00:01
     选择圆角矩形工具     在圆角矩形工具中选择路径选项     圆角矩形的半径,可以设置为20-30     在图片中拉出圆角     在右下角的图层面板中点击打开路径面板,右键选择...
  • 其实制作圆形图片没毕业这样复杂,用上述制作圆角矩形图片的功能就可以实现,这里更多的目的是研究Image Asset Studio的实现原理。而且用模板方法还有一个缺点:就是受限于模板文件的样式,如上述的圆形模板文件/...
  • 比如要显示圆角矩形的图片,这个时候,我们就需要自定义ImageView了,其原理就是首先获取到图片的Bitmap,然后进行裁剪对应的圆角矩形的bitmap,然后在onDraw()进行绘制圆角矩形图片输出。 效果图如下: ...
  • 主要介绍了Android开发基于Drawable实现圆角矩形的方法,结合实例形式分析了Drawable的功能、相关图形绘制函数与使用方法,需要的朋友可以参考下
  • 实现圆角图片一般会有两种方法,一种是使用Xfermode,一种是Shader
  • Android studio ,图片编辑后显示为圆角矩形图片或圆形图片
  • PS 如何制作 圆角矩形 图片

    千次阅读 2013-05-30 10:12:50
     选择圆角矩形工具     在圆角矩形工具中选择路径选项     圆角矩形的半径,可以设置为20-30     在图片中拉出圆角     在右下角的图层面板中点击打开路径面板,右键选择...
  • OpenCV-绘制圆角矩形

    万次阅读 多人点赞 2021-08-30 13:03:51
    结合OpenCV写了一个绘制圆角矩形的函数
  • RoundRectLayout:圆角矩形的绘制方案,解决任意圆角和圆形图片
  • 本文和大家一起做一个带箭头的圆角矩形菜单,大概长下面这个样子:  要求顶上的箭头要对准菜单锚点,菜单项按压反色,菜单背景色和按压色可配置。 最简单的做法就是让UX给个三角形的图片往上一贴,但是转念一想...
  • 为了实现该功能,首先我们要生成一个透明底色的空内容的canvas,然后获取到canvas的context对象,通过对象的arc()和lineTo()方法来画出一个圆角矩形,部分代码如下: ctx.beginPath(); ctx.arc(width-radius, ...
  • 在设置图片时,有时候如果直接设置为圆角图片会觉得更好看点,但是如果图片放在一个圆角RelativeLayout布局中 然后设置背景为圆角样式也可以 但是又增加一层,感觉不是太好,所以自定义Drawable就可以实现圆角和圆形...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,042
精华内容 7,216
关键字:

圆角矩形图片