2014-03-03 60 views
-1

我正在製作一個webapp,可以接受用戶上傳的圖像並將其轉換爲base64。Google App Engine Base64對來自blobstore的圖像進行編碼

class TestImageHandler(blobstore_handlers.BlobstoreUploadHandler): 
    def post(self): 

    upload_files = self.get_uploads('file') # 'file' is file upload field in the form 
    if upload_files: 
     blob_info = upload_files[0] 
     process_img(blob_info) 
     blobstore.delete(blob_info.key()) # optional: delete file after import 

我打算處理process_img過程中的形象,才發現,我不知道如何來檢索Blob存儲的圖像數據和編碼。

+0

那麼,有什麼問題嗎? – Lipis

+0

起初我不知道如何將blobstore中的圖像轉換爲base64。後來(我已經回答),我發現我的方式。 – pspencil

回答

0
class TestImageHandler(blobstore_handlers.BlobstoreUploadHandler): 
    def post(self): 

     upload_files = self.get_uploads('file') # 'file' is file upload field in the form 
     if upload_files: 
      blob_info = upload_files[0] 
      string = process_img(blob_info) 
      blobstore.delete(blob_info.key()) # optional: delete file after import 

      self.response.out.write('<img alt = "" src = "%s" >' % string) 


def process_img(blob_info): 
    blob_reader = blobstore.BlobReader(blob_info.key()) 
    data = blob_reader.read() 
    return "data:image/%s;base64,"%blob_info.filename.split('.')[1]+base64.b64encode(data) 
0
class TestImageHandler(blobstore_handlers.BlobstoreUploadHandler): 
def post(self): 

    upload_files = self.get_uploads('file') 
    data_to_64 = re.search(r'base64,(.*)', upload_files).group(1) 
    decoded = data_to_64.decode('base64') 
    file_name = files.blobstore.create(mime_type='image/png') 
    with files.open(file_name, 'a') as f: 
     f.write(decoded) 
    files.finalize(file_name) 
    blob_key = files.blobstore.get_blob_key(file_name) 
相關問題