धन्यवाद iOS 4.0 के रूप में, iOS SDK का CGImageSource...
functions (ImageIO ढांचे में) शामिल हैं। छवि को स्मृति में लोड किए बिना मेटाडेटा से पूछताछ करने के लिए यह एक बहुत ही लचीला एपीआई है।
#import <ImageIO/ImageIO.h>
NSURL *imageFileURL = [NSURL fileURLWithPath:...];
CGImageSourceRef imageSource = CGImageSourceCreateWithURL((CFURLRef)imageFileURL, NULL);
if (imageSource == NULL) {
// Error loading image
...
return;
}
CGFloat width = 0.0f, height = 0.0f;
CFDictionaryRef imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, NULL);
CFRelease(imageSource);
if (imageProperties != NULL) {
CFNumberRef widthNum = CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelWidth);
if (widthNum != NULL) {
CFNumberGetValue(widthNum, kCFNumberCGFloatType, &width);
}
CFNumberRef heightNum = CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelHeight);
if (heightNum != NULL) {
CFNumberGetValue(heightNum, kCFNumberCGFloatType, &height);
}
// Check orientation and flip size if required
CFNumberRef orientationNum = CFDictionaryGetValue(imageProperties, kCGImagePropertyOrientation);
if (orientationNum != NULL) {
int orientation;
CFNumberGetValue(orientationNum, kCFNumberIntType, &orientation);
if (orientation > 4) {
CGFloat temp = width;
width = height;
height = temp;
}
}
CFRelease(imageProperties);
}
NSLog(@"Image dimensions: %.0f x %.0f px", width, height);
(Gelphman और लादेन "क्वार्ट्ज साथ प्रोग्रामिंग" से अनुकूलित 9.5, पेज 228 लिस्टिंग,: एक छवि के पिक्सेल आयाम हो रही इस तरह काम करना चाहिए (अपने लक्ष्य में ImageIO.framework शामिल करना सुनिश्चित करें))
स्रोत
2010-11-13 00:06:38
यह एक अच्छा सवाल है। एंड्रॉइड ऐसा करने का साधन प्रदान करता है, लेकिन मुझे आईओएस समाधान के बारे में पता नहीं है। संपादित करें: इससे पहले पूछा गया है। http://stackoverflow.com/questions/1551300/get-size-of-image-without-loading-in-to- स्मृति – Justin
मैंने पहले खोज की, लेकिन मुझे यह नहीं मिला! बहुत धन्यवाद! – koda