问题描述
我在 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 (将#修改为@)