아이폰 OS는 앨범 이미지 (비디오) 저장

(1) C 언어의 함수 방식

참고 : UIImageWriteToSavedPhotosAlbum 방법은, 그렇지 않으면 붕괴 것, 프록시 메소드를 구현해야합니다.

// 매개 변수 1 : 그림 개체
 // 매개 변수 2 : 대상 바인딩의 성공적인 방법
 // 성공적으로 메소드 호출 한 후 : 매개 변수 3
 // 매개 변수 4 : 정보를 전달하기 위해 필요 (매개 변수 성공적인 메소드 호출 후) 
UIImageWriteToSavedPhotosAlbum을 (self.imageView.image , 자기, @selector (이미지 : didFinishSavingWithError :에서는 ContextInfo :) 무기 호)
 의 #pragma 마크 - <앨범에 저장> 
- ( 무효 ) 이미지 : (있는 UIImage *) 이미지 didFinishSavingWithError : (NSError *) 오류에서는 ContextInfo :( 무효 * )에서는 ContextInfo { 
    있는 NSString * MSG = 무기 호;
     IF (오류) { 
        MSG = @ " 이미지를 저장 실패 " ; 
    } 그렇지 않으면 { 
        MSG = @ "사진 성공을 저장합니다 " ; 
    } 
}

방법 2 : 프레임 워크는 사진을 구현

2.1 Photos01- 기본적인 이해

PHAsset : 한 PHAsset 객체는 사진 앨범이나 비디오 나타냅니다
PHAssetCollection을하십시오 PHAssetCollection 대상이 앨범을 나타냅니다

우리는 카메라 롤 []에 이미지를 저장하려면, 우리는 먼저 PHAsset 어떻게 이러한 개체를 조작하는 새로운 객체를 추가 할 수 있도록해야합니까? 아무것도하지만, 이러한 개체 CRUD.

PHAsset 一个PHAsset对象就代表相册中的一张图片或者一个视频
CRUD 작업에 사진 / 비디오 관련 변경 사항을 포함 PHAssetChangeRequest

찰스 [PHAsset fetchAssets ...];

PHAssetCollection 一个PHAssetCollection 对象就代表一个相册

CRUD PHAssetCollectionChangeRequest 앨범은 운영과 관련된 모든 수정 사항을 포함

수색 [PHAssetCollection fetchAssetCollectionsContainingAsset:...];

2.2 Photos02-은 카메라 롤에 이미지를 저장
// [카메라 롤에 사진을 저장할 
    /// 비동기 작업 수정 
    [PHPhotoLibrary sharedPhotoLibrary] performChanges을 ^ { 
        [PHAssetChangeRequest creationRequestForAssetFromImage : self.imageView.image] 
    } CompletionHandler : ^ (BOOL 성공은 NSError * _Nullable 에러) {
         IF (오류) { 
            NSLog ( @ " %의 @ " , @ " 저장 실패 " ); 
        } 다른 { 
            NSLog ( @ " %의 @ " , @ " 성공적으로 저장 " ); 
        } 
    }];

2.3 Photos03-는 새 앨범을 만듭니다

* 오류 = NSError의 무기 호; 
    [[PHPhotoLibrary sharedPhotoLibrary] performChangesAndWait : ^ {
         // 얻을 응용 프로그램 이름 
        
        있는 NSString * 제목 = [NSBundle mainBundle] .infoDictionary [(__ 다리는 NSString * ) kCFBundleNameKey];
         // 생성 사용자 정의 앨범 [] 
        [PHAssetCollectionChangeRequest creationRequestForAssetCollectionWithTitle : 표제] 
    } 오류 : & 에러];

2.4 Photos04- 조회 앨범

표제는 NSString * = [NSBundle mainBundle] .infoDictionary [(__ 다리는 NSString * ) kCFBundleNameKey];
    // 查询所有【自定义相册】 
    PHFetchResult <PHAssetCollection *> * 컬렉션 = [PHAssetCollection fetchAssetCollectionsWithType : PHAssetCollectionTypeAlbum 아형 : PHAssetCollectionSubtypeAlbumRegular 선택해 닐]; 
    PHAssetCollection * createCollection = 닐;
     (PHAssetCollection * 컬렉션 에서 수집) {
         경우 ([collection.localizedTitle isEqualToString : 표제]) { 
            createCollection = 컬렉션;
            휴식 ; 
        } 
    } 
경우(createCollection == 닐) {
         // 이 앨범 생성 앱 대응되지
         // 생성 맞춤 앨범 [A] 
        NSError * 오류 = 닐; 
        __block에있는 NSString * createCollectionID = 닐] 
        [PHPhotoLibrary sharedPhotoLibrary] performChangesAndWait : ^ {
             // 맞춤 앨범] 생성 
           createCollectionID = ; .placeholderForCreatedAssetCollection.localIdentifier 제목 : [PHAssetCollectionChangeRequest creationRequestForAssetCollectionWithTitle] 
        } 오류 : & 에러] 
        createCollection를 =[PHAssetCollection의 fetchAssetCollectionsWithLocalIdentifiers를 @ [createCollectionID] 선택해 닐] .firstObject; 
    } 
    NSLog ( @ " %의 @ " , createCollection);

2.5 Photos05- 사용자 지정 앨범에 이미지를 저장

// 1. 먼저 카메라 롤 []로 이미지 저장 
    /// 동작 수정 동기화 
    * 오류 = NSError를 , 무 
    __block의 PHObjectPlaceholder * 자리 = ; 닐 
    [[PHPhotoLibrary sharedPhotoLibrary] performChangesAndWait ^ { 
       자리 =   [PHAssetChangeRequest creationRequestForAssetFromImage : self.imageView을 이미지입니다] .placeholderForCreatedAsset; 
    } 오류 : & 오류]
     IF (오류) { 
        NSLog ( @ " 저장 실패 " );
         반환 ; 
    } 
    // 2] 맞춤형 앨범을 가지고 
    PHAssetCollection * assetCollection =self.createCollection;
     IF (assetCollection == 전무) { 
        NSLog ( @ " 앨범 실패 만들기 " ); 
    } 
    // 바로 카메라 롤] 사용자 정의 앨범에 대한 참조 내부 [사진] [에 저장 3. 
    [[PHPhotoLibrary sharedPhotoLibrary] performChangesAndWait ^ { 
        PHAssetCollectionChangeRequest * requtes의 = [PHAssetCollectionChangeRequest changeRequestForAssetCollection : assetCollection] 
        [requtes의 addAssets @ [자리]; 
    } 오류 : & 에러]
     IF (에러) { 
        NSLog ( @ " 이미지를 저장 실패 " ) 
    } 다른 {
        NSLog ( @ " 그림 저장 성공 " ); 
    }

 

 

추천

출처www.cnblogs.com/dhui69/p/10974102.html