2011-04-03 17 views
5

पर एक छवि की प्रतिलिपि बनाना मैं जेपीईजी फाइलों में डेटा एम्बेड/निकालने के लिए एक आईफोन ऐप पर काम कर रहा हूं। मैं उपयोगकर्ता को परिणामी छवि को क्लिपबोर्ड पर कॉपी करने की क्षमता देना चाहता हूं, लेकिन जिस कोड का मैं उपयोग कर रहा हूं वह परिणामी जेपीईजी को पीएनजी में कवर करता है जब इसे क्लिपबोर्ड पर कॉपी किया जाता है।पेस्टबोर्ड ट्रांसकोड जेपीजी को पीएनजी

मैं नीचे दिए गए कोड का उपयोग कर रहा हूं, क्या यह सुनिश्चित करने के लिए मैं कुछ भी कर सकता हूं कि यह थोड़ी प्रतिलिपि और जेपीईजी का पेस्ट है?

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

अग्रिम धन्यवाद!

उत्तर

5

मुझे अंत में यह पता चला।

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

अरे बेन, मैं इसका भी उपयोग करता हूं, लेकिन मुझे पता चला कि जो कुछ भी पेस्टबोर्ड से छवि खींचता है उसे वापस एक पीएनजी में बदल देता है। विचार? –

+0

क्षमा करें, मुझे यह टिप्पणी याद आई है ... वैसे भी आप इसे क्लिपबोर्ड से कैसे खींच रहे हैं? मुझे इसके साथ कभी भी कोई समस्या नहीं थी। जब मैं अपना कोड पाता हूं तो मैं इसे बाद में पुनर्प्राप्त करने के लिए कोड पोस्ट कर सकता हूं। –

+0

हाय बेन। यह वह कोड है जिसे हमने एक jpg धक्का देने की कोशिश की। मुझे लगता है कि यह किया था, लेकिन यह हमेशा एक पीएनजी के रूप में ईमेल और iMessage में वापस आते हैं। UIImage * jpeg = [UIImage imageWithData: UIImageJPEGRepresentation (img, 0.2)]; [[यूआईपीएस्टबोर्ड सामान्य पेस्टबोर्ड] सेट वैल्यू: [UIImage imageWithData: UIImageJPEGRepresentation (img, 0.5)] के लिए पेस्टबोर्ड टाइप: @ "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 
    } 

पूरी तरह से काम कर रहे कोड, मैं एक ही कोड

गुड लक का उपयोग कर हूँ !!!!

+0

प्रश्न आईओएस के लिए है। आपका कोड ओएस एक्स – ThomasW

+0

के लिए है, प्रश्न का उल्लेख नहीं करना चाहिए जेपीईजी का उपयोग करना चाहता था, टीआईएफएफ नहीं। – bhaller

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