Soy nuevo en Xcode (usando 4.3) y no estoy seguro de cómo guardar una imagen en el rollo de la cámara del dispositivo. Todo lo que he hecho hasta ahora es configurar un IBAction para el botón para guardar la imagen. ¿Qué método o función de biblioteca puedo usar para guardar una imagen en el rollo de la cámara del usuario?¿Cómo puedo guardar una imagen en el carrete de la cámara?
Respuesta
Utiliza la función UIImageWriteToSavedPhotosAlbum()
.
//Let's say the image you want to save is in a UIImage called "imageToBeSaved"
UIImageWriteToSavedPhotosAlbum(imageToBeSaved, nil, nil, nil);
Editar:
//ViewController.m
- (IBAction)onClickSavePhoto:(id)sender{
UIImageWriteToSavedPhotosAlbum(imageToBeSaved, nil, nil, nil);
}
Como referencia, puede guardar los vídeos en una manera similar:
UISaveVideoAtPathToSavedPhotosAlbum(videoPath, nil, nil, nil);
Es posible que desee guardar un video para subir a Instagram, por ejemplo:
// 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];
}
Aquí hay una respuesta f o iOS8 usando el marco de Photos.
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
}
})
He aquí una link a la documentación de Apple.
Cómo obtener la url de la imagen @ricardopereira –
@Mansuu Por favor, eche un vistazo a https://stackoverflow.com/a/37248867/3641812 – ricardopereira
- 1. Problemas al cargar y guardar imágenes desde la cámara y el carrete de la cámara. ¿Qué estoy haciendo mal?
- 2. iPhone - falla al guardar una imagen de la cámara en el álbum de iPhone
- 3. ¿Cómo puedo guardar el código svg como una imagen .svg?
- 4. ¿Cómo puedo guardar una imagen alterada en MATLAB?
- 5. Cómo capturar y guardar una imagen usando una cámara personalizada en Android?
- 6. iPhone - guardando la vista actual como imagen
- 7. ¿Cómo guardar una imagen Ipl?
- 8. En Java, ¿cómo puedo extraer la información relacionada con la cámara de una imagen?
- 9. Guardar UIImager en Photo Library en lugar de Camera Roll
- 10. Cómo guardar la imagen en una base de datos?
- 11. abrir una aplicación de la cámara por la intención y guardar la imagen en la SD y imageView
- 12. Cómo escribir metadatos exif en una imagen (no en el rollo de la cámara, solo un UIImage o JPEG)
- 13. Cómo rotar la imagen y guardar la imagen
- 14. Cómo guardar una imagen seleccionando "guardar imagen como ..." en un menú contextual usando Selenium Webdriver (Python)
- 15. Borrar el epígrafe de Oracle carrete
- 16. ¿Cómo guardar una imagen con JavaScript?
- 17. La intención de la cámara devuelve una imagen pequeña
- 18. Guardar imagen en la galería
- 19. ¿Cómo puedo guardar una imagen en el directorio tmp de mi aplicación?
- 20. Cómo utilizar la cámara como imagen de textura en Three.js
- 21. ¿Guardar la imagen de profundidad de Kinect en Matlab?
- 22. ¿Cómo usar la cámara web en el emulador de Android para capturar una imagen en vivo?
- 23. Procesamiento de imagen de la cámara
- 24. Capturar imagen de la cámara en el formulario o en el lienzo html5
- 25. Cómo guardar una imagen usando django imageField?
- 26. Orientación de imagen de la cámara
- 27. En android, ¿cómo puedo guardar una secuencia RTSP en el archivo mientras la reproduzco?
- 28. ¿Cómo puedo distorsionar una imagen en Matlab usando los parámetros de cámara conocidos?
- 29. cómo guardar el lienzo como imagen png?
- 30. ¿Cómo guardar imágenes de la cámara en Android en una carpeta específica?
Digamos que tengo '- (IBAcción) onClickSavePhoto: (id) remitente;' en mi archivo ViewController.h, usando lo que tienes arriba, ¿qué debería colocar exactamente en el archivo ViewController.m? ¡Muchas gracias de nuevo! – user1470914
@ user1470914 Ver mi edición. Además, ¿dónde está consiguiendo que la imagen se guarde en el carrete de la cámara? ¿Ya está en el paquete de la aplicación o el usuario toma una foto y luego la guarda en el carrete de la cámara? – pasawaya
Gracias por su paciencia qegal. No he tenido la oportunidad de volver a tratar este tema hasta ahora. Tu EDIT nos ayudó súper. La imagen está en el paquete de la aplicación. Hay varias imágenes en la aplicación y se pueden ver como miniaturas pequeñas. Cuando se selecciona una miniatura pequeña, se dirige a una nueva vista y se puede ver una versión de pantalla completa. Tengo un botón en la esquina superior derecha del navegador que dice "guardar" y este es el botón que deseo guardar la imagen en el rollo cameral del dispositivo para que se pueda aplicar como fondo de pantalla. Gracias de nuevo por su ayuda y paciencia (no estoy seguro de por qué CasperOne cerró esto). – user1470914