如题,有没有什么工具,可以直接粘贴图像的 url,直接显示图片,这样不用再手动粘贴到浏览器(效率太低了)。
根据 v 友提示,写了一个简单的。
import io
import requests
from PIL import Image
import tkinter as tk
def getClipboardText():
root = tk.Tk()
# keep the window from showing
root.withdraw()
return root.clipboard_get()
def main():
t = getClipboardText()
t = t.strip() # get the clipboard text
if 'http' not in t:
raise ValueError("Not a valid url.")
session = requests.Session()
r = session.get(t, timeout=5)
im_bytes = r.content
f = io.BytesIO(im_bytes)
img = Image.open(f)
img.show()
if __name__ == "__main__":
main()
1
lwh0328 2021-02-03 15:21:49 +08:00
最简单的可能是拿 qt 自己写一个?
|
2
jiezhi 2021-02-03 15:22:32 +08:00
paste
|
5
ctro15547 2021-02-03 15:24:29 +08:00
python 用 requests + PIL 自己写一个唄 几行代码搞定
|
6
jiezhi 2021-02-03 15:25:01 +08:00
|
9
xiri 2021-02-03 16:03:53 +08:00
打开浏览器->粘贴 url->显示图片
跟 打开特定工具->粘贴 url->显示图片 有什么区别吗? |
10
jdhao OP 有啊,打开浏览器标签栏粘贴,比较麻烦,另外有的图片是那种,一加载就下载的,还需要下载完再打开,整个链条就更长了,极大降低了效率。
|
13
sadfQED2 2021-02-03 16:49:22 +08:00 1
@ctro15547 #5 写完了
``` import pyperclip import time import requests from PIL import Image class Listen(): def isImgUrl(self, txt): # 判断是否是 url txt = str.strip(txt) return txt[0:4] == 'http' def downloadImg(self, url): # 下载图片 res = requests.get(url) with open("tmp.png", "wb") as code: code.write(res.content) def clipboard_get(self): """获取剪贴板数据""" data = pyperclip.paste() return data def show_img(self): # img = mpimg.imread('tmp.png') # plt.imshow(img) # 显示图片 # plt.axis('off') # 不显示坐标轴 # plt.show() im = Image.open('tmp.png') im.show() def main(self): last_txt = "" while True: # txt 存放当前剪切板文本 txt = self.clipboard_get() if last_txt != txt: last_txt = txt if self.isImgUrl(txt): self.downloadImg(txt) self.show_img() time.sleep(0.5) if __name__ == '__main__': Listen().main() ``` |
14
sadfQED2 2021-02-03 16:53:03 +08:00
|
15
kingiis 2021-02-03 17:06:12 +08:00
迅雷不行吗?
|
17
kaiki 2021-02-03 17:26:40 +08:00
我都是用正则生成个 html 然后打开看图片的
把每个链接替换成<img src="\1">保存 html 就行 |
18
keepeye 2021-02-03 17:29:38 +08:00
还是浏览器方便,反正浏览器从早开到晚的
|