axios 将RemoveBG数据结果解析为内部HTML元素(例如:img.src)

imzjd6km  于 2023-02-04  发布在  iOS
关注(0)|答案(1)|浏览(178)

我尝试Remove.bg在一个普通的JS文件中使用www.example.com API,目的是将图像URL作为参数传递,然后将生成的图像输出到HTML主体中的IMG标记。
不幸的是,该项目没有提供此类用法的文档,因为results.data旨在由FileSystem的writeFileSync使用,而我运行的是静态网站,因此无法使用它。
是否有任何方法可以解析所描述的结果,并可能将IMG标记的src设置为最终的、去除背景的图像?
下面是一个到目前为止还没有返回响应的示例代码。提前感谢您的时间!

function removebackground(){    
            let formData = {
                "image_file_b64": "",
                "image_url": "https://meta.hapeprime.com/7386.png",
                "size": "preview",
                "type": "auto",
                "type_level": "1",
                "format": "auto",
                "roi": "0% 0% 100% 100%",
                "crop": false,
                "crop_margin": "0",
                "scale": "original",
                "position": "original",
                "channels": "rgba",
                "add_shadow": false,
                "semitransparency": true,
                "bg_color": "",
                "bg_image_url": ""
                };

            axios({
            method: 'post',
            url: 'https://api.remove.bg/v1.0/removebg',
            data: formData,
            responseType: 'arraybuffer',
            headers: {
                
                'X-Api-Key': 'API_KEY',
            },
            encoding: null
            })
            .then((response) => {
            if(response.status != 200) return console.error('Error:', response.status, response.statusText);
            console.log(response);
            
            })
            .catch((error) => {
                return console.error('Request failed:', error);
            });
        }
wqsoz72f

wqsoz72f1#

这取决于API的响应类型。
如果它类似于https://clipdrop.co/apis/docs/remove-background API,它将以blob响应,使用它,您可以使用URL.createObjectURL(response)创建有效的src路径:你可以在这里找到一个例子:https://github.com/initml/clipdrop-api-samples/blob/main/web/remove-objects-tfjs/components/Result.tsx#L63

相关问题