Tag: alassetslibrary

ALAssetsLibrary从自定义相册ios中获取图像

我正在使用ALAssetsLibrary将应用程序中的图片保存到海关相册中。 我能够保存图像,但无法从相册中获取图像 __weak ALAssetsLibrary *lib = self.library; [self.library addAssetsGroupAlbumWithName:@"MyAlbum" resultBlock:^(ALAssetsGroup *group) { ///checks if group previously created if(group == nil){ //enumerate albums [lib enumerateGroupsWithTypes:ALAssetsGroupAlbum usingBlock:^(ALAssetsGroup *g, BOOL *stop) { //if the album is equal to our album if ([[g valueForProperty:ALAssetsGroupPropertyName] isEqualToString:@"My Photo Album"]) { //save image [lib writeImageDataToSavedPhotosAlbum:UIImagePNGRepresentation(image) metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) { //then […]

强制asynchronous任务按顺序运行

我使用ALAssetsLibrary将图像保存到照片库。 当它进入循环时,它会同时运行并导致内存问题。 我怎样才能运行这不会导致内存问题 ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; for(UIImage *image in images){ [library writeImageToSavedPhotosAlbum:[image CGImage] orientation:(ALAssetOrientation)[image imageOrientation] completionBlock:^(NSURL *assetURL, NSError *error) { … // }]; }

ALAssetsLibrary addAssetsGroupAlbumWithName在iOS 9上不起作用

我需要在ALAssetsLibrary中添加名为“MyGroupName”的组。 所以我使用了下面的代码。 ALAssetsLibrary * library = [[ALAssetsLibrary alloc] init]; __weak ALAssetsLibrary *lib = library; [library addAssetsGroupAlbumWithName:@"MyGroupName" resultBlock:^(ALAssetsGroup *group) { [lib enumerateGroupsWithTypes:ALAssetsGroupAlbum usingBlock:^(ALAssetsGroup *g, BOOL *stop) { if ([[g valueForProperty:ALAssetsGroupPropertyName] isEqualToString:@"MyGroupName"]) { NSLog(@"group created with name 'MyGroupName'"); } }failureBlock:^(NSError *error){ NSLog(@"failure %@",error); } ]; } failureBlock:^(NSError *error) { NSLog(@"failure %@",error); }]; 但在“enumerateGroupsWithTypes”中,组“g”在iOS 9.3.1(iphone 6)中始终为零。 它的工作正常,并在iOS 9.3.1 […]

ALAssetsLibrary为零,无法将video保存到相册

我无法使用ALAssetsLibrary从URL中将video写入保存的照片相册。 我不知道如何正确地初始化库。 苹果对ALAssetsLibrary的引用并没有真正解释如何去做。 我得到了通常的解包零值错误。 任何人都可以在这里指出正确的方向吗? 我会很乐意采取任何提示,以及如何使事情更有效率,或指导和教程,可以教我如何。 这是我的代码,告诉相机拍照或开始录制。 到目前为止,我只专注于录音,因为这将是我的应用程序的主要特点。 /************************************************************************** DID PRESS CAPTURE **************************************************************************/ @IBAction func didPressCapture(sender: AnyObject) { if self.takingVideo == true { //—— MAKE SURE WE ARE NOT ALREADY RECORDING —— if self.weAreRecording == false { println("Taking a video") //—— MAKE SURE THE DEVICE IS AUTHORIZED TO TAKE A VIDEO —— if self.deviceAuthorized == […]

如何在所有相册中按照date顺序从我的图书馆中获取我的alassets?

我一直在环顾四周,只能find答案拉出资产分组。 我想要做的是从我的iPhone / iPad的所有图像/照片数据没有按相册(即相机胶卷,自定义文件夹等),但按date分组。 我没有在这里看到任何例子,或在苹果公司的文档如何只是说“给我所有的资产,但使用这个谓词sorting”我看到的一切都使用枚举器返回结果的团体。 将组设置为“ALL”只是按组顺序返回资产,然后按照我的要求对其进行sorting。 这是不可能的? 我遇到了另外一个问题,但是我想我可以解决,如果我能保证资产按datesorting。

video文件缩略图时间戳在ALAsset中丢失

嗨,我收到来自ALAsset库的所有照片和video缩略图。 我的代码工作正常我得到照片和video缩略图。但在video缩略图中缺lessvideo图标和它的时间戳。 [assetImageView setImage:[UIImage imageWithCGImage:[self.asset thumbnail]]]; 我越来越像以上..我使用ELCImagePickerDemp API 我需要得到这样的我缺less时间和图标在右下angular的缩略图。 任何帮助将不胜感激… THX

如何从相机胶卷获取照片?

我试图使用ALAssetLibrary来获取专辑和照片。 这是我的代码: void(^ assetEnumerator)(struct ALAsset *,NSUInteger,BOOL *)= ^(ALAsset * result,NSUInteger index,BOOL * stop){ if(result!= NULL){ NSLog(@“See Asset:%@”,result); } }; void(^ assetGroupEnumerator)(struct ALAssetsGroup *,BOOL *)= ^(ALAssetsGroup * group,BOOL * stop){ if(group!= nil){ [group enumerateAssetsUsingBlock:assetEnumerator]; } }; ALAssetsLibrary * library = [[ALAssetsLibrary alloc] init]; [库enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:assetGroupEnumerator failureBlock:^(NSError * error){ 的NSLog(@ “失败”); }]; 我得到exc_bad_access:[组enumarateAssetsUsingBlock:assetEnumerator]和组不是零。 奇怪的是,这个代码工作,如果我创build一个新的项目,但在我的旧项目,它不工作。 SDK版本是iOS 4.3 在iPhoneSimulator […]

检查图像是否已经在图库中并检索它

我需要知道一个图像是否已经在iOS画廊。 我正在开发一个消息客户端应用程序,在我的聊天列表中,当我点击图像缩略图时,我可以下载传入消息的图像/video。 问题是,当我点击缩略图时,我下载并将该图像保存到iOS照片库,但是如果再次点击,我不想再次下载并保存,我想从照片库中检索它。 恢复,我想在照片库中find图像并检索它。 这里是我的代码,使用ALAssetsLibrary将图像保存在自定义相册中: [self writeImageToSavedPhotosAlbum:image.CGImage orientation:(ALAssetOrientation)image.imageOrientation completionBlock: ^(NSURL* assetURL, NSError* error) { if (error!=nil) { completionBlock(error); return; } //add the asset to the custom photo album [self addAssetURL: assetURL toAlbum:albumName withCompletionBlock:completionBlock]; } ]; -(void)addAssetURL:(NSURL*)assetURL toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock { __block BOOL albumWasFound = NO; [self enumerateGroupsWithTypes:ALAssetsGroupAlbum usingBlock: ^(ALAssetsGroup *group, BOOL *stop) { if ([albumName compare: […]

使用AirDrop分享资产库中的video失败

使用AirDrop,我想分享资产库中的video。 关于AirDrop,文件说: 使用此服务时,可以为活动项目提供NSString,NSAttributedString,UIImage,ALAsset和NSURL对象作为数据。 你也可以指定其内容使用资产库scheme的NSURL对象。 您也可以提供包含列出的数据types的NSArray或NSDictionary对象。 我所看到的是,如果活动项目的数据是资产库scheme的NSURL,则传输将失败,并显示以下错误: 发件人kSFOperationEventErrorOccured {错误=“错误域= SFOperation代码= -6 \”传输失败,因为您没有权限读取\ U201cIMG_0119.MP4 \ U201d。\“UserInfo = 0x155f5db0 {NSLocalizedDescription =传输失败,因为你不\ U2019t有权读取\ U201cIMG_0119.MP4 \ U201d。}“; FileIcon =“”; Files =(); SessionID = 9165CCC70A39; } 通过AirDrop成功共享资源库中的video的唯一方法是将文件复制到临时位置,然后将活动项目的数据设置为新的NSURL。 基本上是这样的: – (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType { ALAssetRepresentation* assetRepresentation = [self.asset defaultRepresentation]; NSString* outputDirectory = [NSString stringWithFormat:@"%@", NSTemporaryDirectory()]; NSString* path = [outputDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", […]

SWIFT ALAssetsLibrary不枚举组

我试图收集所有用户的图像缩略图到一个数组,但是当我调用ALAssetsLibrary的enumerateAssetsUsingBlock方法似乎没有发生。 import UIKit import AssetsLibrary class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { @IBOutlet var photoLibView: UICollectionView var assetLibrary : ALAssetsLibrary = ALAssetsLibrary() func showCustomLibrary() { self.assetLibrary = ALAssetsLibrary() var assetsArray : [ALAsset] = [] var imageArray : [CGImage] = [] var count = 0 var countOne = 0 let assetsType : ALAssetsGroupType = Int(ALAssetsGroupAll) var groupBlock […]