gpt4 book ai didi

objective-c - 带有嵌入式帽插图的可调整大小的图像资源

转载 作者:行者123 更新时间:2023-11-28 17:33:37 26 4
gpt4 key购买 nike

到目前为止,这不是什么大不了的问题,只是我好奇了一段时间。

有一个众所周知的 -[UIImage resizableImageWithCapInsets:] API 用于创建可调整大小的图像,这在为可变大小的按钮和框架设置纹理时非常方便,尤其是在视网膜 iPad 上,尤其是如果你有很多这样的,你想避免用图像资源膨胀应用程序包。

对于给定的图像,无论我们想将其拉伸(stretch)到什么尺寸,cap insets 通常都是不变的。我们也可以这样说:cap insets 是给定图像的特征。所以事情是这样的:如果它们在逻辑上属于图像,为什么我们不将它们与图像一起存储(作为某种元数据),而不必在我们得到的任何地方指定它们创建一个新实例?

在日常实践中,这可能会带来很大的好处,主要是通过消除过程中出现人为错误的可能性。如果创建图像的设计人员可以在导出图像文件时嵌入适当的上限值,那么开发人员将不再需要在代码中编写魔数(Magic Number)并在每次图像更改时更新它们。 resizableImage API 可以自动读取和应用上限。哎呀,即使是 UIImage 上的类别也可以做到。

因此我的问题是:是否有任何可靠的方法可以在图像中嵌入元数据?

我想强调这两个词:

  • 可靠:我已经在可选的 PNG block 上看到了一些条目,但恐怕一旦 iOS PNG 优化器启动,这些条目就会消失。或者有什么方法可以防止这种情况发生? (连同让优化器完成它的工作)
  • 嵌入:我曾考虑过将元数据包含在文件名中,类似于 Apple 所做的,即“@2x”、“~ipad”等,但具有千米长的名称,如“image- 20.0-20.0-40.0-20.0@2x.png"似乎不是正确的方式。

谁能想出聪明的解决方案来解决这个问题?

最佳答案

Android 有一个名为 nine-patch 的文件类型,它基本上是构建它的图像和元数据的片段。也许可以制作一个类来复制它。 http://developer.android.com/reference/android/graphics/NinePatch.html

关于objective-c - 带有嵌入式帽插图的可调整大小的图像资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10489696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com