调整UIImage的大小以进行编辑并以高分辨率保存?

时间:2012-03-31 17:43:48

标签: iphone ios uiimage

有没有办法从库中加载图片或换一张图片,将其调整为较小的尺寸以便能够编辑它,然后将其保存为原始尺寸?我正在努力解决这个问题,无法让它发挥作用。我有这样的调整大小代码设置:

firstImage = [firstImage resizedImageWithContentMode:UIViewContentModeScaleAspectFit bounds:CGSizeMake(960, 640) interpolationQuality:kCGInterpolationHigh];

然后我有一个UIImageView:

[finalImage setFrame:CGRectMake(10, 100, 300, 232)];
 finalImage.image = firstImage;

如果我以图片的原始大小设置CGSizeMake,这是一个非常缓慢的过程。我在其他应用程序中看到他们在较小的图像上工作,即使对于效果,编辑过程也相当快。这方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以参考Move and Scale Demo。这是一个自定义控件,它实现了移动和缩放以及裁剪图像,这对您真的很有帮助。

此外,这是将图像缩放到给定大小的最简单代码。请参阅此处:Resize/Scale of an Image

你可以在这里参考它的代码

//  UIImage+Scale.h

@interface UIImage (scale)

-(UIImage*)scaleToSize:(CGSize)size;

@end

实施UIImage比例类别 有了接口,让我们编写将添加到UIImage类的方法的代码。

//  UIImage+Scale.h

#import "UIImage+Scale.h"

@implementation UIImage (scale)

-(UIImage*)scaleToSize:(CGSize)size
{
  // Create a bitmap graphics context
  // This will also set it as the current context
  UIGraphicsBeginImageContext(size);

  // Draw the scaled image in the current context
  [self drawInRect:CGRectMake(0, 0, size.width, size.height)];

  // Create a new image from current context
  UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();

  // Pop the current context from the stack
  UIGraphicsEndImageContext();

  // Return our new scaled image
  return scaledImage;
}

@end

使用UIImage缩放方法 调用我们添加到UIImage的新缩放方法就像这样简单:

#import "UIImage+Scale.h"

...

// Create an image
UIImage *image = [UIImage imageNamed:@"myImage.png"];

// Scale the image
UIImage *scaledImage = [image scaleToSize:CGSizeMake(25.0f, 35.0f)];

如果您需要更多帮助,请与我们联系。

希望这会对你有所帮助。