调整图像大小Objective-C

时间:2012-04-26 13:35:14

标签: ios objective-c uiimage uikit

我正在尝试使用iPhone 4及更高版本拍摄的Objective-C缩小图像,以便尽快将其发送到服务器。目前,全尺寸的图像需要很长时间。

我正在努力缩小规模的当前时间是:

CGSize imageSize;

imageSize = CGSizeMake(484, 888);

UIImage *img = [UIImage imageWithContentsOfFile:path];

UIGraphicsBeginImageContext( imageSize );
[img drawInRect:CGRectMake(0,0,imageSize.width,imageSize.height)];
UIImage* realfrontImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *frontImageData = UIImageJPEGRepresentation(realfrontImage, 1.0);

这给我一张320x460的图像,我怎么得到它想要的尺寸484x888。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:4)

-(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize {
    UIGraphicsBeginImageContext(newSize);
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();
    return newImage;
}

使用此方法缩小图像。

答案 1 :(得分:0)

//用你的调整大小比例调用这个函数......

 -(UIImage*)scaleByRatio:(float) scaleRatio
{ 
  CGSize scaledSize = CGSizeMake(self.size.width * scaleRatio, self.size.height * scaleRatio);
   CGColorSpaceRef colorSpace;
   int   bitmapBytesPerRow;
   bitmapBytesPerRow   = (size.width * 4);

    //The output context.   
   UIGraphicsBeginImageContext(scaledSize);
   CGContextRef context = context = CGBitmapContextCreate (NULL,
                             scaledSize .width,
                             scaledSize .height,
                             8,      // bits per component
                             bitmapBytesPerRow,
                             colorSpace,
                             kCGImageAlphaPremultipliedLast);

 //Percent (101%)    
 #define SCALE_OVER_A_BIT 1.01

//Scale.
CGContextScaleCTM(context, scaleRatio * SCALE_OVER_A_BIT, scaleRatio *      SCALE_OVER_A_BIT);
[self drawAtPoint:CGPointZero];

  //End?
  UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
 UIGraphicsEndImageContext();
 return scaledImage;
}

希望,这会对你有帮助......

答案 2 :(得分:0)

也许这篇文章可以帮助你:How to resize the image programmatically in objective-c in iphone

小心......你在Objective-C中这样做,而不是XCode。 XCode是您在其中开发Objective-c的应用程序。就像Netbeans或Eclipse通常用于Java和PHP一样。

相关问题