exinnet / tclip Goto Github PK
View Code? Open in Web Editor NEW智能图片裁剪
Home Page: http://www.bo56.com/tclip
智能图片裁剪
Home Page: http://www.bo56.com/tclip
http://p1.pstatp.com/medium/1027/3553448820
clip size: 172 x 120
能否考虑支持文字水印?
putText(dest_image, "xingqiba" , Point(10, dest_image.rows-20), CV_FONT_HERSHEY_SIMPLEX, 0.8f, CV_RGB(255,255,255), 2);
demo
编译一切顺利,运行时
[root@localhost php_ext]# php -m
OpenCV Error: Null pointer (NULL or empty buffer) in cvOpenFileStorage, file /root/opencv-2.4.13/modules/core/src/persistence.cpp, line 2696
terminate called after throwing an instance of 'cv::Exception'
what(): /root/opencv-2.4.13/modules/core/src/persistence.cpp:2696: error: (-27) NULL or empty buffer in function cvOpenFileStorage
已放弃
centos 7 gcc 4.8.5
如题,还有有没有考虑过出nodejs版?
系统环境:
PHP Version 5.4.16
Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64
问题现象:
[root@localhost ~]# php -m | grep 'tclip'
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/tclip.so' - libopencv_videostab.so.2.4: cannot open shared object file: No such file or directory in Unknown on line 0
这个扩展是不是不支持64php?
在mac下
系统信息: 2.6.32-431.23.3.el6.x86_64 #1 SMP Thu Jul 31 17:20:51 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
PHP版本:5.4.25
OpenCV版本:OpenCV-2.4.10.4
gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)报错信息:
configure: error: no result from pkg-config opencv --libs --cflags opencv
错误信息在在百度上google一下,发现了2个比较有用的结果:
跟我的错误一样,不过他们是MAC下的,跟我的情况还不一样,根据两篇文章中的内容找了下:
-I/usr/local/include/opencv -I/usr/local/include /usr/local/lib/libopencv_calib3d.so /usr/local/lib/libopencv_contrib.so /usr/local/lib/libopencv_core.so /usr/local/lib/libopencv_features2d.so /usr/local/lib/libopencv_flann.so /usr/local/lib/libopencv_gpu.so /usr/local/lib/libopencv_highgui.so /usr/local/lib/libopencv_imgproc.so /usr/local/lib/libopencv_legacy.so /usr/local/lib/libopencv_ml.so /usr/local/lib/libopencv_nonfree.so /usr/local/lib/libopencv_objdetect.so /usr/local/lib/libopencv_ocl.so /usr/local/lib/libopencv_photo.so /usr/local/lib/libopencv_stitching.so /usr/local/lib/libopencv_superres.so /usr/local/lib/libopencv_ts.a /usr/local/lib/libopencv_video.so /usr/local/lib/libopencv_videostab.so -lrt -lpthread -lm -ldl
因为源码中对该结果进行循环判断,方便阅读格式化一下,即:
-I/usr/local/include/opencv
-I/usr/local/include
/usr/local/lib/libopencv_calib3d.so
/usr/local/lib/libopencv_contrib.so
/usr/local/lib/libopencv_core.so
/usr/local/lib/libopencv_features2d.so
/usr/local/lib/libopencv_flann.so
/usr/local/lib/libopencv_gpu.so
/usr/local/lib/libopencv_highgui.so
/usr/local/lib/libopencv_imgproc.so
/usr/local/lib/libopencv_legacy.so
/usr/local/lib/libopencv_ml.so
/usr/local/lib/libopencv_nonfree.so
/usr/local/lib/libopencv_objdetect.so
/usr/local/lib/libopencv_ocl.so
/usr/local/lib/libopencv_photo.so
/usr/local/lib/libopencv_stitching.so
/usr/local/lib/libopencv_superres.so
/usr/local/lib/libopencv_ts.a
/usr/local/lib/libopencv_video.so
/usr/local/lib/libopencv_videostab.so
-lrt
-lpthread
-lm
-ldl
OPENCV_FLAGS="`pkg-config opencv --libs --cflags opencv "
opencv_lib_path=""
for i in $OPENCV_FLAGS;do
if test ${i:0:2} = "-I" ;then
PHP_ADD_INCLUDE(${i:2})
elif test ${i:0:2} = "-L" ;then
opencv_lib_path=${i:2}
elif test ${i:${#i}-3} = ".so" ;then
dir_name=`dirname $i`
file_name=${i/$dir_name/}
file_name=${file_name/\/lib/}
file_name=${file_name/.so/}
#PHP_ADD_LIBRARY_WITH_PATH($file_name,$dir_name,TCLIP_SHARED_LIBADD)
PHP_ADD_LIBRARY_WITH_PATH($file_name,$dir_name,TCLIP_SHARED_LIBADD)
elif test ${i:${#i}-6} = ".dylib" ;then
dir_name=`dirname $i`
file_name=${i/$dir_name/}
file_name=${file_name/\/lib/}
file_name=${file_name/.dylib/}
PHP_ADD_LIBRARY_WITH_PATH($file_name,$dir_name,TCLIP_SHARED_LIBADD)
elif test ${i:0:2} = "-l" ;then
file_name=${i:2}
PHP_ADD_LIBRARY_WITH_PATH($file_name,$opencv_lib_path,TCLIP_SHARED_LIBADD)
else
AC_MSG_ERROR([no result from pkg-config opencv --libs --cflags opencv])
fi
done
很明显是/usr/local/lib/libopencv_ts.a
导致了该错误,实在太菜了,不懂C语言,也不晓得这个是做什么用的,就参考以上2篇文章
将
OPENCV_FLAGS="`pkg-config opencv --libs --cflags opencv` "
中pkg-config opencv --libs --cflags opencv
修改为该命令执行结果,并移除/usr/local/lib/libopencv_ts.a
编译就通过了
来反馈下,海龙大神抽空看下是什么问题导致的。
1、不支持apache,编译安装好tclip扩展后apache重启时就崩溃了,关闭tclip扩展后恢复正常。(没办法,只好又重新弄了个nginx的环境来试用,成功了!感觉非常好。)
2、水印不支持中文,中文乱码
3、没有从底层判断是图片处理完成后的存放目录是否存在或者因为权限导致的读写问题,虽然能够通过php来从上层逻辑处理,但更为理想的处理方式个人认为还是应该在tclip中进行处理,建议作者能够考虑。
Warning: tclip(): fail to load image from www.baidu.com/img/bd_logo1.png
bool(false)
原因出自:
image = imread( source_path );
if( !image.data ){
php_error_docref(NULL TSRMLS_CC, E_WARNING, "fail to load image from %s", source_path);
RETURN_FALSE;
}
解决方法:
imread 这个函数而言,Debug版的库只能用于Debug版的程序,Release版的库只能用于Release 版程序。
英文:
when I compiled tclip extention for php7.2, An error occured that "dose not find opencv.pc", but I'm confirmed the opencv packege by command "pkg-config opencv --libs". It says :
[root@localhost php_ext]# pkg-config opencv --libs -L/usr/local/lib64 -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_freetype -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core
so how can I solve this problem ?
汉语:
当我编译安装Tclip扩展的时候,屏幕上显示找不到opencv.pc,但是事实上我已经安装了opencv版本是3.4.1 (题外话,除了tclip我也安装了另外一个基于opencv的扩展phpopencv),不知道为什么tclip找不到opencv.pc 希望知道的朋友帮忙解决一下这个问题。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.