rych/thumbnail-finder

用于从URL发现缩略图的简单库。

v0.1.0 2014-02-01 00:03 UTC

This package is auto-updated.

Last update: 2024-09-23 11:24:21 UTC


README

这是一个快速搭建的项目,作为更大项目的一部分。在编写内容聚合器时,我需要一种发现链接内容缩略图的方法。

此库只发现“最佳”图片URL。实际上下载和裁剪/调整大小/其他图像处理不在范围之内。

它如何工作?

库简单扫描HTML文档,寻找适合用作缩略图的图片,并返回该图片的URL。适合的图片通过OpenGraph元数据、较老的Facebook image_src微格式,以及通过爬取文档中的img标签并使用简单的算法找到“最有趣的”图片来发现。

当库必须求助于爬取链接的图片时,它只下载足够的每个图片以提取图像宽度和高度。库丢弃非常小的图像以及宽大于高或高大于宽的图像。剩余的图像根据面积进行比较,并返回最大的图像。

此库目前使用Symfony的Dom Crawler和CSS选择器组件来实现其魔法。还需要PHP的Imagick扩展从部分图像下载中提取宽度和高度。

使用方法

非常简单

<?php

$tf = new \Rych\ThumbnailFinder\ThumbnailFinder();
$thumbUrl = $tf->findThumbnail('http://www.imdb.com/title/tt0117500/');

// Outputs the image URL or NULL
//   (though in this case you'll get a link to a movie poster for "The Rock").
var_dump($thumbUrl);

安装

Composer

composer require rych/thumbnail-finder:0.1.*

待办事项

这对我的目的来说很有效,但总有改进的空间。

  • 首先,更好的错误检测和记录会很好。
  • HTML和图像下载可能需要一些工作,但我不想添加大型HTTP客户端库依赖。目前我仅使用fopen()file_get_contents()。我是一个如此糟糕的人。