首页 > 解决方案 > 如何使用 gm 模块在不保存图像的情况下获取图像流以将流数据发布到另一台服务器

问题描述

我正在尝试获取裁剪图像流以发送到另一个只接受帖子流的服务(API)。但是,我无法从 gm 模块获取流。我试过以下

gm(main.png')
            

    .crop(width, height/6, 0, (height/6)*1)
                    .toBuffer('webp', (err, buffer) => {
                        const { Readable } = require('stream');

                        const readableInstanceStream = new Readable({
                            read() {
                                this.push(binary);
                                this.push(null);
                            }
                        });

                        console.log(readableInstanceStream)
                    });

但是,这并没有给缓冲区。所以,请帮我获取裁剪图像的流。

标签: node.js

解决方案


使用stream(),我们可以获得图像的流并且可以分配给变量。以下是示例代码

var cropped_image = gm(main.png')
                .crop(width, height/6, 0, (height/6)*1)
                .stream('png');

推荐阅读