iOS 儲存圖片到相簿
//方法呼叫
NSMutableData *data = [NSMutableDatadataWithContentsOfFile:_SaveFilepath];
UIImage *myImage = [UIImageimageWithData:data];
STAlbumManager *stabumManager = [STAlbumManagersharedManager];
[stabumManager saveImage:myImage toAlbum:@"電子發票"completionHandler:^(UIImage *image, NSError *error){}];
//類實現
//
// STAlbumManager.h
// BSbracelet
//
// Created by Christopher on 17/4/28.
// Copyright © 2017年 ZTracy. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <AssetsLibrary/AssetsLibrary.h>
@classUIImage;
typedefvoid (^STAlbumSaveHandler)(UIImage *image, NSError *error);
/**
* @brief 將圖片寫入相簿,使用ALAssetLibrary
*
* @param image 需要寫入的圖片
* @param album 相簿名稱,如果相簿不存在,則新建相簿
* @param completionHandler 回撥
*/
externvoid STImageWriteToPhotosAlbum(UIImage *image, NSString *album, STAlbumSaveHandler completionHandler);
@interface STAlbumManager : NSObject
+ (instancetype)sharedManager;
/**
* @brief 將圖片寫入相簿,使用ALAssetLibrary
*
* @param image 需要寫入的圖片
* @param album 相簿名稱,如果相簿不存在,則新建相簿
* @param completionHandler 回撥
*/
- (void)saveImage:(UIImage *)image toAlbum:(NSString *)album completionHandler:(STAlbumSaveHandler)completionHandler;
@end
@interface ALAssetsLibrary (STAssetsLibrary)
- (void)writeImage:(UIImage *)image toAlbum:(NSString *)album completionHandler:(STAlbumSaveHandler)completionHandler;
@end
//
// STAlbumManager.m
// BSbracelet
//
// Created by Christopher on 17/4/28.
// Copyright © 2017年 ZTracy. All rights reserved.
//
#import "STAlbumManager.h"
#import <UIKit/UIKit.h>
void STImageWriteToPhotosAlbum(UIImage *image, NSString *album, STAlbumSaveHandler completionHandler) {
[[STAlbumManager sharedManager] saveImage:image toAlbum:album completionHandler:completionHandler];
}
@interface STAlbumManager ()
@property(nonatomic, strong) ALAssetsLibrary *assetsLibrary;
@end
@implementation STAlbumManager
static STAlbumManager *_sharedManager;
+ (instancetype)sharedManager {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{ _sharedManager = [[selfalloc] init]; });
return_sharedManager;
}
- (instancetype)init {
self = [superinit];
if (self) {
}
returnself;
}
- (ALAssetsLibrary *)assetsLibrary {
if (!_assetsLibrary) {
_assetsLibrary = [[ALAssetsLibraryalloc] init];
}
return_assetsLibrary;
}
- (void)saveImage:(UIImage *)image toAlbum:(NSString *)album completionHandler:(STAlbumSaveHandler)completionHandler {
[self.assetsLibrarywriteImage:image
toAlbum:album
completionHandler:^(UIImage *image, NSError *error) {
if (completionHandler) {
completionHandler(image, error);
}
/// 注意,這裡每次都置空是因為期間如果操作相簿了,下次儲存之前希望能取到最新狀態。
self.assetsLibrary = nil;
}];
}
@end
@implementation ALAssetsLibrary (STAssetsLibrary)
- (void)writeImage:(UIImage *)image toAlbum:(NSString *)album completionHandler:(STAlbumSaveHandler)completionHandler {
[self writeImageToSavedPhotosAlbum:image.CGImage
orientation:(ALAssetOrientation)image.imageOrientation
completionBlock:^(NSURL *assetURL, NSError *error) {
if (error) {
if (completionHandler) {
completionHandler(image, error);
}
} else {
[self addAssetURL:assetURL
toAlbum:album
completionHandler:^(NSError *error) {
if (completionHandler) {
completionHandler(image, error);
}
}];
}
}];
}
- (void)addAssetURL:(NSURL *)assetURL toAlbum:(NSString *)album completionHandler:(ALAssetsLibraryAccessFailureBlock)completionHandler {
void (^assetForURLBlock)(NSURL *, ALAssetsGroup *) = ^(NSURL *URL, ALAssetsGroup *group) {
[self assetForURL:assetURL
resultBlock:^(ALAsset *asset) {
[group addAsset:asset];
completionHandler(nil);
}
failureBlock:^(NSError *error) { completionHandler(error); }];
};
__block ALAssetsGroup *group;
[self enumerateGroupsWithTypes:ALAssetsGroupAlbum
usingBlock:^(ALAssetsGroup *_group, BOOL *stop) {
if ([album isEqualToString:[_group valueForProperty:ALAssetsGroupPropertyName]]) {
group = _group;
}
if (!_group) {
/// 迴圈結束
if (group) {
assetForURLBlock(assetURL, group);
} else {
[self addAssetsGroupAlbumWithName:album
resultBlock:^(ALAssetsGroup *group) { assetForURLBlock(assetURL, group); }
failureBlock:completionHandler];
}
}
}
failureBlock:completionHandler];
}
@end
相關推薦
iOS-儲存圖片到(自定義)相簿步驟
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "Yuanti SC"; color: #000000; background-color: #ffffff } 儲存到相簿步驟: 1.儲存圖片到【相機膠捲】 2.擁有一個【自定義相簿】 3.將剛
IOS 儲存圖片至相簿
應用中有時我們會有儲存圖片的需求,如利用UIImagePickerController用IOS裝置內建的相機拍照,或是有時我們在應用程式中利用UIKit的 UIGraphicsBeginImageContext,UIGraphicsEndImageContext,UIGr
iOS 儲存圖片到相簿, 儲存到指定的路徑
程式碼很簡單隻有一句話 不多說上程式碼: <span style="font-size:24px;">UIImage *newImage = UIGraphicsGetImageFrom
iOS 儲存圖片到相簿
//方法呼叫 NSMutableData *data = [NSMutableDatadataWithContentsOfFile:_SaveFilepath]; UIImage *myImage = [UIImageimageWithData:data]; STA
iOS儲存圖片到新建相簿(iOS Photos)
1.直接儲存圖片相簿中(不需要自己建立新的相簿) - (void)saveImage2Photo:(UIImage *)img { UIImageWriteToSavedPhoto
【學習ios之路:UI系列】獲取通過UIImagePackerController獲取的系統相簿圖片的名稱資訊及儲存系統相簿到本地
通過IUImagePickerController方法獲取系統的相簿,而想要得到從系統相簿得到的圖片的資訊需要以下幾步: 1:獲得從UIImagePicker選擇的照片的Assert; 2:得到Assert的ALAssertRepresentation; 3:ALAsser
儲存圖片/視訊到相簿 儲存完成後通知事件 IOS
// 官方提供的說明// - (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo;UIKIT_EXTERN voi
iOS中儲存圖片到相簿中的兩種方式
方式一: UIImageWriteToSavedPhotosAlbum(self.imageV.image, self, @selector(image:didFinishSavingWithEr
儲存圖片到相簿及圖片變黑問題
今天寫一下儲存圖片到手機相簿的功能! 整個儲存圖片的程式碼如下: public void saveImageToGallery(Context context, Bitmap bmp) { if (!Environment.getExternalStorageSt
微信公眾號 IOS多圖片上傳只儲存一張
wx.chooseImage({ count:imgCount, needResult: 1, sizeType:['original', 'compressed'], sourceType:['album', 'camera'], success:function(res){ ShowOKbt(false
IOS儲存多張圖片 多執行緒處理
儲存多張圖片的時候,既要控制不丟圖片,又要控制圖片可以多執行緒。提高儲存速度,防止程式崩潰,防止使用者等待時間過久 這裡我們可以使用Photos框架的PHPhotoLibrary類,這個可以幫助你多執行緒儲存圖片 -(void)saveBtn { [SSGOTools againRe
ionic2 儲存圖片到手機相簿
ionic2 儲存圖片到手機相簿需要2個原生外掛 一、原生外掛安裝 1、Android Permissions 通過以下命令下載 &nb
小程式儲存圖片到相簿功能實現
專案中有個儲存二維碼到相簿的功能,所以涉及到使用者是否授權相簿許可權的問題。廢話不多說,直接上乾貨... 功能邏輯: 先檢查使用者請求過的許可權中是否允許"儲存到相簿"許可權,如果沒有請求過這個許可權,應該向使用者發起授權請求(彈窗授權),如果請求過這個許可權,並且授權了,那就
iOS-對圖片操作---新增到自定義相簿
轉自:https://www.jianshu.com/p/7113c2c15e2c 圖片操作---新增到自定義相簿 實際上,自定義相簿中的圖片並不是實際的圖片,而是對系統【相機膠捲】這個相簿中的圖片進行一個引用,所以將圖片儲存到自定義相簿的第一步就是先儲存到系統的【相機膠捲
微信小程式儲存圖片到相簿功能實現
專案中有個儲存二維碼到相簿的功能,所以涉及到使用者是否授權相簿許可權的問題。廢話不多說,直接上乾貨… 功能邏輯: 先檢查使用者請求過的許可權中是否允許"儲存到相簿"許可權,如果沒有請求過這個許可權,應該向使用者發起授權請求(彈窗授權),如果請求過這個許可權,並且授權了,那就儲存圖片,
【小程式】儲存圖片到本地相簿
在小程式的開發中,會經常遇見把小程式內的圖片儲存到本地。 現在就為大家講解圖片儲存到本地的方法 常見的儲存圖片觸發事件型別: 長按圖片觸發函式儲存到本地,點選按鈕觸發函式儲存到本地 回撥函式程式碼如下: //獲取圖片資訊 wx.getImageInfo({ src: this.da
iOS 常用的儲存圖片的兩個方法
第一種、就是儲存到系統相簿中,這個也是最簡單的,當然使用者想要訪問系統相簿也是需要許可權的,需要使用者同意。 在Plist檔案加入下面的鍵值對就可以了 key : Privacy - Photo Library Usage Description val
微信小程式生成二維碼、生成圖片、儲存圖片到本地相簿
<!--畫布遮罩--> <!--生成二維碼的畫布--> <canvas canvas-id="myCanvas" style='width:{{ercode_canvasWidth}}px;height:{{ercode_canvasHeight
vue2.0 webApp儲存圖片到相簿
ios下a標籤不能直接下載圖片。為了相容android和ios找到了h5plus。裡面有個儲存到相簿的功能。 程式碼很簡單,如下: saveImage{ if(!window.plus) re
ionic2/3 圖片儲存到相簿---利用cordova-plugin-photo-library外掛
ionic中很多功能都是可以利用外掛完成的,而且簡捷方便,此次圖片儲存到相簿就是利用cordova-plugin-photo-library完成的。 官方文件 ionic: https://ionicframework.com/d