【问题标题】:Is there a quick way to scale an image?有没有快速缩放图像的方法?
【发布时间】:2013-09-16 02:06:36
【问题描述】:

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

我对此采取的方法是:

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

在我做研究的时候,我来到了Any code/library to scale down an UIImage?,这让我有点美中不足:至少在发帖时(诚然,2009 年),它说需要几秒钟,可能超过一分钟,重新缩放图像。这看起来美中不足。

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

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

【问题讨论】:

    标签: iphone ios image ipad image-scaling


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-22
      • 1970-01-01
      相关资源
      最近更新 更多