swift - 画图截取图片 - 保存相册
1.图片截取
func test(addView:UIView) -> UIImage?{
UIGraphicsBeginImageContextWithOptions(CGSize(width: JY_DEVICE_WIDTH, height: addView.height), false, UIScreen.main.scale) if let context = UIGraphicsGetCurrentContext() {
addView.layer.render(in: context)
let imamge = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return imamge
}
return nil
}
2.保存相册
方法1:直接保存, 但是没办法做提示操作或错误监听
if let img = image{
UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil)
} 方法2:可监听系统方法
if let img = self.test(addView: tempView){
UIImageWriteToSavedPhotosAlbum(img, self,#selector(image(image:didFinishSavingWithError:contextInfo:)), nil)
} //图片保存到本地
@objc func image(image:UIImage,didFinishSavingWithError error:NSError?,contextInfo:AnyObject) {
if error != nil
{
print("--\(image)---","++++\(String(describing: error))++++")
return
}else{
view.showSuccessInfo(info: "图片保存成功")
}
}
3. 保存的时候
(1)必须 重新创建一个临时tempView, 加到当前VC上,然后获取图片,保存到相册,
(2)如果直接用VC的原来的self.view或者SV啥的, 没效果,不知道是啥问题
(3)移除顺序, 先加到原来view上,在移除tempview let tempView = UIView()
tempView.bounds = CGRect(x: 0, y: 0, width: JY_DEVICE_WIDTH, height: scroller.contentSize.height)
view.addSubview(tempView)
configScroller(addView: tempView) if let img = self.test(addView: tempView){
UIImageWriteToSavedPhotosAlbum(img, self, #selector(image(image:didFinishSavingWithError:contextInfo:)), nil)
}else{
view.showTipsInfo(tips: "图片不存在")
}
//先添加到SV上在u移除, 不然子控件位置会 异常
configScroller(addView: scroller)
tempView.removeFromSuperview()
swift - 画图截取图片 - 保存相册的更多相关文章
- python从网络摄像头获取rstp视频流并截取图片保存
import cv2 def get_img_from_camera_net(folder_path): cap = cv2.VideoCapture("rtsp://admin:a ...
- Android--解决图片保存到相册显示1970年1月1日 8:00的问题
import android.content.Context; import android.content.Intent; import android.database.Cursor; impor ...
- Android调用相册截取图片遇到的问题
1.在Android中可以使用如下的方式来调用相册,选择图片进行裁剪使用,昨天在开发的时候遇到一个问题 private void cropBigImageUri(Uri uri, int output ...
- iOS9中将图片保存到照片中的某个相册的方法说明
iOS9中将图片保存到照片中的某个相册的方法说明 在App中很经常遇到的就是用户点击某张图片后将图片保存到本地,下面介绍下iOS中保存图片的一些东西 1.首先,在iOS中把图片保存到系统照片是比较简单 ...
- iOS-iOS调用相机调用相册【将图片保存到本地相册】
设置头部代理 <UINavigationControllerDelegate, UIImagePickerControllerDelegate> 1.调用相机 检测前置摄像头是否可用 - ...
- React Native之图片保存到本地相册(ios android)
React Native之图片保存到本地相册(ios android) 一,需求分析 1,react native保存网络图片到相册,iOS端可以用RN自带的CameraRoll完美解决,但是andr ...
- 小程序图片保存的相册授权失败问题,原接口wx.openSeting()已经废弃了的解决办法
项目中使用的是wepy框架开发的小程序,,, 使用场景是,用户点击下载图片的时候,要调起授权button(小程序拉起授权的功能都集成在了button组件,所以这里需要用到button组件里的一个ope ...
- android将应用中图片保存到系统相册并显示
我应用到的场景是程序中在视频通讯时截图,将截图保存到本地相册中 /*** @param bmp 获取的bitmap数据 * @param picName 自定义的图片名*/ public static ...
- [RN] React Native 图片保存到相册(支持 Android 和 ios)
React Native 图片保存到相册(支持 Android 和 ios) 原理: IOS用 RN自带的 CameraRoll, Android 使用 不成功,需要 react-native-fs ...
随机推荐
- 尚硅谷springboot学习1-简介
以前看过springboot的相关知识,当时偷懒没有做笔记,现在忘得已经差不多了,现在趁着过年有时间,再学习一遍,并做下笔记以备忘. 特性 Spring Boot来简化Spring应用开发,约定大于配 ...
- 观察者模式——Head First
一.定义 观察者模式(Observer Pattern)定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新. 二.类图 三.气象站 //Subject p ...
- springboot 整合task定时任务
一步:在启动类中加入 加入就会调用定时了. //开启定时任务 开启后就可以被扫描到 @EnableScheduling 二步:建一个tasks工具包 都会被扫描到的了 有三个类 Async ...
- Visual studio 2019 preview & C# 8 initial experience
Visual studio 2019 preview & C# 8 initial experience using System; using static System.Con ...
- 五, Authentication和Permissions
概述 在介绍Django REST Framework(二):Request和Response 时提到,DRF提供了对身份验证和权限的处理机制,特点如下: 1.对API的不同部分使用不同的认证策略: ...
- for嵌套
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- Oracle查看SQL执行计划的方式
Oracle查看SQL执行计划的方式 获取Oracle sql执行计划并查看执行计划,是掌握和判断数据库性能的基本技巧.下面案例介绍了多种查看sql执行计划的方式: 基本有以下几种方式: ...
- mySQL遇到的问题
学习mySQL遇到以下错误. 仔细检查才发现,是字段不一样. 所以插入数据,应该一一对应.
- Python 第一个程序_1
第一个Python程序(P108) 目标 第一个HelloPython 程序 Python2.x与3.x版本简介 执行Python程序的三种方式 解释器--python/python3 (终端中.使 ...
- java中几个happens-before规则
1. 程序顺序规则:一个线程中的每个操作,happens-before 该线程中的任意后续操作. 2.监视器锁规则:对一个锁的解锁, happens-before 于随后对这个锁的加锁操作 3.vol ...