我正在尝试将库中的png文件加载到位图数据中,但在尝试执行此操作时会出现EOF错误。
遇到文件结尾。在flash.display :: BitmapData / setPixels()
我添加了评论,其中包含以下代码中使用的值。
var bitmapData_texture:BitmapData = new BitmapData(image.width, image.height, true, 0x0);
bitmapData_texture.draw(image);
var pixels:ByteArray = bitmapData_texture.getPixels(rect_bmp);
var bitmapData:BitmapData = new BitmapData(rect_bmp.width,rect_bmp.height,true,0x0);
trace("image width : "+image.width.toString()); //image width : 161
trace("image height: "+image.height.toString()); //image height: 171
trace("rect x : "+rect_bmp.x.toString()); //rect x : 0
trace("rect y : "+rect_bmp.y.toString()); //rect y : 0
trace("rect width : "+rect_bmp.width.toString()); //rect width : 161
trace("rect height : "+rect_bmp.height.toString()); //rect height : 2
trace("bmpd width : "+bitmapData.width.toString()); //bmpd width : 161
trace("bmpd height : "+bitmapData.height.toString()); //bmpd height : 2
bitmapData.setPixels(rect_bmp,pixels);
答案 0 :(得分:1)
我看不出(已发布)代码有什么问题。您可以尝试在getPixels调用后直接跟踪byteArray信息。可能会提供有关问题的见解?
//should be 4 bytes for every pixel in byteArray; so 4x161x2 = 1288
trace(pixels.length);
//should be at start of byteArray; so 0
trace(pixels.position);
//if position=0, this should be same as length
trace(pixels.bytesAvailable);
顺便说一句,我不同意Nallaths的评论 - 你确实可以直接从库中(或通过网址)加载PNG而不必担心压缩。