nodejs对图片进行缩放等操作的实现--node.js gm模块的使用都程.doc_第1页
nodejs对图片进行缩放等操作的实现--node.js gm模块的使用都程.doc_第2页
nodejs对图片进行缩放等操作的实现--node.js gm模块的使用都程.doc_第3页
nodejs对图片进行缩放等操作的实现--node.js gm模块的使用都程.doc_第4页
nodejs对图片进行缩放等操作的实现--node.js gm模块的使用都程.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

node.js 对图片进行缩放等操作node.js对图片进行操作是要安装gm模块,而gm模块是通过调用系统的ImageMagick来工作的,所以,首先系统要先安装ImageMagickImageMagickr 的下载地址:/download//download/delegates/安半步骤(说明,有些文件版不存在了,就用更新的版,从下载网复制文件名替):wget /download/delegates/zlib-1.2.8.tar.gzwget /download/delegates/libpng-1.6.4.tar.gzwget /download/delegates/freetype-2.4.10.tar.gzwget /download/delegates/jpegsrc.v9.tar.gzwget /download/ImageMagick-6.8.7-6.tar.gztar zxvf zlib-1.2.8.tar.gzcd zlib-1.2.8./configuremakemake installcd ./tar zxvf libpng-1.6.4.tar.gzcd libpng-1.6.4cd scripts/mv makefile.linux ./makefilecd .makemake installcd ./tar zxvf freetype-2.4.10.tar.gzcd freetype-2.4.10./configuremakemake installcd ./tar zxvf jpegsrc.v9.tar.gzcd jpeg-9/./configure -enable-sharedmakemake testmake installcd ./tar zxvf ImageMagick-6.8.7-6.tar.gz cd ImageMagick-6.8.7-6/./configure -prefix=/wp-content/local/imagemagick make make install下面是添加php支持的wget /get/imagick-3.2.0b2.tgztar -xzvf imagick-3.2.0b2/wp-content/local/php/bin/phpize /configure -with-php-config=/wp-content/local/php/bin/php-config -with-imagick=/wp-content/local/imagemagick make make install 添加环境变量vim /etc/profile修改/etc/profile文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码,请记住/wp-content/local/imagemagick/bin这个路径PATH=$PATH:/usr/local/webserver/php/bin:/usr/local/webserver/mysql/bin:/wp-content/local/imagemagick/binexport PATH最后:执行 命令source /etc/profile或 执行点命令 ./profile使其修改生效,执行完可通过echo $PATH命令查看是否添加成功。以上已安装完成,可以用以下命测试一下是否成功#convert-resize100x100src.jpgdes.jpg 可能出现的错误有1、convert 命令不存在,那就有可能环境变量没有配置好,未生效,或对于早前登录的用户没有生效。2、如果出现error while loading shared libraries: xxx.so.x错误的原因和解决办法一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如:tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可.另外一个原因就是已经安装了该共享库, 但执行需要调用该共享库的程序的时候, 程序按照默认共享库路径找不到该共享库文件.所以安装共享库后要注意共享库路径设置问题, 如下:1) 如果共享库文件安装到了/lib或/usr/lib目录下, 那么需执行一下ldconfig命令ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表.2) 如果共享库文件安装到了/usr/local/lib(很多开源的共享库都会安装到该目录下)或其它非/lib或/usr/lib目录下, 那么在执行ldconfig命令前, 还要把新共享库目录加入到共享库配置文件/etc/ld.so.conf中, 如下:#cat /etc/ld.so.confinclude ld.so.conf.d/*.conf#echo /usr/local/lib /etc/ld.so.conf#ldconfig3) 如果共享库文件安装到了其它非/lib或/usr/lib 目录下, 但是又不想在/etc/ld.so.conf中加路径(或者是没有权限加路径). 那可以export一个全局变量LD_LIBRARY_PATH, 然后运行程序的时候就会去这个目录中找共享库.LD_LIBRARY_PATH的意思是告诉loader在哪些目录中可以找到共享库. 可以设置多个搜索目录, 这些目录之间用冒号分隔开. 比如安装了一个mysql到/usr/local/mysql目录下, 其中有一大堆库文件在/usr/local/mysql/lib下面, 则可以在.bashrc或.bash_profile或shell里加入以下语句即可:export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH一般来讲这只是一种临时的解决方案, 在没有权限或临时需要的时候使用.4)如果程序需要的库文件比系统目前存在的村文件版本低,可以做一个链接比如:error while loading shared libraries: libncurses.so.4: cannot open sharedobject file: No such file or directoryls /usr/lib/libncu*/usr/lib/libncurses.a /usr/lib/libncurses.so.5/usr/lib/libncurses.so/usr/lib/libncurses.so.5.3可见虽然没有libncurses.so.4,但有libncurses.so.5,是可以向下兼容的建一个链接就好了ln -s/usr/lib/libncurses.so.5.3/usr/lib/libncurses.so.4出处:/sahusoft/article/details/7388617/shujukuyingyong/20100407/26958.html其它Imagemagick命令ImageMagick最方便的地方就是可以在命令行模式下运行,结合shell脚本,我们可以进行非常复杂的图片操作,下面举几个简单的例子进行抛砖引玉。(1) 图片格式转换:比如把目录下所有的jpeg格式的图片转化为png的,就可以如下进行操作:cppview plaincopyprint?1. forpicin*.jpg2. do3. convert$picbasename$pic.jpg.png4. donefor pic in *.jpgdoconvert $pic basename $pic .jpg.pngdone(2) 压缩图片大小:一般来说,在web应用中,如果图片很多或者很大,就需要考虑对图片大小进行适当的压缩,常用的压缩办法有:减小图片尺寸(图片缩放),调节压缩比或者去除图片中的多余信息。这些操作使用ImageMagick就可以轻易的完成:cppview plaincopyprint?1. convert-resize100x100src.jpgdes.jpgconvert -resize 100x100 src.jpg des.jpg把src.jpg的图片大小调整为100x100,convert命令在调整图片高度和宽度的过程中会进行等比压缩,也就是说图片des.jpg的高宽比将会和src.jpg一致。cppview plaincopyprint?1. convert-quality75%src.jpgdes.jpgconvert -quality 75% src.jpg des.jpg压缩比越低,图片的大小越小,一般来说75%是最佳的压缩比,在这种情况下肉眼是很难看出图片的失真。cppview plaincopyprint?1. convert-stripsrc.jpgdest.jpgconvert -strip src.jpg dest.jpg数码相机在拍照的时候会在生成的图片中留下一些额外的信息,这些信息往往是没用的,可以使用convert strip命令去除。以上三种操作可以合在一起进行:cppview plaincopyprint?1. convert-resize100x100strip-quality75%src.jpgdest.jpgconvert -resize 100x100 strip -quality 75% src.jpg dest.jpgImageMagick功能十分强大,上面只是抛砖引玉,有兴趣的同学可以去挖掘其更多的功能和用法。node.js代码引用首先安装gm模块#npm install gm代码中:var gm = require(gm).subClass( imageMagick: true );var base64Data_face = req.body.faceimg.substr(22, req.body.faceimg.length - 22); base64Data_face = base64Data_face.replace(/s/g,+); var dataBuffer_face = new Buffer(base64Data_face, base64);/直接将接收到的buffer压缩转成图片并保存为文件new_pathgm(dataBuffer_face, image.jpg) .resize(200, 200, !) .write(new_path, function (err) if (err) cons

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论