zoukankan      html  css  js  c++  java
  • NodeJs + gm图片缩略图

    我的另一篇文章: Nginx/Apache图片缩略图技术

    gm官网

    1, 软件环境

    nodejs
    npm
    GraphicsMagick or ImageMagick

    貌似ImageMagick在处理大图片时比GraphicsMagick要快很多。

    2, gm的一些关键函数

    //1, 使用方式
    var gm = require('gm');
    gm("图片源路径")
        .resize(200,0)     //设置压缩后的w/h
        .setFormat('JPEG')
        .quality(70)       //设置压缩质量: 0-100
        .strip()
        .autoOrient()
        .write("压缩后保存路径" , 
        function(err){console.log("err: " + err);})
    //2, 获取图片尺寸
    gm("图片路径").size(function(err,value){});
    //3, 获取图片大小
    gm("图片路径").filesize(function(err,value){});```
    

    resize函数, 详细参数
    resize {w}x{h} {%} {@} {!} {<} {>}
    这里需要注意第3个参数

    %
    表示按照width/height的百分比, resize(70, 0, '%')表示宽度为原先的70%

    @
    (×_×)表示不明白,貌似可以限制压缩文件的filesize, gm文档上是这样描述的:
    Use @ to specify the maximum area in pixels of an image.

    **! **
    表示强制width/height, resize(70, 70, '%')表示输出图片尺寸70x70,图片可能变形

    ^
    表示最小width/height, resize(70,70,'^')表示width/height最小不能小于70px

    >
    表示只有源图片的width or height超过指定的width/height时,图片尺寸才会变。
    如:源图片大小:640x640, resize(1000, 1000)最终图片尺寸不变。

    <
    >正好相反,表示只有源图片的width or height小于指定的width/height时,图片尺寸才会变

    gm默认使用GraphicsMagick处理图片,如果你想使用ImageMagick,则:

    var gm = require('gm');
    var imageMagick = gm.subClass({ imageMagick: true })
    //使用方式同上,把上面的gm(..)函数替换成imageMagick(..)函数即可
    
  • 相关阅读:
    只允许在input框输入文字,不能输入数字和其他字符
    阻止用户在input框输入数字
    centos 7.2安装和配置MongoDB
    Python基础
    Python小练习008
    Python小练习007
    Python小练习006
    Python错误集锦
    Python和MongoDB
    MongoDB笔记
  • 原文地址:https://www.cnblogs.com/java-koma/p/4278707.html
Copyright © 2011-2022 走看看