chrome.tabs.captureVisibleTab 将图像大小加倍

问题描述

我在 background.ts 中有以下代码:

chrome.browserAction.onClicked.addListener(function () {
  let targetId: number | undefined | null = null
  chrome.tabs.captureVisibleTab(function (imageUrl) {
    chrome.tabs.onUpdated.addListener(function listener(tabId,changedProps) {
      if (tabId !== targetId || changedProps.status != 'complete') return

      chrome.tabs.onUpdated.removeListener(listener)

      chrome.runtime.sendMessage(imageUrl)
    })
  })

  chrome.tabs.create({ url: 'popup.html' },function (tab) {
    targetId = tab.id
  })
})

我听到这样的消息:

import * as React from 'react'
import { observer } from 'mobx-react'
import useImage from 'use-image'

export const SiteImage = observer(() => {
    const [imageUrl,setImageUrl] = React.useState('')
    const [img] = useImage(imageUrl)
    
    React.useEffect(() => {
        chrome.runtime.onMessage.addListener((url) => {
            setImageUrl(url)
            const newImg = new Image()
            newImg.src = url
            newImg.onload = () => {
                console.log(newImg.naturalWidth,newImg.naturalHeight)
            }
        })
    },[])

    return null
})

当我将它登录到控制台时,我得到 2880 1592,但是我的屏幕分辨率是它的一半 1440 796

如何根据我的屏幕分辨率而不是两倍来获取图像?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)