Flex: сохранение mx: изображение с примененными эффектами - PullRequest
2 голосов
/ 05 января 2011

Я загружаю изображение для контроля, чем применяю некоторые эффекты, и когда я сохраняю изображение, оно сохраняется без эффектов.Что мне делать?

Вот код:

private var byteArr2:ByteArray;
private var fileRef:FileReference = new FileReference(); 

public function process():void
{
        var ct:ColorTransform = new  ColorTransform();
        ct.redOffset = 99;
        ct.blueOffset = 11;
            ct.greenOffset = 22;
            currImg.transform.colorTransform = ct;
            callLater(toByteArray);
}

public function toByteArray():void
{
        var data:BitmapData = new BitmapData(currImg.width, currImg.width);
        data.draw(currImg);             
        var encod:JPEGEncoder = new JPEGEncoder(100);               
        byteArr2 = encod.encode(data);
}
public function saveFile():void 
{  
        fileRef.save(byteArr2,"NewFileName1.jpg");
} 
<mx:HBox>       
        <mx:VBox>           
            <s:Button x="69" y="98" label="open" click="open()()"/>
            <s:Button label="show" click="show()"/> 
            <s:Button label="process" click="process()"/>   
            <s:Button label="save" click="saveFile()"/> 
        </mx:VBox>
        <mx:Image id="currImg" width="200" height="300"/>
    </mx:HBox>

ОБНОВЛЕНИЕ Появляется новая проблема, так как я использую var data:BitmapData = new BitmapData(currImg.width, currImg.width); сохраненное изображение маленькое (размер как изображениеконтроль) но мне нужно сохранить изображение с оригинальным размером.С var data:BitmapData = Bitmap(currImg.content).bitmapData; сработало

Ответы [ 2 ]

3 голосов
/ 05 января 2011

Я бы нарисовал компонент в новый объект BitmapData, а не использовал бы содержимое currImg. Это должно дать вам то, что нарисовано на экране, а не неизмененный контент. Примерно так:

var data:BitmapData = new BitmapData(currImg.width, currImg.width);
data.draw(currImg);

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

2 голосов
/ 06 января 2011

Хорошо, это не очень хорошее решение, потому что я не знаю, почему оно работает, но если вы поместите контейнер вокруг изображения, сохраните результаты рисования, чтобы оно работало.Shaun

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...