दिलचस्प पोस्ट
जब हेड फोन्स प्लग इन किए गए हैं तो पता लगा रहे हैं कैसे एक दूसरे को बुला दो तरीकों के लिए है? मैं सीएसएस के माध्यम से अलग ऊंचाई और चौड़ाई के सभी चित्र कैसे बना सकता हूं? हस्केले घोषणापत्र में विस्मयादिबोधक चिह्न का क्या अर्थ है? क्या फ़ाइल के पुराने संस्करण को देखने के लिए एक त्वरित git कमांड है? कैसे सी + + में एक संगत 2d सरणी बनाने के लिए? Android में एक ऊर्ध्वाधर SeekBar बनाने के लिए कैसे? Nginx + php5-fpm में त्रुटि 502 आर में डेटा के लिए बहुपद मॉडल फिटिंग ट्रिगर करने वाला ईवेंट जब बटन को एंड्रॉइड में दबाया जाता है PHP के साथ JSON फ़ाइल से डेटा प्राप्त करें बूटस्ट्रैप के फार्म तत्वों को स्ट्रॉप्स 2-बोस्टाप-प्लगइन के साथ बहुत ही बढ़िया क्यों दिया गया है? जावा कचरा कलेक्टर – यह कब एकत्र करता है? यह जावास्क्रिप्ट पैटर्न क्या है और इसका इस्तेमाल क्यों किया जाता है? मुझे कैसे पता चलेगा कि एक WPF विंडो की निगरानी क्या है

किसी सर्वर पर अपलोड करने से पहले आईफोन ओएस एसडीके पर छवि को कैसे सेकेंड / रीसाइज करना है?

मैं वर्तमान में निम्नलिखित कोड के साथ आईओएस पर इमगुर का प्रयोग कर एक छवि को अपलोड कर रहा हूं:

NSData* imageData = UIImagePNGRepresentation(image); NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString* fullPathToFile = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"SBTempImage.png"]; [imageData writeToFile:fullPathToFile atomically:NO]; [uploadRequest setFile:fullPathToFile forKey:@"image"]; 

सिम्युलेटर में चलने और सिम्युलेटर के फोटो लाइब्रेरी से एक फ़ाइल अपलोड करते समय कोड ठीक काम करता है क्योंकि मैं एक तेज ईथरनेट कनेक्शन पर हूं। हालांकि, iPhone के साथ ली गई छवि का चयन करते समय iPhone पर एक ही कोड का समय होता है इसलिए, मैंने वेब से एक छोटी सी छवि को सहेजकर इसे अपलोड करने का प्रयास किया, जो उसने काम किया

इससे मुझे विश्वास हो जाता है कि आईफोन द्वारा ली गई बड़ी छवियां कुछ हद तक धीमी गति से 3 जी नेटवर्क पर समाप्त हो रही हैं। क्या आईफोन से इसे भेजने से पहले छवि को संकुचित / पुनः आकार देने का कोई तरीका है?

धन्यवाद!

Solutions Collecting From Web of "किसी सर्वर पर अपलोड करने से पहले आईफोन ओएस एसडीके पर छवि को कैसे सेकेंड / रीसाइज करना है?"

आपको ऐसा कुछ करने से एक छोटी छवि बनाने में सक्षम होना चाहिए

 UIImage *small = [UIImage imageWithCGImage:original.CGImage scale:0.25 orientation:original.imageOrientation]; 

(एक चौथाई-आकार की छवि के लिए) फिर छोटे चित्र को पीएनजी में परिवर्तित करें या आपको जो भी प्रारूप की आवश्यकता होती है।

यह स्निपेट छवि का आकार बदल जाएगा:

 UIGraphicsBeginImageContext(newSize); [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); 

परिवर्तनीय newSize एक CGSize और इस तरह परिभाषित किया जा सकता है:

 CGSize newSize = CGSizeMake(100.0f, 100.0f); 

