2012-06-21 56 views
111

Tôi mới sử dụng Xcode (sử dụng 4.3) và không chắc chắn cách lưu hình ảnh vào cuộn camera của thiết bị. Tất cả những gì tôi đã làm cho đến nay là thiết lập một IBAction cho nút để lưu hình ảnh. Tôi có thể sử dụng phương pháp hoặc chức năng thư viện nào để lưu hình ảnh vào thư viện ảnh của người dùng?Tôi làm cách nào để lưu hình ảnh vào thư viện ảnh?

Trả lời

212

Bạn sử dụng chức năng UIImageWriteToSavedPhotosAlbum().

//Let's say the image you want to save is in a UIImage called "imageToBeSaved" 
UIImageWriteToSavedPhotosAlbum(imageToBeSaved, nil, nil, nil); 

Edit:

//ViewController.m 
- (IBAction)onClickSavePhoto:(id)sender{ 

    UIImageWriteToSavedPhotosAlbum(imageToBeSaved, nil, nil, nil); 
} 
+0

Giả sử tôi có '- (IBAction) onClickSavePhoto: (id) người gửi;' trong tập tin ViewController.h của tôi, sử dụng những gì bạn có ở trên, chính xác những gì tôi sẽ cần phải đặt trong tập tin ViewController.m? Cảm ơn một lần nữa rất nhiều! – user1470914

+1

@ user1470914 Xem chỉnh sửa của tôi. Ngoài ra, bạn sẽ nhận được hình ảnh được lưu vào thư viện ảnh ở đâu? Nó đã có trong gói ứng dụng của bạn hay người dùng chụp ảnh và sau đó bạn lưu ảnh vào thư viện ảnh? – pasawaya

+0

Cảm ơn vì sự kiên nhẫn của bạn. Tôi đã không có cơ hội để xem lại vấn đề này cho đến bây giờ. EDIT của bạn chúng tôi siêu hữu ích. Hình ảnh nằm trong gói của ứng dụng. Có một số hình ảnh trong ứng dụng và chúng có thể được xem dưới dạng hình nhỏ. Khi một hình thu nhỏ nhỏ được chọn, nó sẽ chuyển sang chế độ xem mới và có thể xem phiên bản toàn màn hình. Tôi có một nút ở góc phải của điều hướng trên cùng cho biết "lưu" và đây là nút mà tôi muốn lưu hình ảnh vào cuộn cam của thiết bị để có thể áp dụng làm hình nền. Một lần nữa xin cảm ơn sự giúp đỡ và kiên nhẫn của bạn (không chắc chắn tại sao casperOne đóng cửa này). – user1470914

6

Để tham khảo, bạn có thể lưu video trong một cách tương tự:

UISaveVideoAtPathToSavedPhotosAlbum(videoPath, nil, nil, nil); 

Bạn có thể muốn lưu một đoạn video để tải lên Instagram, ví dụ:

// Save video to camera roll; we can share to Instagram from there. 
-(void)didTapShareToInstagram:(id)sender { 
    UISaveVideoAtPathToSavedPhotosAlbum(self.videoPath, self, @selector(video:didFinishSavingWithError:contextInfo:), (void*)CFBridgingRetain(@{@"caption" : caption})); 
} 

- (void)    video: (NSString *) videoPath 
    didFinishSavingWithError: (NSError *) error 
       contextInfo: (void *) contextInfoPtr { 

    NSDictionary *contextInfo = CFBridgingRelease(contextInfoPtr); 
    NSString *caption   = contextInfo[@"caption"]; 

    NSString *escapedString = [videoPath stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]]; // urlencodedString 
    NSString *escapedCaption = [caption stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]]; // urlencodedString 

    NSURL *instagramURL  = [NSURL URLWithString:[NSString stringWithFormat:@"instagram://library?AssetPath=%@&InstagramCaption=%@", escapedString, escapedCaption]]; 

    [[UIApplication sharedApplication] openURL:instagramURL]; 
} 
29

Đây là câu trả lời f hoặc iOS8 bằng cách sử dụng khung Ảnh.

Objective-C:

#import <Photos/Photos.h> 

UIImage *snapshot = self.myImageView.image; 

[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ 
    PHAssetChangeRequest *changeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:snapshot]; 
    changeRequest.creationDate   = [NSDate date]; 
} completionHandler:^(BOOL success, NSError *error) { 
    if (success) { 
     NSLog(@"successfully saved"); 
    } 
    else { 
     NSLog(@"error saving to photos: %@", error); 
    } 
}]; 

Swift:

// Swift 3.0 
import Photos 

PHPhotoLibrary.shared().performChanges({ 
    PHAssetChangeRequest.creationRequestForAsset(from: snapshot) 
}, completionHandler: { success, error in 
    if success { 
     // Saved successfully! 
    } 
    else if let error = error { 
     // Save photo failed with error 
    } 
    else { 
     // Save photo failed with no error 
    } 
}) 

Dưới đây là một link tài liệu hướng dẫn của Apple.

+0

Cách nhận url hình ảnh @ricardopereira –

+0

@Mansuu Vui lòng xem https://stackoverflow.com/a/37248867/3641812 – ricardopereira

Các vấn đề liên quan