python将本地图片转成url_python-URL转jpg图片

问题描述

有图片地址,可以在网页打开 URL:https://bdfile.bluemoon.com.cn/group2/M00/0A/BA/wKg_HlwzY1SAIdXDAAFyo-ZOLKQ399.jpg

现需要将图片url转为图片,保存在本地

解决思路

在内存中将图片url打开,编码为base64,在对这个编码进行解码为图片进行保存即可

importos,base64importrequests as reqfrom PIL importImagefrom io importBytesIO

response= req.get("https://bdfile.bluemoon.com.cn/group2/M00/0A/BA/wKg_HlwzY1SAIdXDAAFyo-ZOLKQ399.jpg")#内存中打开图片

image =Image.open(BytesIO(response.content))#图片的base64编码

ls_f =base64.b64encode(BytesIO(response.content).read())#base64编码解码

imgdata =base64.b64decode(ls_f)#图片文件保存

file = open('test.jpg','wb')

file.write(imgdata)

file.close()

结果

补充:

1.用OpenCV

OpenCV的imread()只能加载本地的图片,并不能通过网址加载图片。但是,opencv的VideoCapture类可以从url加载视频。如果只用opencv的话,我们可以一个迂回的方式:先用VideoCapure加载网址下的图片,然后再传给Mat。

importcv2

cap=cv2.VideoCapture(img_src)if( cap.isOpened() ) :

ret,img=cap.read()

cv2.imshow("image",img)

cv2.waitKey()

2. OpenCV+Numpy+urllib

importnumpy as npimporturllibimportcv2

resp=urllib.urlopen(img_src)

image= np.asarray(bytearray(resp.read()), dtype="uint8")

image=cv2.imdecode(image, cv2.IMREAD_COLOR)

cv2.imshow("Image", image)

cv2.waitKey(0)

3. skimage

相对来说,这种方式应该是最简单的,因为skimage可以直接以imread()函数来读取网页图片,而不需要其他的辅助,也不需要迂回。

from skimage importio

image=io.imread(img_src)

io.imshow(image)

io.show()

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值