часто сталкиваюсь с такой проблемой... весной написал такой вот код... Юзаю по надобности, выдрал с первого попавшегося проекта... потому, лишнее думаю выбросите сами, что нужно добавите... В принципе меня это качество устраивает.
Здесь по соображениям производительности использовался PNG энкодер, так как только на экран нужно было превьюшки выводить... Замена на JPEG на качество не повлияет...

Код AS3:
private function resize(loader:Loader):void {
if (Math.max(loader.width,loader.height) > 100 ) {
var bit:BitmapData = new BitmapData(loader.width, loader.height, false);
bit.draw(loader, loader.transform.matrix);
loader.unload();
var d:Bitmap=new Bitmap(bit,"auto",true);
d.width=100;
d.scaleY=d.scaleX;
var bit2:BitmapData=new BitmapData(d.width,d.height,false);
bit2.draw(d,d.transform.matrix);
var v:Bitmap=new Bitmap(bit2);
var png:ByteArray = PNGEncoder.encode(bit2);
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loaded);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, resized);
loader.loadBytes(png);
}else {
resized(null);
}
}