0

我想以响应式设计方式从高分辨率主图像制作单个背景图像,在保持纵横比的同时将其缩小到其边界矩形接触图像边界矩形的位置,并裁剪末端,使图像居中.

我对此采取的方法是:

  1. 获取窗口的尺寸,注意它们是否匹配任何最后记录的尺寸,并且仅在这是第一次调用或屏幕分辨率已更改时才继续。
  2. 获取图像的尺寸,根据需要缩小图像。
  3. 裁剪图像;我认为https://developer.apple.com/library/ios/documentation/graphicsimaging/Conceptual/CoreImaging/ci_tasks/ci_tasks.html给出了带有解释的 CICrop 方法。
  4. 显示渲染图像。

当我在做研究时,我来到Any code/library 来缩小 UIImage?,美中不足:至少在发布时(诚然,2009 年),它说重新缩放图像需要几秒钟,可能超过一分钟。这看起来像美中不足。

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

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

4

1 回答 1

1

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

您也可以尝试设置将原始图像直接放入UIImageView并设置适当的contentMode(可能UIViewContentModeScaleAspectFill)。如果它看起来参差不齐,这个其他问题可能是相关的:iOS UIImageView scaling image down generate aliased image on iPad 2

综上所述,根据我的经验,在您的项目中为 iPad 和 iPhone 生成并包含单独的图像是正常的,通常更容易

于 2013-09-12T01:13:40.140 回答