rych / thumbnail-finder
用于从URL发现缩略图的简单库。
v0.1.0
2014-02-01 00:03 UTC
Requires
- php: >= 5.3.0
- ext-imagick: *
- symfony/css-selector: 2.4.*
- symfony/dom-crawler: 2.4.*
Requires (Dev)
- phpunit/phpunit: 3.7.*
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()
。我是一个如此糟糕的人。