एक आत्म निहित समाधान:

 - (UIImage *)compressForUpload:(UIImage *)original scale:(CGFloat)scale { // Calculate new size given scale factor. CGSize originalSize = original.size; CGSize newSize = CGSizeMake(originalSize.width * scale, originalSize.height * scale); // Scale the original image to match the new size. UIGraphicsBeginImageContext(newSize); [original drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; UIImage *compressedImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return compressedImage; } 

तन गुयेन के लिए धन्यवाद

@Tuan Nguyen के पूरक के लिए, यह शायद ऐसा करने के लिए सबसे तेज और सबसे सुरुचिपूर्ण तरीका है

आईफ़होनेइएल्फाइटट्स डॉट कॉम में जॉन मचो के पोस्ट से लिंक करने के लिए , यूइमेज के लिए एक श्रेणी को जोड़ना बहुत तेज फैशन में स्केल करने का एक बहुत ही आसान तरीका है। बस कॉलिंग

  UIImage *_image = [[[UIImage alloc] initWithData:SOME_NSDATA] scaleToSize:CGSizeMake(640.0,480.0)]; 

आपको अपने एनएसडीएटीए (जो एक ऑनलाइन छवि हो सकती है) कोड की किसी भी लाइन के बिना एक 640×480 प्रतिनिधित्व छवि देता है

मैट जेमेल की एमजीआईमेज यूटिगरीज बहुत अच्छे हैं, कुशलतापूर्वक रीसाइज़िंग और कुछ प्रयास-कम करने के तरीकों के साथ।

इस कोड में 0.5 मतलब है 50% …

 UIImage *original = image; UIImage *compressedImage = UIImageJPEGRepresentation(original, 0.5f); 

इस सरल विधि NSData *data = UIImageJPEGRepresentation(chosenImage, 0.2f); उपयोग करें NSData *data = UIImageJPEGRepresentation(chosenImage, 0.2f);

ज़ोरैर के कार्य के तेजी से कार्यान्वयन (वास्तविक इकाइयों द्वारा ऊंचाई या चौड़ाई की कमी को शामिल करने के लिए कुछ बदलाव के साथ):

 class func compressForUpload(original:UIImage, withHeightLimit heightLimit:CGFloat, andWidthLimit widthLimit:CGFloat)->UIImage{ let originalSize = original.size var newSize = originalSize if originalSize.width > widthLimit && originalSize.width > originalSize.height { newSize.width = widthLimit newSize.height = originalSize.height*(widthLimit/originalSize.width) }else if originalSize.height > heightLimit && originalSize.height > originalSize.width { newSize.height = heightLimit newSize.width = originalSize.width*(heightLimit/originalSize.height) } // Scale the original image to match the new size. UIGraphicsBeginImageContext(newSize) original.drawInRect(CGRectMake(0, 0, newSize.width, newSize.height)) let compressedImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return compressedImage } 
 #import <ImageIO/ImageIO.h> #import <MobileCoreServices/MobileCoreServices.h> + (UIImage *)resizeImage:(UIImage *)image toResolution:(int)resolution { NSData *imageData = UIImagePNGRepresentation(image); CGImageSourceRef src = CGImageSourceCreateWithData((__bridge CFDataRef)imageData, NULL); CFDictionaryRef options = (__bridge CFDictionaryRef) @{ (id) kCGImageSourceCreateThumbnailWithTransform : @YES, (id) kCGImageSourceCreateThumbnailFromImageAlways : @YES, (id) kCGImageSourceThumbnailMaxPixelSize : @(resolution) }; CGImageRef thumbnail = CGImageSourceCreateThumbnailAtIndex(src, 0, options); CFRelease(src); UIImage *img = [[UIImage alloc]initWithCGImage:thumbnail]; return img; } 

जगन्दीप सिंह विधि का स्विफ्ट 2.0 संस्करण, लेकिन डेटा को छवि में बदलने की आवश्यकता है क्योंकि एनएसडीटा? UIImage को स्वचालित रूप से परिवर्तित नहीं किया जाता है

 let orginalImage:UIImage = image let compressedData = UIImageJPEGRepresentation(orginalImage, 0.5) let compressedImage = UIImage(data: compressedData!) 
 NsData *data=UiImageJPEGRepresentation(Img.image,0.2f); 
 UIImage *image = [UIImage imageNamed:@"image.png"]; NSData *imgData1 = UIImageJPEGRepresentation(image, 1); NSLog(@"Original --- Size of Image(bytes):%d",[imgData1 length]); NSData *imgData2 = UIImageJPEGRepresentation(image, 0.5); NSLog(@"After --- Size of Image(bytes):%d",[imgData2 length]); image = [UIImage imageWithData:imgData2]; imgTest.image = image; 

स्केलिंग कारक द्वारा जेपीजी कन्वर्ट करने का प्रयास करें यहां मैं 0.5 का प्रयोग कर रहा हूं मेरे मामले में: मूल — छवि का आकार (बाइट्स): 85 केबी और बाद में — छवि का आकार (बाइट्स): 23 केबी

 -(UIImage *) resizeImage:(UIImage *)orginalImage resizeSize:(CGSize)size { CGFloat actualHeight = orginalImage.size.height; CGFloat actualWidth = orginalImage.size.width; // if(actualWidth <= size.width && actualHeight<=size.height) // { // return orginalImage; // } float oldRatio = actualWidth/actualHeight; float newRatio = size.width/size.height; if(oldRatio < newRatio) { oldRatio = size.height/actualHeight; actualWidth = oldRatio * actualWidth; actualHeight = size.height; } else { oldRatio = size.width/actualWidth; actualHeight = oldRatio * actualHeight; actualWidth = size.width; } CGRect rect = CGRectMake(0.0,0.0,actualWidth,actualHeight); UIGraphicsBeginImageContext(rect.size); [orginalImage drawInRect:rect]; orginalImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return orginalImage; } 

यह विधि कॉलिंग है

  UIImage *compimage=[appdel resizeImage:imagemain resizeSize:CGSizeMake(40,40)]; 

यह छवि इस छवि को रिटर्न करता है, यू कहां दिखा सकता है ………..