Qt跨平台--IOS保存图片到相册
使用OC原生代码的配置
因为要访问手机上的相册,故使用OC原生代码,OC原生代码需要Xcode能编译链接,故需要更改pro相关配置
链接源文件
关键字:OBJECTIVE_SOURCES
添加源文件不是使用常规的
SOURCES+= XXX.mm
而是使用
OBJECTIVE_SOURCES += XXX.mm
链接OC库
关键字:QMAKE_LFLAGS
链接OC库时,使用
QMAKE_LFLAGS += -framework Foundation -framework UIKit -framework Photos
头文件的引入
#import <UIKit/UIApplication.h>
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <Photos/Photos.h>
OC代码
bool saveImage(const QString &iPath)
{
NSString *tmpStr = iPath.toNSString();
UIImage* uiimg4Album = [UIImage imageWithContentsOfFile:tmpStr];
if (uiimg4Album){
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
//写入图片到相册
[PHAssetChangeRequest creationRequestForAssetFromImage:uiimg4Album];
} completionHandler:^(BOOL success, NSError * _Nullable error) {
NSLog(@"success = %d, error = %@", success, error);
}];
sleep(1);//经测试,去掉该段代码之后,会崩溃,原因未知
return YES;
}
else
return NO;
}
Xcode info.plist配置
需要在info.plist中增加配置,询问用户是否能访问相册.具体如下:
Privacy - Photo Library Additions Usage Description
Privacy - Photo Library Usage Description