有缩放图像的快捷方法吗?

时间:2013-09-11 21:23:57

标签: iphone ios image ipad image-scaling

我希望,在响应式设计方面,从高分辨率主图像制作单个背景图像,缩小它,同时保持纵横比刚好到其边界矩形接触图像的边界矩形,并裁掉两端,留下以图像为中心。

我采取的方法是:

  1. 获取窗口的尺寸,注意它们是否与最后记录的尺寸匹配,只有在第一次调用此窗口或屏幕分辨率发生变化时才会继续。
  2. 获取图像的尺寸,根据需要缩小图像。
  3. 裁剪图像;我认为https://developer.apple.com/library/ios/documentation/graphicsimaging/Conceptual/CoreImaging/ci_tasks/ci_tasks.html给出了CICrop方法的解释。
  4. 显示渲染图像。
  5. 当我正在做研究时,我来到了Any code/library to scale down an UIImage?,它引起了美中不足:至少在发布时(不可否认的是,2009年),它说需要几秒钟,可能不止一个分钟,重新缩放图像。美中不足的是苍蝇。

    是否有适当的或标准的响应式设计方法来缩小和自动裁剪图像,而不会因为花几秒钟思考而降低用户体验?如果我想绕过IDE,我可能会创建一个shell脚本,它将运行ImageMagick转换为相当于一个已准备好的缓存,但这对我来说很有趣。如果我找不到其他闻起来不那么有趣的东西,这就是我用作最后手段的解决方案。

    这里的首选方法是什么?某种形式的响应式设计是否有效?处理器加速到足以使调整大小不是一项昂贵的操作吗?如果我首先缩小背景以使其高度最多是iPad中的纵向像素分辨率,是否有明显改善?

1 个答案:

答案 0 :(得分:1)

处理器加快了这一速度,但这取决于源图像的大小。作为数据点,我使用相同的方法在我的应用程序中调整/裁剪相机照片。在我的iPad 2上,这个过程几乎是即时的。

您也可以尝试将原始图片直接放入UIImageView并设置相应的contentMode(可能是UIViewContentModeScaleAspectFill)。如果它看起来是锯齿状的,那么这个问题可能是相关的:iOS UIImageView scaling image down produces aliased image on iPad 2

所有这一切,根据我的经验,在您的项目中生成并包含iPad和iPhone的单独图像通常更容易,通常更容易