swift 将图片保存到本地_swift - 简单的图片滤镜+保存view转成图片存入本地相册...

import UIKit

import ZLLTools

import PhotoFramework

import Photos

import AssetsLibrary

class ViewController: UIViewController {

var imageView :UIImageView!

override func viewDidLoad() {

super.viewDidLoad()

GetPhoto.get()

imageView = UIImageView.init(frame: CGRect.init(x: 50, y: 50, width: 300, height: 200))

self.view.addSubview(imageView)

imageView.isUserInteractionEnabled = true

let tap = UITapGestureRecognizer.init(target: self, action: #selector(self.testClick))

imageView.addGestureRecognizer(tap)

imageView.image = ZLLToolCategory.getVideoFirstViewImage(videoUrlString: "http://gslb.miaopai.com/stream/1UKfVpOmazRYEb4fVejwhgpX~3uIxmHBV~8VCQ__.mp4")//获取视频第一帧

let btn = UIButton.init(frame: CGRect.init(x:(375) / 2 , y: 200 + 20 + 50, width: 60, height: 40))

btn.setTitle("滤镜", for: .normal)

btn.backgroundColor = UIColor.red

btn.addTarget(self, action: #selector(滤镜), for: .touchUpInside)

self.view.addSubview(btn)

let picBtn = UIButton.init(frame: CGRect.init(x:(375) / 2 , y: 200 + 20 + 60 + 50, width: 100, height: 40))

picBtn.setTitle("保存图片", for: .normal)

picBtn.backgroundColor = UIColor.blue

picBtn.addTarget(self, action: #selector(saveBtnClick), for: .touchUpInside)

self.view.addSubview(picBtn)

}

@objc func testClick() {

//选择图片

_ = presentImagePicker(maxSelected: 4, completeHandler: {[weak self] (assets) in

for asset in assets {

print(asset)

//设置图片尺寸

let size = CGSize.init(width: asset.pixelWidth, height: asset.pixelHeight)

//获取图片

PHImageManager.default().requestImage(for: asset, targetSize: size, contentMode: .default, options: nil, resultHandler: { (image, info) in

self?.imageView.image = image

})

}

})

}

@objc func 滤镜(){

let inputImage = CIImage.init(image: imageView.image!)

// let filter = CIFilter.init(name: "CIAffineTransform")//倾斜

// let filter = CIFilter.init(name: "CISepiaTone")//棕褐色

// let filter = CIFilter.init(name: "CIPhotoEffectNoir")//黑白

let filter = CIFilter.init(name: "CIPhotoEffectNoir")

filter?.setValue(inputImage, forKey: kCIInputImageKey)

// filter?.setValue(NSValue.init(cgAffineTransform: CGAffineTransform.init(a: 0.7, b: 0.5, c: 0.3, d: 1.0, tx: 0.0, ty: 0.0)), forKey: "inputTransform")//倾斜

// filter?.setValue(0.5, forKey: "inputIntensity")//棕褐色

// filter?.setValue(0.5, forKey: "inputIntensity")

let outputImage = filter?.outputImage

let cgImage = CIContext.init(options: nil).createCGImage(outputImage!, from: (outputImage?.extent)!)

imageView.image = UIImage.init(cgImage: cgImage!)

}

//将view转成图片并保存相册

@objc func saveBtnClick(){

let frame = imageView.frame

UIGraphicsBeginImageContext(frame.size)

imageView.layer.render(in: UIGraphicsGetCurrentContext()!)

let image = UIGraphicsGetImageFromCurrentImageContext()

UIGraphicsEndImageContext()

self.loadImage(image: image!)

}

//保存图片

func loadImage(image:UIImage){

UIImageWriteToSavedPhotosAlbum(image, self, #selector(self.image(image:didFinishSavingWithError:contextInfo:)), nil)

}

@objc func image(image: UIImage, didFinishSavingWithError: NSError?,contextInfo: AnyObject)

{

if didFinishSavingWithError != nil

{

print("error!")

return

}

print("保存成功")

}

override func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

// Dispose of any resources that can be recreated.

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值