node把本地图片转base64

javascript 复制代码
function fileToGenerativePart(path, mimeType) {
  return {
    inlineData: {
      data: Buffer.from(fs.readFileSync(path)).toString('base64'),
      mimeType,
    },
  }
}

     let imageParts = []
      if (Array.isArray(visionImgList) && visionImgList.length > 0) {
        visionImgList = visionImgList
          .filter((item) => item.url)
          .map((item) => item.url)
        let list = visionImgList
        let promiseListForDownload = list.map((item) => {
          return new Promise((resolve) => {
            let sdUrl = item
            let urlObj = new URL(sdUrl)
            const client = urlObj.protocol == 'https:' ? https : http
            client.get(sdUrl, async (httpRes) => {
              let fileName = Date.now()
              let endIndex =
                sdUrl.indexOf('?') > 0 ? sdUrl.indexOf('?') : sdUrl.length
              sdUrl = sdUrl.slice(0, endIndex)
              let pointIndex = sdUrl.lastIndexOf('.')
              let mimeType = sdUrl.slice(pointIndex + 1) //PNG - 图片/png JPEG - image/jpeg WEBP - image/webp HEIC - 图片/heic HEIF - image/heif
              let urlCdnArr = sdUrl.split('/')

              let filePath = `/temp/ai/geminiImages/${fileName}-${
                urlCdnArr[urlCdnArr.length - 1]
              }`
              let stream = fs.createWriteStream(filePath)
              httpRes.pipe(stream)
              stream.on('finish', async () => {
                resolve({ filePath, mimeType: `image/${mimeType}` })
              })
            })
          })
        })

        let localFileList = await Promise.all(promiseListForDownload)
        imageParts = localFileList.map((item) => {
          return fileToGenerativePart(item.filePath, item.mimeType)
        })

我开发的chatgpt网站:

https://chat.xutongbao.top

相关推荐
吃饺子不吃馅27 分钟前
⚡️ Zustand 撤销重做利器:Zundo 实现原理深度解析
前端·javascript·github
幼儿园技术家32 分钟前
网站在苹果 Safari 进行适配遇到的问题
前端
IT_陈寒37 分钟前
7个鲜为人知的JavaScript性能优化技巧,让你的网页加载速度提升50%
前端·人工智能·后端
不坑老师1 小时前
不坑盒子的插入网页功能是完全免费的!
前端·html
Wang's Blog1 小时前
前端FAQ: 描述⼀下你最近使⽤过的前端框架,并解释为何选择它们?
前端·vue.js·faq
wgego1 小时前
做题笔记BUU (XSS-Lab)(1-14)
前端·笔记·xss
dllxhcjla1 小时前
css第二天
java·前端·css
远航_1 小时前
10 个被严重低估的 JS 特性,直接少写 500 行代码
前端·javascript
起这个名字1 小时前
感觉这篇 DeepSeek 给出的微前端实践很牛!轻喷!
前端
小高0071 小时前
当前端面临百万级 API 请求:从"修 CSS 的"到架构师的进化之路
前端·javascript·面试