gpt4 book ai didi

ios - iOS SDWebImage-如何正确处理不同设备上的视网膜图像?

转载 作者:行者123 更新时间:2023-12-01 18:22:59 26 4
gpt4 key购买 nike

我正在使用SDWebImage库在我的应用程序中进行图像缓存,但无法获取视网膜图像以正确显示。

我知道在github页面上已经有很多关于下载视网膜图像的讨论,但是并不能真正判断它是否已经完全解决,也没有任何“官方”方法。

因为我的应用是通用的,所以我下载的每个图像都会有4种变化。这是一个例子:

  • iPhone:http://www.DOMAIN.com/my-image~iphone.png
  • iPhone视网膜:http://www.DOMAIN.com/my-image@2x~iphone.png
  • iPad:http://www.DOMAIN.com/my-image~ipad.png
  • iPad Retina:http://www.DOMAIN.com/my-image@2x~ipad.png

  • 什么是下载这些图像并使设备通过SDWebImage使用正确的图像的正确方法?

    我尝试在iPhone 5上下载@ 2x-iphone.png图像,但它显示图像被炸毁并像素化,好像它不知道它是@ 2x图像一样。

    处理多种设备类型的视网膜图像的正确方法是什么?

    最佳答案

    首先,原因-UIImage不知道图像是视网膜图像还是常规图像。调用-[UIImage imageNamed:]时,它将调用具有适当的scale值的-[UIImage imageWithData:scale:]

    您的问题是由SDWebImage中的错误引起的。参见source。如果不存在,请继续操作file a bug

    问题是SDWebImage仅查找@ 2x.png / jpeg文件名,以确定它是否是视网膜图像。您可以继续修复该功能,以检查@ 2x〜iphone.png / @ 2x〜ipad.png文件名。

    另外,如果您不想触摸SDWebImage代码,请在webImageManager:didFinishWithImage:forURL:userInfo:回调中,检查文件名是否为视网膜图像,如果是,请执行以下操作:

    image = [UIImage imageWithCGImage: image.CGImage scale: [UIScreen mainScreen].scale]

    关于ios - iOS SDWebImage-如何正确处理不同设备上的视网膜图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16199492/

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