Tclip是一个智能图片裁剪程序。目前已经开源,由我维护。
Tclip的定位是智能图片裁剪,即裁剪后的图片会把图片中的重要区域保留。详细说明,请看日志《tclip人脸识别图片裁剪》。演示地址:http://demo.bo56.com
Tclip提供了php扩展方式使用。具体安装过程分为两步。第一步是安装opencv2。第二步是安装php扩展。
安装过程中有任何疑问可以加qq 179815944咨询。
安装opencv2
tclip中的人脸识别使用了opencv。因此需要先安装opencv。
1. 安装opencv的依赖包。 gtk+ gtk+-devel pkgconfig libpng zlib libjpeg libtiff cmake
如果是centos可以执行如下命令进行安装依赖包:
yum install gtk+ gtk+-devel pkgconfig libpng zlib libjpeg libtiff cmake
2. 下载opencv2的源码。
opencv的源码下载地址:http://www.bo56.com/download/opencv2.tar.bz2
3. 编译安装opencv2
解压源码压缩文件,可以使用命令 tar -xvf opencv2.tar.bz2
cd 进入安装包文件夹内。
然后依次执行如下命令:
cmake CMakeLists.txt
make && make install
4. 设相关环境变量
vim /etc/profile
在 unset i 前增加
export PKG_CONFIG_PATH=/usr/lib/pkgconfig/:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
保持退出后,执行如下命令:
source /etc/profile
echo “/usr/local/lib/” > /etc/ld.so.conf.d/opencv.conf
ldconfig
至此,opencv2安装完毕。
安装tclip的php扩展
1. 下载tclip的源码
源码下载地址如下:
http://code.taobao.org/p/tclip/src/
https://github.com/exinnet/tclip
2. 进入源码中的php_ext目录。 cd php_ext
3. 执行phpize命令。
如果执行这个命令的时候,提示命令找不到“-bash: phpize: command not found”。你需要找到php的安装目录,使用完整路径执行命令。
如,我的php安装目录是/home/fpm-php/。 我的执行命令完整路径就是 /home/fpm-php/bin/phpize
4. 执行./configure命令。
执行命令时,如果提示“configure: error: Cannot find php-config. Please use --with-php-config=PATH”。那就需要指定php-config的路径。这个文件和phpize在同一个目录。如,./configure --with-php-config=/home/fpm-php/bin/php-config
5. 依次执行如下命令:
make && make install
6. 配置php.ini,开启tclip模块
在php.ini中增加如下配置:
[Tclip]
extension=tclip.so
tclip.face_config_path=
如果,在安装opencv2时,安装路径不是默认安装路径。
即安装后,没有这个文件,/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml,
那么就需要在php.ini中配置tclip.face_config_path项。
tclip.face_config_path的值就是haarcascade_frontalface_alt.xml文件的绝对路径。
tclip.face_config_path=haarcascade_frontalface_alt.xml文件的绝对路径
7. 配置文件php.ini修改完后,可以使用 php -m 查看扩展是否开启。
执行命令: php -m
如果在输出的内容中有tclip,说明模块已经正常开启。
8. 重启php,使tclip的php模块生效。
使用方法说明
在php中图片裁剪使用格式:
tclip(文件原路径,裁剪后的图片保存路径,裁剪后的图片宽度,裁剪后的图片高度)
示例:
$source_file = “/tmp/a.jpg”;
$dest_file = “/www/a_dest.jpg”;
$width = 400;
$height = 200;
$ret =tclip($source_file, $dest_file, $width, $height);
执行成功$ret 为true,否则为false
技术交流
原文链接:安装tclip的php扩展,转载请注明来源!
请问下,如何全局设置啊?总算是安装成功了。你这篇,比taocode上写的详细的多啊。然后如何能远程调取啊?我家 图 和 程序 放在不同的两个空间
修改 /ect/rofile 执行 source /ect/profile 就报错了~~~root@:/data/ # PKG_CONFIG_PATH: Undefined variable.
你是不是pkconfig没安装成功?执行下如下的命令:看是否有类似的内容输出:[root@AY1211050948485337005 ~]# rpm -ql pkgconfig /usr/bin/pkg-config/usr/lib/pkgconfig/usr/share/aclocal/pkg.m4/usr/share/man/man1/pkg-config.1.gz/usr/share/pkgconfig
你好,我在FREEBSD安装后,部分图片失败,我看你的DEMO也是报错,能否解决?Warning: tclip(): /usr/ports/graphics/opencv/work/opencv-2.4.7/modules/highgui/src/loadsave.cpp:275: error: (-2) could not find a writer for the specified extension in function imwrite_ in /data/yule/tclip/test.php on line 6bool(false)/data/yule/tclip/test.jpgOpenCV Error: Unspecified error (could not find a writer for the specified extension) in imwrite_, file /usr/ports/graphics/opencv/work/opencv-2.4.7/modules/highgui/src/loadsave.cpp, line 275PHP Warning: tclip(): /usr/ports/graphics/opencv/work/opencv-2.4.7/modules/highgui/src/loadsave.cpp:275: error: (-2) could not find a writer for the specified extension in function imwrite_ in /data/yule/tclip/test.php on line 6bool(false)
你图片的格式是?
感谢龙哥ps:执行php -m之前,应该重启一下php-fpm吧?
不需要。