Как сохранить изображение в формате PNG?

Теперь я сохраняю в текстовом формате, и я получил ошибку: TypeError: Ошибка #1009: Не удается получить доступ к свойству или методу пустой ссылки на объект. в SaveImage/onClick()[/Users/VVT/Documents/Adobe Flash Builder 4.6/SuperDraw/src/SaveImage.as:40] Я хочу изменить свой код, чтобы я мог сохранить его в формате PNG?

public class SaveImage extends Sprite

{
    private var btnSave:buttonSave;
    //private var ba:ByteArray;
    private var file:FileReference;

    public function SaveImage()
    {
        // Skapar min knapp.
        var btnSave:buttonSave = new buttonSave();
        addChild(btnSave);
        btnSave.x = 400;
        btnSave.y = 440;

        btnSave.addEventListener(MouseEvent.CLICK, onClick);

        var file:FileReference = new FileReference();           
    }

    private function onClick(evt:MouseEvent):void 
    {
        //var ba:ByteArray = file.encode(bitmapData);
        //file.save(file);
        file.save("some text. \nsome more text", "actionsnippet.txt");
    }
}

1 ответ

Решение

У вас есть свойство с именем file Тем не менее, вы создаете и инициализируете локальную переменную с тем же именем в этой строке вашего конструктора:

var file:FileReference = new FileReference(); 

Не волнуйся, эти ошибки случаются. Удалить var и введите, чтобы избавиться от этой ошибки нулевой ссылки.

file = new FileReference();

Чтобы сохранить изображение в формате png, библиотека as3corelib, которая упоминается в этом ответе на вопрос, связанный с этим комментарием, выглядит довольно многообещающе. Импортируйте библиотеку и позвольте ей кодировать ваши битовые данные:

file.save(PNGEncoder.encode(bitmapData));
Другие вопросы по тегам