`
jsntghf
  • 浏览: 2542989 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

图片圆角显示(二)

    博客分类:
  • iOS
阅读更多

以前写过一篇文章:图片圆角显示,现在将提供另一种将图片转成圆角的方法。

 

static void addRoundedRectToPath(CGContextRef context, CGRect rect, float ovalWidth, float ovalHeight)
{
    float fw, fh;
    if (ovalWidth == 0 || ovalHeight == 0) {
		CGContextAddRect(context, rect);
		return;
    }
    
    CGContextSaveGState(context);
    CGContextTranslateCTM(context, CGRectGetMinX(rect), CGRectGetMinY(rect));
    CGContextScaleCTM(context, ovalWidth, ovalHeight);
    fw = CGRectGetWidth(rect) / ovalWidth;
    fh = CGRectGetHeight(rect) / ovalHeight;
    
    CGContextMoveToPoint(context, fw, fh / 2);  // 右下角
    CGContextAddArcToPoint(context, fw, fh, fw / 2, fh, 2);  // 右上角
    CGContextAddArcToPoint(context, 0, fh, 0, fh / 2, 2); // 左上角
    CGContextAddArcToPoint(context, 0, 0, fw / 2, 0, 2); // 左下角
    CGContextAddArcToPoint(context, fw, 0, fw, fh / 2, 2); // 右下角
    
    CGContextClosePath(context);
    CGContextRestoreGState(context);
}

+ (id) createRoundedRectImage:(UIImage *)image size:(CGSize)size
{
    int w = size.width;
    int h = size.height;
    
    UIImage *img = image;
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst);
    CGRect rect = CGRectMake(0, 0, w, h);
    
    CGContextBeginPath(context);
    addRoundedRectToPath(context, rect, 10, 10);
    CGContextClosePath(context);
    CGContextClip(context);
    CGContextDrawImage(context, CGRectMake(0, 0, w, h), img.CGImage);
    CGImageRef imageMasked = CGBitmapContextCreateImage(context);
    CGContextRelease(context);
    CGColorSpaceRelease(colorSpace);
    return [UIImage imageWithCGImage:imageMasked];
}

 

示例图:


分享到:
评论

相关推荐

    Android设置图片圆角的方法

    Android中经常会遇到对图片进行二次处理,例如加圆角,或者显示圆形图片 实现的效果图: 方法一: ...//图片圆角为30 Glide.with(this).load(URL) //图片地址 .apply(options) .into(ImagView);

    ListView圆角显示

    本教程将详细介绍两种实现ListView圆角显示的方法。 方法一:自定义ListView的Item View 首先,我们可以通过自定义ListView的item布局来实现圆角效果。在XML布局文件中,可以使用`android:background`属性设置一个...

    lcd.c,彩屏显示,主要是圆角方形做按键显示也包含基础的字符及图片显示

    此.c文件是在正点原子4.3寸ATK触摸屏上显示的代码。主要有汉字,字母,数字及1位,2位小数的显示。另有圆,方形,带边框纯色圆角方形,带边框二色圆角方形,带边框三色圆角方形等。供参考

    Android中Glide加载圆形图片和圆角图片实例代码

    介绍两种使用 BitmapTransformation 来实现 Glide 加载圆形图片和圆角图片的方法。Glide 并不能直接支持 Round Pictures ,需要使用 BitmapTransformation 来进行处理。 二、网上的实现方式 这里介绍下网上常见的...

    Glide加载圆形图片和自定义圆角图片

    ### 二、自定义圆角图片 如果需要自定义圆角大小,我们可以创建一个自定义的`BitmapTransformation`类。以下是一个简单的实现,用于设置圆角半径: ```java public class RoundedCornersTransform extends ...

    Android显示圆角图

    在Android开发中,实现圆角图像的显示是一个常见的需求,特别是在设计用户界面时,为了提升应用的美观性和用户体验。本文将深入探讨如何在Android中创建和显示带有圆角的图像,以及与之相关的对话框和退出操作。 ...

    imagview 图片圆角例子

    二、代码动态设置圆角 1. 使用BitmapShader 在代码中,可以通过BitmapShader来改变Bitmap的渲染方式,实现圆角效果。首先创建一个圆形Bitmap,然后将它设置到ImageView的Bitmap上: ```java Bitmap bitmap = ...

    android图片圆角化处理

    ### Android 图片圆角化处理知识点详解 #### 一、背景与应用场景 在Android开发过程中,经常需要对图片进行各种效果处理,以满足界面设计的需求。其中,将图片转化为圆角图片是一种常见的需求,比如应用图标、用户...

    安卓头像制作图片圆角剪裁相关-Cropper裁剪和旋转图片的开源库.rar

    本资源“安卓头像制作图片圆角剪裁相关-Cropper裁剪和旋转图片的开源库.rar”提供了对Android应用中图片进行裁剪和旋转的功能,这在创建自定义头像或者其他需要用户选择或编辑图片的场景中非常有用。 首先,我们来...

    纯CSS圆角二级下拉列表菜单

    本文将详细讲解如何使用纯CSS技术创建一个具有圆角边框的二级下拉列表菜单,适用于网站主页的菜单设计。 首先,我们要明白CSS(层叠样式表)是用于描述HTML或XML(包括SVG、MathML等各种XML方言)文档样式的语言。...

    安卓头像制作图片圆角剪裁相关-登录圆形头像之网络加载与缓存到本地.rar

    在安卓开发中,头像制作和图片圆角剪裁是一项常见的需求,特别是在用户登录界面,圆形头像可以提升用户体验和应用的整体美观性。本压缩包文件"安卓头像制作图片圆角剪裁相关-登录圆形头像之网络加载与缓存到本地.rar...

    jquery蓝色圆角横向二级导航菜单代码

    二级菜单通常被嵌套在一级菜单项内,通过CSS隐藏,然后由jQuery控制显示和隐藏。 3. **CSS样式**:为了实现蓝色圆角效果,CSS(可能在外部样式表中)会使用`border-radius`属性来创建圆角,同时使用颜色、字体和...

    Android ImageView圆角图片 + 剪切

    通过以上方法,我们不仅可以实现`ImageView`的圆角显示,还可以提供用户友好的图片剪切功能,使应用具有更丰富的交互体验。在实际项目中,根据需求选择合适的方法,既考虑性能,也要注重用户体验。

    【转载】透明圆角化背景图片(二)

    这样,背景图片将只在内边距区域内显示,而不会延伸到边框部分,这在创建带有透明边框的圆角效果时非常有用。 三、PNG透明图片 PNG是一种支持透明的图像格式,可以用于创建具有透明背景的圆角图片。在HTML中,我们...

    css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局

     设置class=”abc”对象图片四个角圆角为5px  三、CSS圆角实现图片圆形实例  首先一张正方形图片,放入一个DIV盒子内,通过对盒子内图片设置border-radius:50%实现圆形效果。  本案例在DIVCSS5初始

    Android列表之圆角ListView选中(二)

    可以使用`android:background`属性设置自定义的九宫格图片,以支持圆角显示。 - 使用`android:radius`属性设置圆角半径,或者在代码中通过`CornerDrawable`类动态设置。 2. **自定义Adapter** - 创建自定义...

    创意的圆角图片手风琴代码.zip

    为了确保在不同屏幕尺寸下圆角图片的正确显示,开发者可能使用了百分比边框半径或者根据视口宽度(vw单位)来定义边框半径。这样做可以保证图片的圆角在任何分辨率下都能保持一致的比例,避免在小屏幕上出现不理想的...

    黑色二栏圆角博客模板下载_黑色 二栏 博客.zip

    这篇文档将深入解析“黑色二栏圆角博客模板下载_黑色 二栏 博客.zip”这个压缩包文件中的核心知识点,主要涉及博客设计、网页布局、颜色运用、CSS技术以及HTML结构。让我们一起探索这个模板的设计原理和实现方法。 ...

    一个可指定任意角为圆角的ImageView

    二是通过自定义View来绘制带有圆角的图片。这里我们将采用第二种方法,即自定义一个ImageView,因为这种方法更灵活,可以动态地设置圆角大小,甚至指定不同的角有不同的圆角半径。 在标题提到的“一个可指定任意角...

Global site tag (gtag.js) - Google Analytics