php生成网页缩略图接口,php生成网站缩略图

本文介绍了如何利用PHP作为接口,结合Linux、C++、WebKit和Redis队列来实现网站缩略图的生成。首先,通过PHP调用C++编写的Linux程序,利用WebKit渲染网页并保存为全幅缩略图,再借助EvaThumber进行尺寸调整。此外,还详细阐述了安装和配置过程,包括CentOS系统、Qt库、Redis及中文支持的安装。此功能虽然资源消耗大,但展示了PHP在处理此类任务的可能性。
摘要由CSDN通过智能技术生成

我要明确的回答使用php生成网站缩略图是不可能完成的任务。

那为什么我标题还要用“php生成网站缩略图”,那是因为我们可以用php作为接口,通过页面传入参数来调用后台生成网页的缩略图。

由于太费资源这个功能已经关闭了,但是原理还是如下描述。

比如这个样子:http://thumb.quancha.cn/api.php?q=www.redis.com.cn

你就能得到中通速递单号查询 www.redis.com.cn的缩略图

很简单吧。把www.redis.com.cn换成你需要的网址就可以了,第一次生成的时候需要等待十几秒,然后刷新页面就可以了。

上面只是个使用实例,那最关键的部分是如何实现这个实例。

其中用到的技术包括php+redis的队列,php缩略图工具,c++ linux网页缩略图程序(使用webkit)。

要实现这个缩略图功能需要你有一台装有linux系统vps(本文使用的是centos6.2),如果单单一个虚拟目录的网站是实现不了的。

centos安装有点麻烦,不过按照以下步骤即可:

wget https://github.com/raphaelcruzeiro/webimage/archive/master.zip

unzip master

cd webimage-master/

vim snapshot.cpp

1

2

3

4wgethttps://github.com/raphaelcruzeiro/webimage/archive/master.zip

unzipmaster

cdwebimage-master/

vimsnapshot.cpp

注释掉snapshot.cpp中缩略图项,默认会生成一张大一张小的缩略图

/*outputFilename->chop(4);

QString thumbFilename = QString("%1_thumb.jpg").arg(*outputFilename);

QSize thumbSize((minWidth / 100) * 50, (height / 100) * 50);

pix =pix.scaled(thumbSize, Qt::KeepAspectRatio);

if (pix.save(thumbFilename, "JPEG", quality)) {

qDebug() << "Saved thumb.";

}*/

1

2

3

4

5

6

7

8

9/*outputFilename->chop(4);

QString thumbFilename = QString("%1_thumb.jpg").arg(*outputFilename);

QSize thumbSize((minWidth / 100) * 50, (height / 100) * 50);

pix =pix.scaled(thumbSize, Qt::KeepAspectRatio);

if (pix.save(thumbFilename, "JPEG", quality)) {

qDebug() << "Saved thumb.";

}*/

yum install Xvfb

yum install xorg-x11-fonts*

vim /etc/yum.repos.d/atrpms-testing.repo

增加如下内容

[atrpms-testing]

name=EL $releasever - $basearch - ATrpms

baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/testing

gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms

gpgcheck=1

enabled=0

rpm --import http://packages.atrpms.net/RPM-GPG-KEY.atrpms

yum --enablerepo=atrpms-testing install qt47-webkit-devel qt47-devel sqlite

vim /etc/profile.d/qt.sh

export PATH=$PATH:/usr/lib/qt47/bin

export QMAKE=/usr/lib/qt47/bin/qmake-qt47

qmake webimage.pro

make all Makefile

xvfb-run --server-args="-screen 0, 1024x768x24" ./webimage http://www.redis.com.cn output.jpg 1024

就可以以1024分辨率生成一张网站的全幅缩略图。如果你的缩略图有中文方块乱码,则需要安装中文支持

yum groupinstall chinese-support

如果你的机器上有图形化界面也可以不用安装xvfb。

2.安装缩略图工具

因为webimage生成的是一整张缩略图,需要使用缩略图工具来生成合适的大小,EvaThumber 是一个不错的工具。

EvaThumber有详细的网页介绍http://avnpc.com/pages/evathumber

照着做就行了,这里只说一点,EvaThumber使用Travis CI进行持续集成,需要先给php安装composer

$ curl -sS https://getcomposer.org/installer | php

$ sudo mv composer.phar /usr/local/bin/composer

3.安装redis

4.前台php代码

...待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值