我正在尝试使用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。
非常感谢任何帮助。
答案 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一样。