Как сгладить изображение, загруженное с помощью FileReference? - PullRequest
1 голос
/ 12 марта 2010

Безуспешно пытались сгладить изображения, загруженные с помощью FileReferece. Ниже код, который я использую:

fileRef = new FileReference();
fileRef.addEventListener(Event.COMPLETE, fileLoaded);

private function fileLoaded(e:Event):void{
    var ldr:Loader = new Loader();             
    ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void{
        var bm:Bitmap = Bitmap(e.target.content as Bitmap);
        bm.smoothing = true;
        img.load(bm)
    }); 
    ldr.loadBytes(fileRef.data);
}   

<custom:SWFLoaderAdvanced id="img"/>

bm.smoothing должно было сгладить загруженное изображение, но по некоторым причинам это не так. Я что-то здесь упускаю?

Примечание: SWFLoaderAdvanced автоматически сглаживает любое изображение, загруженное в него. Он отлично работает с загруженными изображениями, отличными от загруженных с помощью FileReference.

Ответы [ 2 ]

1 голос
/ 12 марта 2010

Я считаю, что данные загружаются во flash как byteArray, попробуйте это и посмотрите, что произойдет.

Ваша линия здесь:

var bm:Bitmap = Bitmap(e.target.content as Bitmap);

хочет быть:

var bm:Bitmap = new Bitmap(e.target.content as BitmapData);
0 голосов
/ 12 марта 2010

Я не уверен, почему bm.smoothing не работает, возможно, это так, но эффект едва заметен. Одна вещь, которую вы можете попробовать, это BlurFilter.

import flash.filters.BlurFilter;
var blur:BlurFilter = new BlurFilter(1, 1, 5);

Где первый и второй аргументы blurX и blurY, а третий - качество. Я полагаю, вы можете применить это к Bitmap объекту, возможно, используя эту функцию:

bitmapDataObject.applyFilter();

Эта функция подробно описана в Справочнике AS3; Я не на компьютере с установленной Flash, поэтому я не могу проверить, как именно это будет работать. Хотя вы определенно сможете применить эффекты размытия к Bitmap объектам, и если вы сделаете очень слабый с высоким качеством, он будет выглядеть более плавным. Проверьте BlurFilter и BitmapData в документах.

Надеюсь, это поможет!

...