如何将base64转换为TIFF图像或PNG图像?

2024-04-19 02:49:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个TIFF图像类型的base64编码字符串,我想用python将它转换成PNG图像。我看到了一个可以操作tiff文件的包枕,但是如何处理给定的“base64 of tiff”?在


Tags: 文件of字符串图像类型编码pngbase64
2条回答

下面是如何在pythonwand中对PNG执行此操作,它基于Imagemagick。在

#!/bin/python3.7

from wand.image import Image

with Image(filename='inline:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAFVBMVEUAAAAAAAD13rO+vr7///8ekP/////XKQFBAAAAAXRSTlMAQObYZgAAAAFiS0dEBmFmuH0AAAAHdElNRQfjBxgCMxZ4smTjAAAAhElEQVQoz6WR0Q2AIAxEZQNaXaDdgLgCDuD+y1gQ4hViYmL/eLn2jnZZvhVRdO+gKg6wqsYRyADEjTGw7ikhMAGRA/k4ZQRgZDO2zGBUXTBLyaGYhaWhLuEu6SDo0DMB/gHiGwh3cvgMUSGCOxP1pzDgLzOD0gFLNRubyQSC6vq0USsDFzgRGqPIUzNPAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTA3LTI0VDAyOjQ4OjI3KzAwOjAw2vH1ygAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0wNy0yNFQwMjo0ODoyNyswMDowMKusTXYAAAAASUVORK5CYII=') as img:
    img.save(filename='noseguy_b64.png')


enter image description here

base64tiff

import base64

text_base64 = 'SUkqAAgAAAASAP4ABAABAAAAAAAAAAABAwABAAAACgAAAAEBAwABAAAACgAAAAIBAwADAAAA5gAAAAMBAwABAAAAsoAAAAYBAwABAAAAAgAAABEBBAABAAAAgAMAABIBCQABAAAAAQAAABUBAwABAAAAAwAAABYBAwABAAAAKAAAABcBBAABAAAAPwAAABoBBQABAAAA7AAAABsBBQABAAAA9AAAABwBAwABAAAAAQAAACgBAwABAAAAAgAAADIBAgAUAAAA/AAAAD0BAwABAAAAAgAAAGmHBAABAAAAEAEAAF4BAAAIAAgACABIAAAAAQAAAEgAAAABAAAAMjAxOTowNzoyMyAyMTozNDoxOQAGAACQBwAEAAAAMDIyMQGRBwAEAAAAAQIDAACgBwAEAAAAMDEwMAGgCQABAAAAAQAAAAKgCQABAAAACgAAAAOgCQABAAAACgAAAAAAAAAGAAMBAwABAAAABgAAABoBCQABAAAASAAAABsBCQABAAAASAAAACgBCQABAAAAAgAAAAECBAABAAAArAEAAAICBAABAAAA1AEAAAAAAAD/2P/gABBKRklGAAEBAAABAAEAAP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/AABEIAAoACgMBIgACEQEDEQH/xAAXAAADAQAAAAAAAAAAAAAAAAAABwgJ/8QAIBAAAgICAgMBAQAAAAAAAAAAAgMBBAUGBxEACCETEv/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwBi60fFuU1XB5beI0a3tWVxGMv2RzeECzk77nALXymDn9LIsE4UkEjIrMJWMH/H4hOfJXsNzHq3Iuy6xhd0cnF4jL2qFJbqVawwEpcS1wTWrJjCgRjszIiKfszMzM+Htlu+6at7CbVhdY2/YMHi1NQ5dLHZJ1ZAG2sprThYFAwRsMzKeuyIyKe5mZ80MoVKtCjXo0ayatSsoUoQlcAtQDHQgIx8EYiIiIj5ER4H/9l4nPv//z8DAwMjIyMDKvgPFgeSQCkIGxnABTGl4ArgsnDFyAwi9eKRRXMYhItmL5p34Gpw+QhTI7J2AOTAPvUA'

bytes_base64 = text_base64.encode()
data = base64.b64decode(bytes_base64)
open('image.tiff', 'wb').write(data)

tiffbase64和{}:

^{pr2}$

可能大多数浏览器无法显示tiff,因此file.html可能会显示损坏的图像。你必须把它从一个页面保存到另一个文件,然后才能看到tiff。在


这是示例中使用的图像,但此处为png格式:

face.tiff


编辑:使用相同图像但采用png格式的示例。这个html将在每个浏览器中显示图像。在

# base64 to png

import base64

text_base64 = 'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAAAAACoWZBhAAAAMklEQVR4nEXNwQkAMBACwfFI/y2bxwXia8FFUwF1pCCNJTIIwaD04ctsKRyaldI/9i8u1iwOE6FA880AAAAASUVORK5CYII='

bytes_base64 = text_base64.encode()
data = base64.b64decode(bytes_base64)
open('image.png', 'wb').write(data)

# png to base64 and html

import base64

data = open('image.png', 'rb').read()
bytes_base64 = base64.b64encode(data)
text_base64 = bytes_base64.decode()

print(text_base64)

html = '<img src="data:image/png;base64,' + text_base64 + '">'
open('output-png.html', 'w').write(html)

相关问题 更多 >