【问题标题】:iOS Resize and crop not squared images - high qualityiOS 调整大小和裁剪非方形图像 - 高质量
【发布时间】:2012-03-04 17:46:31
【问题描述】:

我面临以下问题:我有几个 UIImage(不是平方的),我需要调整它们的大小并裁剪它们。我已经阅读了 StackOverflow 上的几乎所有问题,但我得到的结果并不好,我的意思是生成的图像质量很差(模糊)。
这是场景:
1) 原始图像尺寸:宽度 208 像素 - 高度可变(即从 50 到 2500)
2) 结果图像:宽度 100 像素 - 高度最大 200 像素

这就是我迄今为止为达到这个结果所做的工作:

..... // missing code
CGFloat height = (100*image.size.height)/image.size.width;
self.thumbnail=[image resizedImage:CGSizeMake(100,height) 
              interpolationQuality:kCGInterpolationHigh];

..... // missing code

我用来调整图像大小的方法可以在here 找到,一旦图像被调整大小,我会使用以下代码对其进行裁剪:

CGRect croppedRect;
croppedRect = CGRectMake(0, 0, self.thumbnail.size.width, 200);  
CGImageRef tmp = CGImageCreateWithImageInRect([self.thumbnail CGImage], 
                                                          croppedRect);
self.thumbnail = [UIImage imageWithCGImage:tmp];
CGImageRelease(tmp);

长话短说,图像已调整大小和裁剪,但考虑到原始图像的质量非常好,质量确实很差。
那么问题是如何实现这一点并保持图像的高质量?

【问题讨论】:

    标签: ios uiimage resize crop


    【解决方案1】:

    如果您的目标是 iOS 4 及更高版本,您应该使用 ImageIO 来调整图像大小。

    http://www.cocoabyss.com/coding-practice/uiimage-scaling-using-imageio/

    【讨论】:

    • 感谢您的回复,我已经阅读了您的帖子(真的很棒),但可能由于我缺乏经验,我使用 ImageIO 得到的结果是最糟糕的:( ....基本上我所做的是用我想要调整大小的图像初始化一个 CGImageSource,我使用了与您在示例中使用的相同的选项字典,更改了 maxSize 的值(首先怀疑一个值??)并且我创建了来源的缩略图,但正如我所说,图像非常模糊。我不明白的一件事是您如何指定缩略图的尺寸?
    • 你指定最大尺寸,在你的情况下是高度,图像将被缩放以适应这个最大尺寸。
    猜你喜欢
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多