【问题标题】:Change size of UIImage to desired size将 UIImage 的大小更改为所需的大小
【发布时间】:2017-06-14 11:14:37
【问题描述】:

我正在使用此代码来更改图像的大小。

- (UIImage *)scaledImage:(UIImage *)image size:(CGSize)size {
    UIGraphicsBeginImageContextWithOptions(size, NO, 1.0);
    [image drawInRect:CGRectMake(0, 0, size.width, size.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return newImage;
}

我目前需要在运行时更改 100 个图像的大小,但此代码会导致延迟。加载时间很长。 有没有更快的方法来调整 UIImage 的大小?

谢谢

【问题讨论】:

标签: ios objective-c uiimage


【解决方案1】:

试试这个代码:

CGRect rect = CGRectMake(0,0,75,75);
UIGraphicsBeginImageContext( rect.size );
[yourCurrentOriginalImage drawInRect:rect];
UIImage *picture1 = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

NSData *imageData = UIImagePNGRepresentation(picture1);
UIImage *img=[UIImage imageWithData:imageData];

【讨论】:

  • drawInRect 方法在我们尝试一次转换大量图像时需要一个明显的延迟(比如 100 张图像大约需要 1-2 秒),基本上是在一个循环中。所以,这对我不起作用
【解决方案2】:
'- (UIImage *)scaledImage:(UIImage *)image size:(CGSize)size {
    CGRect rect = CGRectMake(0,0, size.width,size.height);
    UIGraphicsBeginImageContext( size );
    [image drawInRect:rect];
    UIImage *picture1 = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    NSData *imageData = UIImagePNGRepresentation(picture1);
    UIImage *img=[UIImage imageWithData:imageData];
    return img;
}'

【讨论】:

  • drawInRect 方法在我们尝试一次转换大量图像时需要一个明显的延迟(比如 100 张图像大约需要 1-2 秒),基本上是在一个循环中。所以,这对我不起作用
猜你喜欢
  • 1970-01-01
  • 2013-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多