webp的php扩展编写

  • 生成框架
  •         http://blog.csdn.net/heiyeshuwu/article/details/3453854 文章比较详细,不细说
  • 代码编写
  •         libweb( https://developers.google.com/speed/webp/)中example部分提供了cwebp的源码,只是输入输出为文件句柄,尝试修改输入输出参数为内存即可。
            不细说
  • 编译
  • 依赖环境:
    • libwebp-0.2.0+
    • libjpeg-8+
    • libpng

    下面说下编译过程中遇到的几个疑问:
    1. 如何在编译时引用第三方库及头文件?
    答: http://www.59n.net/60978.html
    编译安装依赖Makefile文件,该文件由configure文件生成,configure又继承自config.m4文件。故需要修改config.m4文件
    /*
    vi config.m4
    在config.m4中添加
    */
    PHP_ADD_INCLUDE(/usr/local/include)
    PHP_ADD_LIBRARY_WITH_PATH(jpeg, /usr/local/lib, WEBP_SHARED_LIBADD)
    PHP_ADD_LIBRARY_WITH_PATH(png, /usr/local/lib, WEBP_SHARED_LIBADD)
    PHP_ADD_LIBRARY_WITH_PATH(webp, /usr/local/lib, WEBP_SHARED_LIBADD)
    PHP_SUBST(WEBP_SHARED_LIBADD)
    

    2. 依赖多个.c文件,如何设置?
    答:仍需修改config.m4文件
    PHP_NEW_EXTENSION(webp, webp.c cwebp.c, $ext_shared)//多个.c文件以空格分隔
    

    3. 需要条件编译,如何设置?
    答:修改config.m4文件
    export CPPFLAGS="$CPPFLAGS -DWEBP_HAVE_JPEG -DWEBP_HAVE_PNG"
    

    猜你喜欢

    转载自godlovesdog.iteye.com/blog/1817862
    今日推荐