標籤雲

搜尋此網誌

2009/01/10

FLASH載入的圖片縮放後品質不佳之解決辦法

FLASH載入的圖片縮放後品質不佳
是一個很容易就會發生的問題

在此要先了解一下 ActionScript 3.0 中處理點陣圖影像的主要類別: Bitmap 和 BitmapData
Bitmap 類別可以用來在螢幕上顯示點陣圖影像
BitmapData 類別則用來存取和操作點陣圖的原始影像資料

如果對圖片品質比較要求的話
可以嘗試以下方法:

picLdr.contentLoaderInfo.addEventListener(Event.COMPLETE,
 function(event:Event){
  var pic:Bitmap = event.target.content as Bitmap;
  pic.smoothing = true; //Bitmap縮放平滑化
 }
);

picLdr 是負責把圖片載入進來的 Loader 類別
透過監聽 contentLoaderInfo 的 Event.COMPLETE 事件
在圖片載入完成時
Loader 的 content 屬性(參照到 Bitmap 物件)
去設定 Bitmap 類別的 smooting 屬性為 true
這樣 flash player 會針對圖片縮放作平滑化處理

-------------------------------------------------
或是在 Bitmap 實體建立時就利用建構子設定平滑化:

var bData:BitmapData = new BitmapData(picWidth, picHeight);
bData.draw(displayObj);
//BitmapData.draw 的 source 可以是 BitmapData 或 DisplayObject 物件
var bmp:Bitmap = new Bitmap(bData,PixelSnapping.AUTO, true);
//Bitmap建構子的Optional Params
//第三個參數可以指定smooting 屬性

=================================================

同場加映: FLV 視訊播放品質不佳怎麼辦??

Flash Player 9 update 3 以上支援使用 Mipmap 映射最佳化執行階段的呈現品質與效能
如果將 Video 物件的 smoothing 屬性設為 true
Flash Player 會在播放視訊時使用 Mip 映射 (Mipmapping) 最佳化
VideoPlayer 物件為 Video 物件的子系, 而 FLVPlayback 有包覆 VideoPlayer 物件
因此對 FLVPlayback 而言要使用 smoothing 屬性去做平滑化播放應該也是可以達成的

沒有留言: