【问题标题】:Swift, image from URL - Good quality on Ipad simulator, but very bad quality on Iphone 4s simulatorSwift,来自 URL 的图像 - Ipad 模拟器上的质量很好,但 Iphone 4s 模拟器上的质量很差
【发布时间】:2015-07-10 19:44:55
【问题描述】:

我对这件事感到沮丧。想了好几天也没用。

这个问题很清楚。我有一个固定宽度和高度 65x65px 的图像视图。我碰巧在某些网络服务器上有一个相同尺寸(65x65px)的图像。

我正在做的是将 URL 的图像加载到图像视图中。 (将在下面附上代码)。

一切都很好,除了图像质量很差,我不知道为什么。尝试了各种方法,但似乎无法弄清楚。

会注意到从图像集(本地)加载的图像质量非常好(它们没有问题。只有来自 URL 的图像有)

2 种行为引起了我的注意:

1) 如果我制作了一个宽度和高度为:65px 的按钮,并将我从 URL 获取的图像作为按钮的背景。它的质量是完美的。

2) 如果我使用更大的模拟器,质量会越来越好。在 Iphone 6 plus 模拟器上它是中等的(仍然有点糟糕),但在 Ipad/Ipad2 上几乎完美

我用来从 URL 获取图像并将其加载到 ImageView 的代码是:

let imgUrl = NSURL(string: "http://imageurl")
let data = NSData(contentsOfURL: imgUrl!)
cell.myImageView.image = UIImage(data: data!)

我尝试过各种绝望的尝试,比如尝试使用不在表格单元格中的图像视图。不同的图像,不同的尺寸,甚至将图像设置为有效的背景,但我不相信这是解决方案......

我开始认为这是一个模拟器问题.. 但我不想发布有这样问题的应用程序(如果它不是模拟器问题)

另一件事可能值得一提,但我怀疑。我正在使用具有远程访问权限的 mac。从来没有在我面前的mac上测试过这个,但我怀疑这是否相关,因为其他本地图像质量很好,大型模拟器也有很好的质量。

我们将非常感谢您对此事的任何意见。

问候。

编辑:我正在使用 xCode 6.3.x

编辑:经过进一步调查,我开始猜测这是缩放/缩放问题。我认为问题是,当我打开 Iphone4s 时,图像只是缩放(整个模拟器窗口被放大/缩放以填满屏幕)。我检查了 Iphone4s 和 Ipad2 模拟器上的“比例”,两者都是 100%。然而,Ipad2 上的相同图像比 Iphone4S 上的相同图像(在我的屏幕上)小两倍,尽管两者的宽度和高度均为 65 像素。所以我想这是一个模拟器问题?我怎么能这么肯定呢?甚至知道哪个版本是正确的。

编辑: 问题似乎如上所述。 Iphone4S 没有显示图像的实际大小,就像放大了一样。您可以阅读下面的 cmets 了解更多信息。 remus建议的测试结果(非常感谢您的帮助先生)

【问题讨论】:

  • 毫无疑问,您已经在下面看到了我的回答——现在您的编辑,很难确定发生了什么。您可以在您的问题中添加各种模拟器的屏幕截图吗?它们的规模确实不同。我建议您通过在 Mobile Safari 在每个设备上 中加载图像来进行测试。
  • 不错,会检查一下,如果我什么都不能得出结论,我会截屏并上传到我的问题。谢谢
  • 我相信你的测试已经决定了。我正在上传屏幕截图。事实上,两种设备上移动浏览器中的图像是不同的。 Iphone4s 质量不好。 (看起来像放大了)
  • 您对此事的最终判断将不胜感激。您可以将其作为答案发布(或更新您现有的答案,以便我批准)。再次感谢您的帮助和您的测试方法建议。
  • 您的图片主机支持 SSL 吗?如果是这样,您可以使用 https:// 重试吗?

标签: ios objective-c iphone swift xcode6


【解决方案1】:

您在哪个国家/地区/您使用什么服务提供商?一些服务提供商会根据用户代理截取图形并降低其质量。尝试使用 SSL (https://) 网址来防止这种情况发生。

您可以通过在所有设备上的 Safari 中加载图像 url 并进行比较来测试这个理论。

【讨论】:

  • 嗨 Remus,首先我必须说非常感谢您的回复。感谢您抽出宝贵时间提供意见。但是,当我在远程 Mac 上的浏览​​器(safari)中打开图像时,我检查了这一点并且质量正常。但是,我通过第二次编辑更新了我的问题,我认为这非常接近于解决问题。
【解决方案2】:

我相信这一定是由于 iPhone 4S 上的视网膜显示屏。 iPad 2 没有 Retina 显示屏,因此图像以实际比例显示。

在 iPhone 4(及更高版本)上,视网膜显示屏的密度是原来的两倍,因此需要将图像缩放 2 倍才能以相同的尺寸显示。

尝试向 iPhone 提供两倍大的图像,您应该会看到更好的结果。

【讨论】:

  • 嗨,Atreat,即使在看到我通过模拟器的 safari 浏览器上传的 2 张图片后,您认为这可能是问题所在?我的意思是如果你说的是对的。我必须上传我在我的网站中使用的所有图片,例如将尺寸翻倍(并最小化),以便在苹果手机中以良好的质量看到它们?
  • 当您使用 iPhone 6 模拟器或模拟任何其他具有视网膜显示屏的设备时,您会看到什么?
猜你喜欢
  • 1970-01-01
  • 2021-05-03
  • 2021-06-30
  • 2019-11-19
  • 1970-01-01
  • 2016-05-25
  • 2011-04-04
  • 1970-01-01
  • 2017-02-06
相关资源
最近更新 更多