Answers:
我写这个是为了图像URI的另一种方式(img到base64)。我相信你可以根据你的需要改变它。
#!/usr/bin/env python
import sys
import os
import base64
if(__name__ == '__main__'):
arglen = len(sys.argv)
if arglen > 1:
imgfile = open(sys.argv[1], 'rb').read()
b64img = base64.b64encode(imgfile)
file_name = os.path.splitext(sys.argv[1])
fname = file_name[0]
fext = file_name[1]
b64imgfile = open(fname + fext + '.txt', 'w')
for line in b64img:
b64imgfile.write(line)
print fname
print fext
print('done')
else:
print('No img file specified!')
*以下是一些可以逆转上述内容的代码。唯一需要注意的是,您需要知道它是否是png,jpg等。这应该在HTML页面中的图像的数据URI中,从中拉出它们“ img src ='data:image / PNG ; BASE64 ... “。(我假设下面是png)*
#!/usr/bin/env python
import sys
import os
import base64
if(__name__ == '__main__'):
arglen = len(sys.argv)
if arglen > 1:
b64file = open(sys.argv[1], 'rb').read()
imgData = base64.b64decode(b64file)
file_name = os.path.splitext(sys.argv[1])
fname = file_name[0]
fext = '.png'
imgFile = open(fname + fext, 'wb')
imgFile.write(imgData)
print('done')
else:
print('No file specified!')
要将数据URL保存到临时文件,您可以使用 urlretrieve()
在Python 3.4中:
#!/usr/bin/env python3
from mimetypes import guess_extension
from urllib.request import urlretrieve
# example image from http://tools.ietf.org/html/rfc2397
url = """data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///ywAAAAAMAAw
AAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvUUlvONmOZtfzgFz
ByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/DeuNcP5yLWGsEbtLiOSp
a/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYGejmJl
ZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3iq9uis
F81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f1cf5VWzXyym7PH
hhx4dbgYKAAA7"""
filename, m = urlretrieve(url)
print(filename, guess_extension(m.get_content_type()))
我使用Chrome访问了您指向的页面。右键单击图像,检查元素......
我们去了 <img>
使用Base64编码的Gif图像标记,但这实际上是一个简单的1x1占位符。
因此,我们可以转到Inspector的Resources选项卡(在Elements one旁边),我们可以在Base64编码的PNG中看到感兴趣的图像。
单击左侧的数据:图像,您将获得有关资源的详细信息,包括预览。您可以右键单击预览并保存图像...
建议,请注意这些图片的版权问题......
注意:我尝试了另一种方法:您可以复制资源的URL,并将其粘贴到一个简单的HTML文件中 <img src="<base64-encoded data>">
标签。在一个好的浏览器中查看HTML文件,您可以通过右键单击来保存图像。
当您从Web浏览器保存网页时,它也应该保存图像。在IE中,您选择另存为网页,完成。图像将位于子文件夹中,并将采用jpg或png格式 - 浏览器处理用于HTTP数据传输的任何编码。
有很多工具可以帮助您解码base64。如何最好地下载这样的东西在很大程度上取决于你如何达到它。
没有太多的网络流量是base64编码的...主要是因为它不是非常有效,而且它根本不安全。 (base64不是加密......它只是模糊了数据,使其不具有人类可读性)如果你可以将原始流数据提供给文本文件或其他类似的......有几种方法可以重新组装它。此外,数据不会包含有关文件的信息...即文件名,大小,类型等...它是一个数据流......并且由您决定它是什么。
我们有机会窥探数据的来源吗? ......真的有助于给你一个更恰当的答案。
这很有趣,因为你完全给了我答案,让我分享我的意思。我有'data:image / gif; base64',然后是一些疯狂的base64字符串。我想将图像转换回JPEG但我不知道如何,我真的只是想在不使用脚本的情况下快速完成,python等(虽然这在许多情况下是一个很好的方法)。我只需要一个我需要立即转换的图像。
一旦你向我展示了标签“img src =”,我立即明白浏览器已经理解了base64代码。我只是打开一个文本文档,添加了标签 <img src="data:image/gif;base64,...">
将其保存为* .html扩展名并在浏览器中打开(其中任何一个都可以工作),右键单击图像并保存。来自base64的Voila insta-image。
谢谢!!