2014-03-05 52 views
0

我有使用base64编码的未知数量的图像。它们在以下格式:使用循环解码base64图像

image0 = “”“\ iVBORw0KGgoAAAANSUhEUgAAABcAAAATCAIAAAD02QHhAAAAB3RJTUUH3gMEFjA2JHVG0AAAAe5JREFUeJztUzGr6jAYTZoWVAQRKTooOIja0SK4da6DkyCIi39AN531DzgKIoroLoiDk3ZWB3UoCiIqFDq5OBRKaXKHXOLjPnn3Xd76zpYvyTnfd3ICCSHgn8G9rf6UmieEQAgJIRjjFzfHUS4I4RdeWqRX2C78syzTYEsqgDH + lYvHGHMc93g8DoeD1 + t1HMc0Tb/fr6oqlWJHKY7HYyKREAThswsIAQCc67qEEF3Xd7tdo9GYTqeWZWUyGYQQFaD6EELbtjVNq1ar2 + 12u90 + Hg82KS8IAiFEURRFUfb7fbvdDgQCAIDZbHY + nwVBqNVqk8lkvV63Wq3RaBSNRk + nk23bsVjs5R3G2HVd13Xv93upVHIcx3Gc + XzebDY1TSsUCoSQdDrd7XYJIeVyebVakd/AQwhp59frNRKJ8DwPAFgsFj6f73a79Xq94XBYr9eXy6Xf7z + fz7IsY4xt2/Z4PMyal + GbzSYej1PucDj8fD4lSer3 + 8FgMJVK6bqeTCaz2Wyn0xmPx9RN5i5qtVo0IJZlybIsiiIAIJfLGYZhmmalUkEIDQaDfD6vqqokSZfLpVgshkIh9nDf54X6ZxiGKIpshC + B/GShJZpdllrXdQEACCHWNj2JMUYI/Sy77DJr/i2 + 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/4vL7 6m9A4fr1aGVlymDAAAAAElFTkSuQmCC “” “

IMAGE2 = ”“” \ iVBORw0KGgoAAAANSUhEUgAAABcAAAATCAIAAAD02QHhAAAAB3RJTUUH3gMEFjE42tZalgAAAoJJREFUeJyVUj1La0EQndm9 + BUJhqRQIdVtDIZ0wUa0ExFsLPwBYho7i0D + QArjfxAhgtiIH5U/IIKCRkEiSUxpccHchBhvINydsdiw5uUl8t4pdmeHnbNnzg4yMwDo1ff9y8vLdrsNAEqpZrO5s7MTCoUAgIgQERGZGRFLpRIzLy4uAgAACL1pFs/ziOjt7S2fz8/NzW1uboZCoXa73Wq1hBCI2Gw2Pc + 7vb1NpVKnp6cXFxd3d3fMbPXIhACA6enp7e3tr6 + vaDS6sbEBAIVC4fHxsVKp7O7u2ra9urp6fn7earUQcXl52fO8QCDwhxZmJiKl1MPDg23bSinXdQ8PD1dWVhzHCYfDJycniGjbdrVaXVpaWl9f39raisfjiNhjQUQAsCxLStloNBYWFqSUtVrNdd1yuZzNZu/v72dnZ5PJZDqdLhQKsVgMABzHISJm7rFoOYj4/v7e6XTm5 + eJKBqNjo2NMfP19fXn5 + fExIRlWd1ud39 /// j4OJfLfXx8aON7veh2iKher2vDfN9n5kqlks/NY + UyM2cymWw2WywWmfnq6ur19ZWZlVLMjPp3BqB16VVnfN + 3LKvT6UxOTpq8CX5YTCURSSn10YyJuaAz/fkfd43BiCil1IEu8zzv5uamVCr1F0sp9QTpKgEjoEUBQK1Wcxxnb2/v6elJE/192RrFoh9k5kQikUgknp + fx8fHjeQB/KZFKUVEZ2dnyWQyEonEYjHd0fDbo6Anqtvtuq67 trZWrVbN1w5gZEdEJIR4eXkJBoONRmNqampmZmaoKb/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

你把它像'base64.b64decode( “image0”)的循环' ,而不是变量值。因此,你的问题可以简化为“我如何通过名称评估/获取局部变量的价值”。但我建议在数组中声明这些base64字符串以便于处理。 – kirilloid

+0

@kirilloid。感谢您的答复。你的建议是我已经工作的代码,没有报价。如果我可以提前确定需要处理多少个字符串或至少是字符串的上限,那么工作正常。我试图在每次代码运行时能够处理不同数量的字符串。你能否详细说明如何声明数组中的字符串可以提供解决方案? – Karr

+1

其实你可以写'image_group = [image0,image1,image2]',那应该可以。 – kirilloid

回答

0

您将变量名字符串文字与相同的值混合在一起。

解决方法就是在写作:

image_group = ['image0', 'image1', 'image2'] 

你甚至可以像组合声明酌减:

image_group = [ 
    "iVBORw0KGgoAAAANSUhEUgAAA...", 
    "iVBORw0KGgoAAAANSUhEUgAAA...", 
    "iVBORw0KGgoAAAANSUhEUgAAA..." 
]