मैं UIImage
NSData
से ऑब्जेक्ट लोड करने की कोशिश कर रहा हूं, और नमूना कोड NSImage
पर था, मुझे लगता है कि वे वही होना चाहिए। लेकिन अभी छवि को लोड कर रहा है, मैं सोच रहा हूं कि UIImage
लोडिंग NSData
समस्या का निवारण करने के लिए सबसे अच्छा क्या है।एनएसडीटा और यूआईएममेज
उत्तर
UIImage में initWithData:
विधि है। दस्तावेज़ों से: "डेटा पैरामीटर में डेटा को सिस्टम के समर्थित छवि प्रकारों में से किसी एक के फ़ाइल प्रारूप से मेल खाने के लिए स्वरूपित किया जाना चाहिए।"
डेटा NSData
ऑब्जेक्ट होना चाहिए जिसमें पहले से ही डेटा है। NSData
ऑब्जेक्ट को उपयोग करने से पहले फ़ाइल लोडिंग/डाउनलोड करने की आवश्यकता है। आप डेटा पर NSLog
का उपयोग करके इसका निरीक्षण कर सकते हैं और देख सकते हैं कि इसमें वैध डेटा है या नहीं।
NSData *imageData = UIImagePNGRepresentation(image);
UIImage *image=[UIImage imageWithData:imageData];
मैं UIImageJPEGRepresentation()
से पहले की कोशिश नहीं की है, लेकिन UIImagePNGRepresentation
मेरे लिए ठीक काम करता है, और NSData
और UIImage
के बीच रूपांतरण मृत सरल है
UIImage *img = [UIImage imageNamed:@"image.png"];
NSData *data1 = UIImagePNGRepresentation(img);
NSdata के लिए एक छवि परिवर्तित करने के लिए इस प्रयास करें::
कोड के सुरक्षित निष्पादन के लिए, डेटा के साथ ब्लॉक को छोड़ दें, कार्य के रूप में UIImagePNGRepresentation रिटर्न, वैकल्पिक मान।
if let img = UIImage(named: "Hello.png") {
if let data:Data = UIImagePNGRepresentation(img) {
// Handle operations with data here...
}
}
नोट: डाटा स्विफ्ट 3 वर्ग है।
if let img = UIImage(named: "Hello.png") { if let data:Data = UIImagePNGRepresentation(img) { handleOperationWithData(data: data) } else if let data:Data = UIImageJPEGRepresentation(img, 1.0) { handleOperationWithData(data: data) } } ******* func handleOperationWithData(data: Data) { // Handle operations with data here... if let image = UIImage(data: data) { // Use image... } }
एक्सटेंशन का उपयोग कर द्वारा:: स्विफ्ट 3
जेनेरिक छवि परिचालन (& जेपीजी दोनों png की तरह) के साथ NSData के बजाय डेटा उपयोग
extension UIImage {
var pngRepresentationData: Data? {
return UIImagePNGRepresentation(img)
}
var jpegRepresentationData: Data? {
return UIImageJPEGRepresentation(self, 1.0)
}
}
*******
if let img = UIImage(named: "Hello.png") {
if let data = img.pngRepresentationData {
handleOperationWithData(data: data)
} else if let data = jpegRepresentationData {
handleOperationWithData(data: data)
}
}
*******
func handleOperationWithData(data: Data) {
// Handle operations with data here...
if let image = UIImage(data: data) {
// Use image...
}
}
हाँ, कि मैं क्या उपयोग कर रहा हूँ है । एनएसडीटा के पास पता है, जबकि कॉल के बाद UIImaeg -initWithData: डेटा, बिंदु 0 हो गया। मुझे यकीन नहीं है कि त्रुटि संदेश कहां देखना है। – BlueDolphin