2011-04-03 17 views
5

Estoy trabajando en una aplicación de iPhone para incrustar/extraer datos en archivos jpeg. Quiero darle al usuario la capacidad de copiar la imagen resultante en el portapapeles, pero el código que estoy usando convierte el archivo JPEG resultante en un png cuando se copia en el portapapeles.Copiando una imagen a transcodificaciones de cartón jpeg a png

Estoy usando el siguiente código, ¿hay algo que pueda hacer para asegurarme de copiar y pegar bit a bit el jpeg?

// copy to clipboard 
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; 
pasteboard.image = [UIImage imageNamed:@"output.jpg"]; 

¡Gracias de antemano!

Respuesta

5

Finalmente me di cuenta de esto.

// copy to clipboard 
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; 
NSData *data = [NSData dataWithContentsOfFile:filePath]; 
[pasteboard setData:data forPasteboardType:@"public.jpeg"]; 

...

// copy from clipboard 
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; 
NSData *data = [pasteboard dataForPasteboardType:@"public.jpeg"]; 
NSString *copyPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/image.jpg"]; 
[data writeToFile:copyPath atomically:YES]; 
+0

Hola, Ben, yo uso esto también, pero descubrí que todo lo que extrae la imagen de la mesa de trabajo la convierte en una png. ¿Pensamientos? –

+0

Disculpa, me perdí este comentario ... De todos modos, ¿cómo lo sacas del portapapeles? Nunca tuve ningún problema con eso. Puedo publicar el código para recuperarlo más tarde cuando encuentre mi código. –

+0

Hola Ben. Este es el código que tratamos de impulsar un jpg. Supongo que sí, pero siempre parece regresar al correo electrónico y a iMessage como png. UIImage * jpeg = [UIImage imageWithData: UIImageJPEGRepresentation (img, 0.2)]; [[UIPasteboard generalPasteboard] setValue: [UIImage imageWithData: UIImageJPEGRepresentation (img, 0.5)] forPasteboardType: @ "public.jpeg"]; –

-1
NSPasteboard *pboard = [NSPasteboard generalPasteboard]; 
[pboard declareTypes: [NSMutableArray arrayWithObject: 
         NSTIFFPboardType] owner: nil]; 
[pboard setData:[imgView.image TIFFRepresentation] forType:NSTIFFPboardType]; 

NSData *data = [[NSPasteboard generalPasteboard] dataForType:NSPasteboardTypeTIFF]; 
    if (data) { 
      // Do your stuff here 
    } 

código completamente de trabajo, I m usando el mismo código

buena suerte !!!!

+0

La pregunta es para iOS. Su código es para OS X. – ThomasW

+0

Sin mencionar que la pregunta quería usar JPEG, no TIFF. – bhaller

Cuestiones relacionadas