通过 CATransform3D 缩小尺寸后 iOS 中的图像优化?
Image optimization in iOS after reducing of size via CATransform3D?
我有一个观点网格。每个视图都包含一个图像和一些轻量元素。
每个这样的视图都可能变成全屏,反之亦然。所以我使用 CATransform3D
到 minimize/maximize 项目和常量 "fullscreen" 框架(我不能简单地 decrease/increase frame/bounds 因为转换包括额外的子转换而不仅仅是缩放) .
但现在我遇到了另一个问题。每个视图的框架总是很大,所以其中的图像也必须很大,这会导致内存问题。我试图以像素为单位减小图像大小,但整个图像相对于其容器缩小了(通常)。
如何解决此类问题?我不需要最小化后最大尺寸的图像(即使它降低了质量)。
已编辑
特别是对于那些想要不费吹灰之力获得额外选票并试图复述问题而不是回答并建议减小图像大小(以像素为单位)的冒犯者 - 请再次阅读问题,因为它已经被指定,这里是错误结果:
http://i62.tinypic.com/mr67ue.jpg
好的,图片尺寸变小了,但是它的容器怎么办?
我找到的最合适的解决方案如下。
未优化的视图是屏幕尺寸,所有其他变换包括缩放都是通过 CATransform3D
应用的。
为了优化,我手动减少了 UIView
的框架、它的所有子视图甚至图像(因为在我的例子中,它在 UIImageView
中的放置模式不符合任何标准)。我仍然使用相同的复数 CATransform3D
但没有缩放变换。
在这两种情况下,初始锚点(视图的中心)都是屏幕的中心。
为了优化图像,我立即缩小当前视图的大小,并为其他视图使用缓存的图像。如果没有缓存图像,我会尝试重新创建它。
我有一个观点网格。每个视图都包含一个图像和一些轻量元素。
每个这样的视图都可能变成全屏,反之亦然。所以我使用 CATransform3D
到 minimize/maximize 项目和常量 "fullscreen" 框架(我不能简单地 decrease/increase frame/bounds 因为转换包括额外的子转换而不仅仅是缩放) .
但现在我遇到了另一个问题。每个视图的框架总是很大,所以其中的图像也必须很大,这会导致内存问题。我试图以像素为单位减小图像大小,但整个图像相对于其容器缩小了(通常)。
如何解决此类问题?我不需要最小化后最大尺寸的图像(即使它降低了质量)。
已编辑
特别是对于那些想要不费吹灰之力获得额外选票并试图复述问题而不是回答并建议减小图像大小(以像素为单位)的冒犯者 - 请再次阅读问题,因为它已经被指定,这里是错误结果:
http://i62.tinypic.com/mr67ue.jpg
好的,图片尺寸变小了,但是它的容器怎么办?
我找到的最合适的解决方案如下。
未优化的视图是屏幕尺寸,所有其他变换包括缩放都是通过 CATransform3D
应用的。
为了优化,我手动减少了 UIView
的框架、它的所有子视图甚至图像(因为在我的例子中,它在 UIImageView
中的放置模式不符合任何标准)。我仍然使用相同的复数 CATransform3D
但没有缩放变换。
在这两种情况下,初始锚点(视图的中心)都是屏幕的中心。
为了优化图像,我立即缩小当前视图的大小,并为其他视图使用缓存的图像。如果没有缓存图像,我会尝试重新创建它。