2012-06-21 15 views
111

मैं एक्सकोड (4.3 का उपयोग कर) के लिए नया हूं और मुझे यकीन नहीं है कि किसी डिवाइस को डिवाइस के कैमरे रोल में कैसे सहेजना है। मैंने जो कुछ भी किया है, वह छवि को सहेजने के लिए बटन के लिए एक आईबीएशन स्थापित किया गया है। किसी छवि को उपयोगकर्ता के कैमरे रोल में सहेजने के लिए मैं किस लाइब्रेरी विधि या फ़ंक्शन का उपयोग कर सकता हूं?मैं कैमरे के रोल में एक छवि कैसे सहेज सकता हूं?

उत्तर

212

आप UIImageWriteToSavedPhotosAlbum() फ़ंक्शन का उपयोग करते हैं।

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

संपादित करें:

UISaveVideoAtPathToSavedPhotosAlbum(videoPath, nil, nil, nil); 

आप, इंस्टाग्राम को अपलोड करने के लिए उदाहरण के लिए एक वीडियो को बचाने के लिए चाहते हो सकता है:

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

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

मान लें कि मेरे पास '- (IBAction) onClickSavePhoto है: (आईडी) प्रेषक;' मेरे ViewController.h फ़ाइल में, जो ऊपर है, उसका उपयोग करके, मुझे ViewController.m फ़ाइल में वास्तव में क्या स्थान देना होगा? बहुत बहुत धन्यवाद! – user1470914

+1

@ user1470914 मेरा संपादन देखें। साथ ही, आप कैमरे रोल में सहेजने के लिए छवि कहां प्राप्त कर रहे हैं? क्या यह पहले से ही आपके ऐप के बंडल में है, या क्या उपयोगकर्ता एक तस्वीर लेता है और फिर आप उसे कैमरा रोल में सहेजते हैं? – pasawaya

+0

आपके धैर्य qegal के लिए धन्यवाद। मुझे अब तक इस मुद्दे पर फिर से विचार करने का मौका नहीं मिला है। आपका संपादन हमें बहुत उपयोगी है। छवि ऐप के बंडल में है। ऐप में कई छवियां हैं और उन्हें छोटे थंबनेल के रूप में देखा जा सकता है। जब एक छोटा थंबनेल चुना जाता है तो यह एक नए दृश्य पर जाता है और एक पूर्णस्क्रीन संस्करण देखा जा सकता है। मेरे पास शीर्ष नौसेना के दाहिने कोने में एक बटन है जो "सेव" कहता है और यह वह बटन है जिसे मैं छवि को कैमरे के कैमरे रोल में सहेजना चाहता हूं ताकि इसे वॉलपेपर के रूप में लागू किया जा सके। आपकी मदद और धैर्य के लिए फिर से धन्यवाद (सुनिश्चित नहीं है कि कैस्पर ने इसे क्यों बंद कर दिया)। – user1470914

6

संदर्भ के लिए, आप एक समान तरीके से वीडियो बचा सकते हैं:

// 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

यहां एक उत्तर है या फोटो फ्रेमवर्क का उपयोग कर आईओएस 8।

ऑब्जेक्टिव-सी:

#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 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 
    } 
}) 

यहाँ एप्पल प्रलेखन के लिए एक link है।

+0

छवि यूआरएल @ricardopereira –

+0

@Mansuu कैसे प्राप्त कर सकते हैं कृपया https://stackoverflow.com/a/37248867/3641812 पर एक नज़र डालें – ricardopereira

संबंधित मुद्दे

 संबंधित मुद्दे