• ios 编程--使用代码创建新的相册随加项目


    2013-04-23 13:29:04|  分类: 默认分类 |举报|字号 订阅
    编写ios 编程--使用代码创建新的相册,是参考http://www.touch-code-magazine.com/ios5-saving-photos-in-custom-photo-album-category-for-download/来写的。
    
    ALAssetsLibrary+CustomPhotoAlbum.h 里的代码是:
    #import <Foundation/Foundation.h>
    #import <AssetsLibrary/AssetsLibrary.h>
    typedef void(^SaveImageCompletion)(NSError* error);
    @interface ALAssetsLibrary(CustomPhotoAlbum)
    -(void)saveImage:(UIImage*)image toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock;
    
    -(void)addAssetURL:(NSURL*)assetURL toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock;
    @end
    
    
    ALAssetsLibrary+CustomPhotoAlbum.m里的代码是:
    
    #import "ALAssetsLibrary+CustomPhotoAlbum.h"
    
    @implementation ALAssetsLibrary(CustomPhotoAlbum)
    
    -(void)saveImage:(UIImage*)image toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock
    
    {
        [self writeImageToSavedPhotosAlbum:image.CGImage orientation:(ALAssetOrientation)image.imageOrientation 
    
                            completionBlock:^(NSURL* assetURL, NSError* error) {
                              if (error!=nil) {
                                  completionBlock(error);
                                  return;
    
                              }
                              [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: [group valueForProperty:ALAssetsGroupPropertyName]]==NSOrderedSame) {
                                    albumWasFound = YES;
                                    [self assetForURL: assetURL 
                                          resultBlock:^(ALAsset *asset) {
                                              [group addAsset: asset];
                                              completionBlock(nil);
                                          } failureBlock: completionBlock];
                                    return;
                                }
                                if (group==nil && albumWasFound==NO) {
                                    __weak ALAssetsLibrary* weakSelf = self;
                                    [self addAssetsGroupAlbumWithName:albumName 
                                                          resultBlock:^(ALAssetsGroup *group) {
                                                              [weakSelf assetForURL: assetURL 
                                                                            resultBlock:^(ALAsset *asset) {
                                                                                [group addAsset: asset];
                                                                                completionBlock(nil);
                                                                            } failureBlock: completionBlock];
                                                          } failureBlock: completionBlock];
                                    return;
                                }
                            } failureBlock: completionBlock];
    }
    @end 接下来,在AppDelegate.m导入RootViewController。
    RootViewController.h 里的代码是:
    #import <UIKit/UIKit.h>
    #import <AssetsLibrary/AssetsLibrary.h>
    
    @interface RootViewController : UIViewController <UIImagePickerControllerDelegate>
    
    @property (strong, atomic) ALAssetsLibrary * library;
    
    @end
    
    在RootViewController.m里的代码是:
    #import "RootViewController.h"
    
    @interface RootViewController ()
    
    @end
    
    @implementation RootViewController
    
    @synthesize library;
    
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            // Custom initialization
        }
        return self;
    
    
    }
    
    
    
    -(void)dealloc
    {
        [library release];
        library = nil;
        [super dealloc];
    }
    
    
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
    
        // Do any additional setup after loading the view.
        
        library = [[ALAssetsLibrary alloc] init];
    
    
        
        
        UIButton * createGroup = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    
    
        createGroup.frame = CGRectMake( 20, 150, 100, 40);
        [createGroup setTitle:@"takePhoto" forState:UIControlStateNormal];
    
    
        [createGroup addTarget:self action:@selector(takePhotoClick) forControlEvents:UIControlEventTouchUpInside];
    
    
        [self.view addSubview:createGroup];
        
        
    }
    
    
    
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
    
    
        // Dispose of any resources that can be recreated.
    }
    
    
    
    - (void)takePhotoClick
    {
        UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
    
    
        imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
    
    
        imagePickerController.editing = YES;
        imagePickerController.delegate = (id)self;
        
        [self presentModalViewController:imagePickerController animated:YES];
    
    
    }
    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
    {
        [library saveImage:image toAlbum:@"Touch Code Magazine" withCompletionBlock:^(NSError *error) {
    
    
            if (error!=nil) {
                NSLog(@"Big error: %@", [error description]);
            }
        }];
        [picker dismissModalViewControllerAnimated:NO];
    
    
    }
    - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
    {
        [picker dismissModalViewControllerAnimated:NO];
    
    
    }
    @end
    
    
    
    接下来,导入AssetsLibrary.framework。就可以运行了。
  • 相关阅读:
    AdaBoost
    svm算法
    DBSCAN算法
    聚类算法分类
    EM算法
    ios开发中使用FMDB
    eclipse配置mahout
    【MyBatis】Mapper XML 文件
    MyBatis Generator的使用
    IntelliJ IDEA 创建 Maven简单项目
  • 原文地址:https://www.cnblogs.com/KingQiangzi/p/4036644.html
Copyright © 2020-2023  润新知