2012-06-23 4 views
0

Вот мой кодЧто случилось с моим JPGEncoder

 if (event.target.content is Bitmap) 
{ 

    infotext.text = "got something"; 
    var image:Bitmap = Bitmap(event.target.content); 
    var bitmapData:BitmapData = image.bitmapData; 
    this.addChild(image); 
    var j:JPGEncoder = new JPGEncoder(100); 
    var bytes:ByteArray = new ByteArray(); 
    bytes=j.encode(bitmapData); 
} 
else 
{ 
    throw new Error("What the heck bob?"); 
} 

Когда я запустить сеанс отладки все работает отлично, пока она не доходит до линии

 bytes=j.encode(bitmapData); 

после этого ничего не происходит, и моя программа просто идет в подвешенном Пожалуйста, помогите


Я внес изменения в код в соответствии с вашим предложением

  var myImage:Bitmap =Bitmap(e.target.content); 


    var bitmapData:BitmapData = new  BitmapData(myImage.width,myImage.height,true,0xffffffff); 
    bitmapData.draw(myImage); 

    var encoder:JPGEncoder = new JPGEncoder(); 
    var bytes:ByteArray = encoder.encode(bitmapData); 

    this.addChild(myImage); 

но застревает снова после

 var bytes:ByteArray = encoder.encode(bitmapData); 

Что я делаю неправильно здесь?

+0

Вы уверены, что bytes.j.encode (bitmapData); код, который вы опубликовали, не содержит этой строки. –

+0

Жаль, что это была опечатка, но вы знаете, что я имею в виду. – hitek

+0

Просто проверьте, что это опечатка в вашем посте не в вашем коде. –

ответ

0

Довольно уверен, что я столкнулся с этой проблемой еще давным-давно, поэтому с тех пор я снял свой код, чтобы я работал.
После просмотра кода единственное, что я вижу другим, я сначала создаю битмапДату и назначаю изображение через функцию загрузки.
Итак, я думаю, что ваша проблема связана со строительством bitmapData var.
Следующий фрагмент кода был вырезан из функции, которую я создал, что сделало много других манипуляций с изображениями.
Так что в основном это вырезанная версия и непроверенная, но она должна работать.

var myImage:Image = new Image(); 
myImage.load(Bitmap(event.target.content)); 

var bitmapData:BitmapData = new BitmapData(myImage.width, myImage.height, true, 0xffffffff); 
bitmapData.draw(myImage); 

var encoder:JPEGEncoder = new JPEGEncoder(); 
var data:ByteArray = encoder.encode(bitmapData); 

this.addChild(myImage); 
+0

Я внедрил эти изменения в свой код, но безрезультатно, можете ли вы сказать мне, что я делаю неправильно здесь. – hitek

+0

У вас нет ошибки, которую он просто висит на линии с encoder.encode (bitmapData) ;? Какой источник вы используете для библиотеки JPEGEncoder? –

+0

Убедитесь, что вы используете эту библиотеку. https://github.com/mikechambers/as3corelib –

0

Только в случае, если кто работает в этом, Убедитесь, что вы используете класс ByteArray JPEGEncoder, это быстрее: http://www.bytearray.org/?p=775

as3core является JPGEncoder не JPEGEncoder. JPG против JPEG ... это тоже меня.

Смежные вопросы