2011-06-10 42 views
1

我將縮略圖圖像(編碼的base64)作爲字符串放在sqlite數據庫中。需要將來自sqlite的base64編碼圖像顯示到flex數據網格中

我知道如何解碼和顯示圖像,但我想顯示它在一個數據網格中,所以我必須檢索(無php)圖像,解碼並顯示在數據網格中。

我想不出如何進行操作(解碼和顯示)來顯示它在數據網格中。

目前我的DataGrid的樣子:

<mx:DataGrid id="dg" left="60" right="51" top="200" fontSize="25" allowMultipleSelection="false" visible="false" dataProvider="{dp}" 
       horizontalCenter="3" verticalScrollPolicy="auto" editable="true" selectionColor="#FFFF00" rollOverColor="haloSilver"> 
    <mx:columns> 
     <mx:DataGridColumn headerText="Index:"   dataField="id" visible="false"/> 
     <mx:DataGridColumn headerText="Image"    dataField="image"  width="150"/> 
     <mx:DataGridColumn headerText="Description"  dataField="description" width="150" /> 
     <mx:DataGridColumn headerText="Web Address (URL)" dataField="url"   width="250"> 
     <mx:itemEditor> 
      <fx:Component> 
      <mx:TextInput restrict="a-zA-Z+\[email protected]" maxChars="50" /> 
      </fx:Component> 
     </mx:itemEditor> 
     </mx:DataGridColumn> 
    </mx:columns> 
    </mx:DataGrid> 

和我的SQL代碼,如:

sql.text = "SELECT id, image, url, description FROM bookMarks;"; 

    sql.execute();    
    var result2:SQLResult = sql.getResult(); 

目前顯示的base64編碼字符串(如預期)

+0

好的,我必須問:1)*爲什麼*你要將圖像存儲到數據庫中?這是非常低效的。 2)*爲什麼*要將base64作爲字符串*存儲到數據庫*中。 3)* WHYHYYYYYYY?!* – 2011-06-10 17:28:44

回答

0

你將不得不把你的圖像和解碼成一個ByteArray。然後你必須採取ByteArray並將其加載到位圖中。同時,您必須製作一個包含BitmapImage(假設爲Flex 4)的自定義ItemRenderer,並使用位圖作爲該圖像的源。

你的問題實際上包含2或3個子任務。

+0

嗨,thx爲您的回覆: – user427196 2011-06-11 18:41:37

+0

嗨Thx爲您的答覆 – user427196 2011-06-11 18:42:12

+0

將圖像存儲在數據庫(他們是8K大的順序),以便用戶不會意外刪除圖像,如果我只需輸入對圖像文件的引用即可。 存儲爲字符串,因爲我無法使blob工作:-( – user427196 2011-06-11 18:50:25

相關問題