当前位置:   article > 正文

Node 裁切图片的方法_node裁剪图片

node裁剪图片

        1、安装 jimp

  $ npm install --save jimp

        2、读取本地图片切图

  1. jimp.read('本地图片地址', function (err, img) {
  2. if (err) throw err
  3. img
  4. .crop(x坐标起点, y坐标起点, width最终图片宽度, height最终图片高度)
  5. .write(result)
  6. })

        3、读取http图片,转成buffer,切成buffer数据

  1. const options = {
  2. headers: {
  3. 'User-Agent': 'Mozilla/5.0',
  4. }
  5. }
  6. http.get(imgUrl, options ,(response) => {
  7. let imgData = ''
  8. response.setEncoding('binary')
  9. response.on('data', (chunk) => {
  10. imgData += chunk
  11. })
  12. response.on('end', () => {
  13. const imgBuffer = new Buffer.from(imgData, 'binary')
  14. jimp.read(imgBuffer)
  15. .then((img) => {
  16. const topLeftImage = img.clone() // copy jimp对象进行操作
  17. const topRightImage = img.clone()
  18. const bottomLeftImage = img.clone()
  19. const bottomRightImage = img.clone()
  20. const topLeft = topLeftImage.crop(64, 64, 256, 256)
  21. topLeft.getBuffer('image/jpeg', (_, buf) => {
  22. consoel.log(buf)
  23. })
  24. const topRight = topRightImage.crop(320, 64, 256, 256)
  25. topRight.getBuffer('image/jpeg', (_, buf) => {
  26. consoel.log(buf)
  27. })
  28. const bottomLeft = bottomLeftImage.crop(64, 320, 256, 256)
  29. bottomLeft.getBuffer('image/jpeg', (_, buf) => {
  30. consoel.log(buf)
  31. })
  32. const bottomRight = bottomRightImage.crop(320, 320, 256, 256)
  33. bottomRight.getBuffer('image/jpeg', (_, buf) => {
  34. consoel.log(buf)
  35. })
  36. })
  37. .catch(err => {
  38. console.error(err)
  39. })
  40. })
  41. }).on('error', function (err) {
  42. console.log('出错!', err)
  43. })

        4、graphicsMagick、imageMagick GM

        需要下载工具graphicsMagick | imageMagick并配置环境变量

  $ npm i gm
  1. /**
  2. * 裁剪图片
  3. * @param srcImg 待裁剪的图片路径
  4. * @param destImg 裁剪后的图片路径
  5. * @param width 宽度
  6. * @param height 高度
  7. * @param x x坐标
  8. * @param y y坐标
  9. */
  10. function cropImgHandle(srcImg, destImg, width, height, x, y) {
  11. gm(srcImg).crop(width, height, x, y).write(destImg, function (err) {
  12. if (err) {
  13. return console.log(err)
  14. } else {
  15. console.log('success')
  16. }
  17. })
  18. }

        到此 Node 裁切图片的方法介绍完成。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/831058
推荐阅读
相关标签
  

闽ICP备14008679号