Jestem nowy w Xcode (używając 4.3) i nie jestem pewien, jak zapisać obraz do rolki aparatu urządzenia. Wszystko, co zrobiłem do tej pory, to ustawienie IBAction dla przycisku, aby zapisać obraz. Jaką metodę lub funkcję biblioteki można użyć do zapisania obrazu w rolce aparatu użytkownika?Jak zapisać obraz na rolce z aparatu?
Odpowiedz
Używa się funkcji 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);
}
Dla porównania można zapisywać filmy w podobny sposób:
UISaveVideoAtPathToSavedPhotosAlbum(videoPath, nil, nil, nil);
może chcesz zapisać plik do przesłania na Instagram, na przykład:
// 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];
}
Oto odpowiedź f lub iOS8 przy użyciu frameworku Zdjęcia.
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
}
})
Oto link do dokumentacji Apple.
Jak uzyskać adres URL obrazu @ricardopereira –
@Mansuu Proszę spojrzeć na https://stackoverflow.com/a/37248867/3641812 – ricardopereira
- 1. Jak zapisać wideo z AVAssetExportSession do roli aparatu?
- 2. iPhone - Jak programowo utworzyć niestandardowy album i nadać niestandardowe nazwy zdjęciom w rolce z aparatu?
- 3. Jak zapisać plik wideo ReplayKit na rolce z kamerą z przyciskiem w aplikacji
- 4. zapisać obraz w rolki aparatu i uzyskać adres URL zasobu
- 5. Jak zapisać obraz jako obraz?
- 6. Jak zapisać obraz z płótna
- 7. Wyświetlany obraz z szklanego aparatu jest zniekształcony.
- 8. Jak obrócić obraz i zapisać obraz
- 9. Jak przechwytywać surowy obraz z aparatu z Androidem
- 10. W Dlib jak zapisać obraz z nakładką?
- 11. Jak zapisać obraz z płótna Three.js?
- 12. Jak mogę zapisać obraz z PIL?
- 13. otworzyć aplikację aparatu przez intencji i zapisać obraz na karcie SD i ImageView
- 14. Jak zapisać obraz w MySQL?
- 15. UIImagepickercontroller: czy można zmienić kolejność sortowania obrazów w rolce z aparatu?
- 16. Jak przycinać obrazy z aparatu
- 17. Zapisz wygenerowany GIF do rolki aparatu?
- 18. Jak zapisać obraz za pomocą libcurl
- 19. Jak zapisać zmieniony obraz w MATLAB?
- 20. opencv: jak zapisać tablicę float jako obraz
- 21. Jak zapisać obraz kontrolny wykresu do pliku?
- 22. Jak mogę sprawdzić, czy obraz zwrócony z didFinishPickingMediaWithInfo pochodzi z aparatu lub albumu fotograficznego?
- 23. Jak zapisać obraz za pomocą obrazu django?
- 24. Jak zapisać obraz WPF do pliku
- 25. opencv - jak zapisać obraz Mat w filestorage
- 26. Jak zapisać kod svg jako obraz .svg?
- 27. jak zapisać płótno jako obraz png?
- 28. orientacja na portret aparatu Android
- 29. jak zapisać panel jako obraz w ruchu?
- 30. Jak przesłać i zapisać obraz z silnikiem aplikacji Google (java)
Załóżmy, że mam "- (IBAction) onClickSavePhoto: (id) sender;" w moim pliku ViewController.h, używając tego, co masz powyżej, co dokładnie powinienem umieścić w pliku ViewController.m? Jeszcze raz dziękuję! – user1470914
@ user1470914 Zobacz moją zmianę. Ponadto, skąd otrzymujesz obraz do zapisania w rolce z aparatu? Czy jest już w pakiecie aplikacji, czy użytkownik robi zdjęcie, a następnie zapisuje je w rolce z aparatu? – pasawaya
Dziękuję za cierpliwość qegal. Nie miałem okazji ponownie powrócić do tego problemu do tej pory. EDIT nas super pomocny. Obraz znajduje się w pakiecie aplikacji. W aplikacji dostępnych jest kilka zdjęć, które można wyświetlić jako małe miniatury. Po wybraniu małej miniatury następuje przejście do nowego widoku i wyświetlenie wersji pełnoekranowej. Mam przycisk w prawym rogu górnego panelu nawigacyjnego, który mówi "zapisz" i jest to przycisk, który chcę zapisać obraz na rolce urządzenia, aby mógł zostać zastosowany jako tapeta. Jeszcze raz dziękuję za pomoc i cierpliwość (nie wiesz, dlaczego casperOne to zamknął). – user1470914