美文网首页
图片处理

图片处理

作者: 小凡凡520 | 来源:发表于2019-02-18 22:03 被阅读0次

1、旋转
2、裁剪
3、截取
4、平铺

自由拉伸
func imageWithResizedImage(name:String,width:CGFloat,height:CGFloat) ->UIImage? {
    let image = UIImage(named: name)
    return image?.stretchableImage(withLeftCapWidth: Int(width), topCapHeight: Int(height))
}
等比例缩放
func imageWithOriginImage(image:UIImage,defineWidth:CGFloat)->UIImage? {
    let imageSize = image.size
    let width = imageSize.width
    let height = imageSize.height
    let targetWidth = defineWidth
    let targetHeight = height / (width / targetWidth)
    
    let size = CGSize(width: targetWidth, height: targetHeight)
    
    UIGraphicsBeginImageContext(size)//size 为CGSize类型,即你所需要的图片尺寸
    
    image.draw(in: CGRect(x: 0, y: 0, width: size.width, height: size.height))
    
    let scaledImage = UIGraphicsGetImageFromCurrentImageContext()
    
    UIGraphicsEndImageContext()
    
    return scaledImage
}
根据颜色生成图片
func imageWithColor(color:UIColor,size:CGSize) ->UIImage? {
    let rect = CGRect(x: 0, y: 0, width: size.width, height: size.height)
    //开启位图上下文
    UIGraphicsBeginImageContext(rect.size)
    //获取上下文
    let context = UIGraphicsGetCurrentContext()
    context?.setFillColor(color.cgColor)
    context?.fill(rect)
    let image = UIGraphicsGetImageFromCurrentImageContext()
    
    //关闭上下文
    UIGraphicsEndImageContext()
    
    return image
}
截取某个view视图
func imageWithCaptureView(captureView:UIView) ->UIImage? {
    //开启位图上下文
    UIGraphicsBeginImageContextWithOptions(captureView.bounds.size, false, 0)
    //获取上下文
    if let ctx = UIGraphicsGetCurrentContext() {
        //把控件上的图层渲染到上下文
        captureView.layer.render(in: ctx)
        
        let screenImage = UIGraphicsGetImageFromCurrentImageContext()
        
        //关闭上下文
        UIGraphicsEndImageContext()
        
        return screenImage
    }
    return nil
}
文字水印
func imageWithWaterMarkImage(imageName:String,str:String,point:CGPoint,dict:NSDictionary) ->UIImage? {
    if let image = UIImage(named: imageName) {
        UIGraphicsBeginImageContextWithOptions(image.size, false, 0)
        
        //把图片画上去
        image.draw(at: CGPoint.zero)
        
        //绘制文字到图片
        (str as! NSString).draw(at: point, withAttributes: dict as! [NSAttributedStringKey : Any])
        
        // 从上下文获取图片
        let imageWater = UIGraphicsGetImageFromCurrentImageContext()
        
        //关闭上下文
        UIGraphicsEndImageContext()
        
        return imageWater
    }
    return nil
}
图片水印
func imageWithWaterMarkImage(image:UIImage,waterImage:UIImage,rect:CGRect) ->UIImage? {
    //1.开启上下文
    UIGraphicsBeginImageContextWithOptions(image.size, false, 0)
    //2.绘制背景图片
    image.draw(in: CGRect(x: 0, y: 0, width: image.size.width, height: image.size.height))
    //绘制水印图片到当前上下文
    waterImage.draw(in: rect)
    //3.从上下文中获取新图片
    let newImage = UIGraphicsGetImageFromCurrentImageContext()
    //4.关闭图形上下文
    UIGraphicsEndImageContext()
    //返回图片
    return newImage
}
图片切圆
func imageWithClipImage(image:UIImage,borderWidth:CGFloat,color:UIColor) ->UIImage? {
    // 图片的宽度和高度
    let imageWH = image.size.width
    
    // 设置圆环的宽度
    let border = borderWidth
    
    // 圆形的宽度和高度
    let ovalWH = imageWH + 2 * border
    
    // 1.开启上下文
    UIGraphicsBeginImageContextWithOptions(CGSize(width: ovalWH, height: ovalWH), false, 0)
    
    // 2.画大圆
    let path = UIBezierPath(ovalIn: CGRect(x: 0, y: 0, width: ovalWH, height: ovalWH))
    color.set()
    
    path.fill()
    
    // 3.设置裁剪区域
    let clipPath = UIBezierPath(ovalIn: CGRect(x: border, y: border, width: imageWH, height: imageWH))
    clipPath.addClip()
    
    // 4.绘制图片
    image.draw(at: CGPoint(x: border, y: border))
    
    // 5.获取图片
    let clipImage = UIGraphicsGetImageFromCurrentImageContext()
    
    // 6.关闭上下文
    UIGraphicsEndImageContext()
    return clipImage
}

相关文章

  • Plupload 七牛图片上传(二)

    图片基本处理 七牛提供了一些图片处理方式,比如: **图片基本处理 ** √ **图片瘦身 ** 图片高级处理 图...

  • PPT培训第二天

    一、总结 二、图片处理 1,图片边框 2,图片映像 3,图片柔光等图片处理 4,图片格式刷:其他图片同样处理 三、...

  • iOS 图片上传处理 图片压缩 图片处理

    提到从摄像头/相册获取图片是面向终端用户的,由用户去浏览并选择图片为程序使用。在这里,我们需要过UIImagePi...

  • IOS 图片上传处理 图片压缩 图片处理

    提到从摄像头/相册获取图片是面向终端用户的,由用户去浏览并选择图片为程序使用。在这里,我们需要过UIImagePi...

  • 图片处理

    头像图片处理,没有图片时将姓名的首字母显示到图片上 /*NSString *name = @"name";// ...

  • 图片处理

    图片缩放 图片转码

  • 图片处理

    图片流 前端所说的图片流就是读取本地图片,并在页面使用文件流的方式显示出来。 首先,我们简单说下文件上传的几种方式...

  • 图片处理

    1、旋转2、裁剪3、截取4、平铺 自由拉伸 等比例缩放 根据颜色生成图片 截取某个view视图 文字水印 图片水印...

  • 图片处理

    iOS中图片的加载、圆角、阴影实现方式多种多样,我们需着重考虑性能问题 视图阴影 圆角图片 注意:这种方法能够避免...

  • 图片处理

    图片处理:当拿到一个字符串的时候,不知道是url还是本地路径的时候,怎么正确的拿到字符串代表的图片urlStr:为...

网友评论

      本文标题:图片处理

      本文链接:https://www.haomeiwen.com/subject/oreguftx.html