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(..)函数即可
    
  • 相关阅读:
    JS基础_函数的简介
    frp 使用入门
    树莓派开启smb
    python 反射调用
    VIDEOIO ERROR: V4L: can't open camera by index 0 for raspberryPi
    face_recognition 人脸识别报错
    安装FFMpeg CentOS 7
    Centos 7 smb 安装使用
    ImportError: libQtTest.so.4: cannot open shared
    Raspberry Pi 3b+ 配置摄像头
  • 原文地址:https://www.cnblogs.com/java-koma/p/4278707.html
Copyright © 2011-2022 走看看