在Swift中加载网站缩略图图片?

3

大家好!

快速问一下 - 有人知道如何在swift中加载缩略图(当您复制并粘贴链接到某个地方并且您看到附加的小图像时出现的图像)吗?

我知道加载图像的代码是:

let url = NSURL(string: image.URL=)
let data = NSData(contentsOfURL: url!) //only loads if the entire webpage is just an image
imageURL.image = UIImage(data: data!)

但这不会帮助加载缩略图。我相信网站使用元标签,但我不是100%确定。
提前感谢!
1个回答

1

这里有几件事情...

当你复制并粘贴某个链接时,会出现一个小图像附加在链接上

关于

某个地方

我想你指的是像Facebook或Twitter这样的服务。

回答你的问题,网站图片的URL在meta标签中声明。不同的服务使用不同的标签。

Facebook使用

<meta property="og:image" content="http://example.com/image.jpg" />

Twitter使用
<meta name="twitter:image" content="http://www.example.com/image.jpg">

这些URL是来自于哪里。现在,所谓的“缩略图”实际上是由您使用的平台创建的,通过缩小上述URL中加载的图像大小而创建。
因此,回答您的问题,没有魔法公式可以从网站加载缩略图。如果您想从网站内容获取小缩略图图像,您首先需要“爬行”元标记,查找一个给您完整大小图像的标记。然后,您将不得不加载它,然后自己调整大小。
至于调整大小的代码,NSHipster为您提供了全套选项 http://nshipster.com/image-resizing/
例如:
let size = CGSizeApplyAffineTransform(image.size, CGAffineTransformMakeScale(0.5, 0.5))
let hasAlpha = false
let scale: CGFloat = 0.0 // Automatically use scale factor of main screen

UIGraphicsBeginImageContextWithOptions(size, !hasAlpha, scale)
image.drawInRect(CGRect(origin: CGPointZero, size: size))

let scaledImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

非常感谢您的回复,Juan!但是您知道如何提取元图像吗?或者至少在文档中爬取元图像吗? - Chris Jones
1
你需要先加载HTML内容。可以使用以下代码:var url = NSURL(string: "http://www.example.com") var htmlData: NSData = NSData(contentsOfURL: url) var html: String = NSString(data:htmlData, encoding:NSUTF8StringEncoding)要解析标签,可以使用以下代码:https://github.com/tid-kijyun/Swift-HTML-Parser - Juan Carlos Ospina Gonzalez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接