簡體   English   中英

如何將 sqlite 中的圖像顯示到 flex 數據網格中

[英]How to display images from sqlite into a flex datagrid

我有許多縮略圖(長度為 8K),存儲在 sqlite 數據庫中,編碼為 base64 字符串。

我想檢索這些圖像並將它們呈現到數據網格中(以及來自數據庫的一些其他信息)

從數據庫中檢索信息是可行的,但我不能完全“看到”如何將數據庫中的解碼結果連接到數據網格,以顯示圖像。

下面是一些代碼,我在其中顯示(為了簡化)一個簡單的 DGrid 並希望使用數據提供程序從 DB 指向 select

任何顯示我需要如何更改此代碼的細節將不勝感激:-)

  <mx:DataGrid id="dg2" dataProvider="{dp2}">
    <mx:columns>
      <mx:DataGridColumn headerText="Image"  dataField="image"  width="150"/>
    </mx:columns>
  </mx:DataGrid>

生成dp2信息的代碼如下。 result2 數組按預期填充,ldr 似乎已填充,但 imageBMap 和(因此)dp2 是 null。

    sql2.text = "SELECT image FROM  bookMarks;";
    sql2.execute();

    var result2:SQLResult = sql2.getResult();        
    var data2:Array = result2.data;

    var base64Dec:Base64Decoder;
    var byteArr:ByteArray;
    var bmap:Bitmap;
    var ldr:Loader = new Loader(); 
    base64Dec = new Base64Decoder();


    if(result2.data != null)
    {
      var numRows:int = result2.data.length;

      for(var i:int = 0; i < numRows; i++)
      {     
        for(var columnName:String in result2.data[i])
        {
          if(columnName == "image") // Normally there will be more than 1 column in the select, hence this check
          {
            base64Dec.decode(result2.data[i][columnName]);
            byteArr = base64Dec.toByteArray();                
            ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderComplete);                
            ldr.loadBytes(byteArr);
          } 
        } 
      } 
    } 
    var imageBMap:Bitmap = Bitmap(ldr.content);
    dp2 = ArrayCollection(imageBMap);
  }

  private function loaderComplete(event:Event):void
  {
    var loaderInfo:LoaderInfo = LoaderInfo(event.target);
    var bitmapData:BitmapData = new BitmapData(loaderInfo.width, loaderInfo.height, false, 0xFFFFFF);
    bitmapData.draw(loaderInfo.loader);        
  }

您需要在itemRenderer中使用來顯示圖像:

<mx:DataGridColumn headerText="Image" width="150">
    <mx:itemRenderer>
        <fx:Component>
            <s:Image source="{here you put the dataProvider}">
        </fx:Component>
    </mx:itemRenderer>
</mx:DataGridColumn>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM