加载较小图像表示的最有效方法
我想加载位于文档目录中的图像的缩略图表示。
如果我只使用相机胶卷,我可以使用资产库框架来执行此操作。对于电影,我可以使用 AV Foundation。
然而,在我的用例中,我所能想到的就是将整个图像加载到内存中(2兆及以上),然后获取该图像的较小表示并释放较大的表示。
我想一定有更好的方法。
I want to load a thumbnail representation of an image that is located in the Documents directory.
If I were just using the Camera Roll I could use the Assets Library Framework to do this. With movies I can use AV Foundation.
However, in my use case all I can figure out is to load the entire image into memory (2 megs and beyond), then grab a smaller representation of that image and release the larger.
I'm thinking there must be a better way.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
除非某处已经有缩略图,否则没有更有效的方法来做到这一点。根据默认或定义,JPEG 或 PNG 图像不包含其自身的较小版本。
考虑在与“[文件名]”相同的目录中检查“[文件名].thumbnail”文件。如果找到它,请使用它;如果没有,则加载“[文件名]”,创建缩略图,并将其写入“[文件名].thumbnail”,以便下次使用该图像时,存在缩略图版本。
Unless there's already a thumbnail image somewhere, then no, there's no more efficient way to do it. A JPEG or PNG image does not, by default or definition, contain a smaller version of itself.
Consider checking for a "[filename].thumbnail" file in the same directory as "[filename]". If you find it, use that; if not, load "[filename]", create the thumbnail, and write it to "[filename].thumbnail" so that the next time you use the image, a thumbnail version exists.