我有使用base64编码的未知数量的图像。它们采用以下格式:
image0 = “”“\ iVBORw0KGgoAAAANSUhEUgAAABcAAAATCAIAAAD02QHhAAAAB3RJTUUH3gMEFjA2JHVG0AAAAe5JREFUeJztUzGr6jAYTZoWVAQRKTooOIja0SK4da6DkyCIi39AN531DzgKIoroLoiDk3ZWB3UoCiIqFDq5OBRKaXKHXOLjPnn3Xd76zpYvyTnfd3ICCSHgn8G9rf6UmieEQAgJIRjjFzfHUS4I4RdeWqRX2C78syzTYEsqgDH + lYvHGHMc93g8DoeD1 + t1HMc0Tb / fr6oqlWJHKY7HYyKREAThswsIAQCc67qEEF3Xd7tdo9GYTqeWZWUyGYQQFaD6EELbtjVNq1ar2 + 12u90 + Hg82KS8IAiFEURRFUfb7fbvdDgQCAIDZbHY + nwVBqNVqk8lkvV63Wq3RaBSNRk + nk23bsVjs5R3G2HVd13Xv93upVHIcx3Gc + XzebDY1TSsUCoSQdDrd7XYJIeVyebVakd / AQwhp59frNRKJ8DwPAFgsFj6f73a79Xq94XBYr9eXy6Xf7z + fz7IsY4xt2 / Z4PMyal + GbzSYej1PucDj8fD4lSer3 + 8FgMJVK6bqeTCaz2Wyn0xmPx9RN5i5qtVo0IJZlybIsiiIAIJfLGYZhmmalUkEIDQaDfD6vqqokSZfLpVgshkIh9nDf54X6ZxiGKIpshC + B / GShJZpdllrXdQEACCHWNj2JMUYI / Sy77DJr / I 2 + Z / kbvP / T / 1k + AL7rRN + R / gD6AAAAAElFTkSuQmCC“”“
image1的= “”“\ iVBORw0KGgoAAAANSUhEUgAAABcAAAATCAIAAAD02QHhAAAAB3RJTUUH3gMEFjE42tZalgAAAoRJREFUeJyNUz1PKlEQnbl3YzTYEBshodpGo62hIdgaExsLKiojP4DChD9AI50 / wGggsSAhivEnYAKJ0kEAjRUaCODKx25C9t6xGFzfU3nPKe7encycPXPmLBIRAPDpuu7V1dV4PAYApZRlWQcHB36 / HwC01oiIiESEiLVajYg2NjYAAAAEPxjFtm2t9cPDQzabDQQCe3t7fr9 / PB4Ph0MhBCJalmXb9u3tbSKRuLi4uLy8LJfLRGTMwIQAgOXl5VgsNplMQqHQ7u4uAJRKpfv7 + 2azeXh4aJrm9vZ2oVAYDoeIGIlEbNv2 + XX / cSEirbVS6u7uzjRNpdRgMMhkMtFotNPprKys5HI5RDRNs9VqhcPhnZ2d / f39zc1NRJyhICIAGIYhpXx9fV1bW5NSPj4 + DgaDRqORTqcrlcrq6urW1tbR0VGpVFpfXweATqejtSaiGQrTQcR2u + 04TjAY1FqHQqGFhQUiur6 + Ho1Gi4uLhmFMp9NkMnl2dnZ8fNzr9Vj42Sw8jta63 ++ zYK7rElGz2cxms41Gg4hSqVQ6na5Wq0RULBbr9ToRKaWICHk7X4J58ckZ13UNw3AcZ2lpyct7l08Ur1NrLaXkV6UU79grYON49mFNP3XxUlJKvhCRlHIymdzc3Dw9Pf3ZLKVkdO4SMCdY / F6vd3Jywn5pt9sM / UM1zQlGeXt76 / f7RBSPx5 + fn9lQ34uNeVyYqs / nk1Ken59Ho9FAIOC6Ls / 7JeZOBABKKSllrVYDgEQiwTJ5W / S / ChtBCJHP51Op1HQ6PT09dRwHPv7b33Jh / bvdbiQSEUK8vLxYljUPZY7mH4x + 5P89flaXodl13mc8Xb9D / 4vL76m9A4fr1aGVlymDAAAAAElFTkSuQmCC“”“
IMAGE2 = “”“\ iVBORw0KGgoAAAANSUhEUgAAABcAAAATCAIAAAD02QHhAAAAB3RJTUUH3gMEFjE42tZalgAAAoJJREFUeJyVUj1La0EQndm9 + BUJhqRQIdVtDIZ0wUa0ExFsLPwBYho7i0D + QArjfxAhgtiIH5U / IIKCRkEiSUxpccHchBhvINydsdiw5uUl8t4pdmeHnbNnzg4yMwDo1ff9y8vLdrsNAEqpZrO5s7MTCoUAgIgQERGZGRFLpRIzLy4uAgAACL1pFs / ziOjt7S2fz8 / NzW1uboZCoXa73Wq1hBCI2Gw2Pc + 7vb1NpVKnp6cXFxd3d3fMbPXIhACA6enp7e3tr6 + vaDS6sbEBAIVC4fHxsVKp7O7u2ra9urp6fn7earUQcXl52fO8QCDwhxZmJiKl1MPDg23bSinXdQ8PD1dWVhzHCYfDJycniGjbdrVaXVpaWl9f39raisfjiNhjQUQAsCxLStloNBYWFqSUtVrNdd1yuZzNZu / v72dnZ5PJZDqdLhQKsVgMABzHISJm7rFoOYj4 / v7e6XTm5 + eJKBqNjo2NMfP19fXn5 + fExIRlWd1ud39 /// j4OJfLfXx8aON7veh2iKher2vDfN9n5kqlks / NY + UyM2cymWw2WywWmfnq6ur19ZWZlVLMjPp3BqB16VVnfN + 3LKvT6UxOTpq8CX5YTCURSSn10YyJuaAz / fkfd43BiCil1IEu8zzv5uamVCr1F0sp9QTpKgEjoEUBQK1Wcxxnb2 / v6elJE / 192RrFoh9k5kQikUgknp + fx8fHjeQB / KZFKUVEZ2dnyWQyEonEYjHd0fDbo6Anqtvtuq67trZWrVbN1w5gZEdEJIR4eXkJBoONRmNqampmZmaoKb / 5Ypo6OjoSQhwcHEQikVEdDZ86w9JfM3D8Jy1mxvQziCiEMPF / aDF0Qyv78Q28N9fZLnpYLAAAAABJRU5ErkJggg == “””
我可以使用以下方法成功解码它们:
imageToShow = base64.b64decode(image0)
stream1 = cStringIO.StringIO(imageToShow)
bmp1 = wx.ImageFromStream(stream1)
self.image_spot0.SetBitmap(wx.BitmapFromImage(bmp1))
imageToShow = base64.b64decode(image1)
stream1 = cStringIO.StringIO(imageToShow)
bmp1 = wx.ImageFromStream(stream1)
self.image_spot1.SetBitmap(wx.BitmapFromImage(bmp1))
imageToShow = base64.b64decode(image2)
stream1 = cStringIO.StringIO(imageToShow)
bmp1 = wx.ImageFromStream(stream1)
self.image_spot2.SetBitmap(wx.BitmapFromImage(bmp1))
由于可能有3个,100个,300个或者为什么不是5000个编码图像,我希望能够使用循环处理解码。
当我尝试使用以下代码时:
image_group = ['image0', 'image1', 'image2']
for img in image_group:
imageToShow = base64.b64decode(img)
我得到填充错误,我假设数据没有传递给base64.b64decode(),只有实际字符串“image0”。任何帮助将不胜感激。
答案 0 :(得分:0)
您将变量名称字符串文字与相同的值混合在一起。
解决方案是书面形式:
image_group = ['image0', 'image1', 'image2']
您甚至可以通过组合声明来减少它:
image_group = [
"iVBORw0KGgoAAAANSUhEUgAAA...",
"iVBORw0KGgoAAAANSUhEUgAAA...",
"iVBORw0KGgoAAAANSUhEUgAAA..."
]