使用Node.js怎么压缩图片?方法介绍


当前第2页 返回上一页

gzipImage ? 'putStream' : 'putFile',如果我们是获取到buffer就使用formUploader.putStream,否则只需要formUploader.putFile上传

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

export const upImageToQiniu = async (

  loaclFile: string,

  cb: { (res: any): void; (arg0: any): void },

  upConfig: QiNiuUpConfig

) => {

  const config = new qiniu.conf.Config()

  const formUploader = new qiniu.form_up.FormUploader(config)

  const putExtra = new qiniu.form_up.PutExtra()

  const token = getToken(upConfig.accessKey, upConfig.secretKey, upConfig.scope)

  let gzipImage

  if (upConfig.gzip) {

    gzipImage = await imageGzip(loaclFile)

  }

  // 获取当前时间戳

  var key = new Date().getTime()

  // 上传调用方法

  const uploadFnName = gzipImage ? 'putStream' : 'putFile'

  // 上传内容

  const uploadItem = gzipImage ? bufferToStream(gzipImage) : loaclFile

  // 七牛上传

  formUploader[uploadFnName](

    token,

    key,

    uploadItem,

    putExtra,

    function (respErr: any, respBody: any, respInfo: any) {

      if (respErr) {

        throw respErr

      }

 

      if (respInfo.statusCode === 200) {

        const url = upConfig.domain + '/' + respBody.key

        cb(url)

      }

    }

  )

}

现在我们可以实验一下效果:

在电脑中选择一张png图片:

2.png

用我们的插件上传后,打开链接看看:

3.png

图片压缩成功啦~~

三、解决遗留bug

在使用时发现了一个问题就是有时候编辑器会突然变卡,后来找到原因是在链接中有空格时会一直卡住,之后hover其他内容也都没有响应。于是就将hover的字符串空格去掉再执行后面的获取链接方法可以了:

1

2

// 当前行的文本内容

const currentLineText = document.lineAt(position).text.replace(/\s+/g, "")

四、结束

因为在hover预览图片时为防止有些图片过大加载慢,加了七牛的裁剪参数,所以可能其他类型的图片链接会不能预览,后面会慢慢解决哒^ ^。我已经将插件源码上传至github,欢迎大家点个start^ ^。如果对插件还有更好的想法也可以互相交流。

更多编程相关知识,请访问:编程入门!!

以上就是使用Node.js怎么压缩图片?方法介绍的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

一些调试 node.js 程序的快捷方法

node.js中lts和current有什么区别

使用node.js “debug”模块避免日志污染应用程序日志

node.js和javascript区别是什么

避免node.js模块日志污染程序日志的方法介绍

深入研究node.js中的日志信息

node.js进行调试的几种方法介绍

node.js使用multer中间件上传文件

详解node.js异步迭代器及其使用方法

node批量下载文件到本地的方法介绍(附代码)

更多相关阅读请进入《node.js》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...