Android中的位图通道顺序不同android


Answers

Question

我在Android中遇到了Air Native Extension的问题。

ANE从Actionscript端接收一个位图,以jpeg格式压缩它,并将其发回到将写入存储器的Actionscript。

一切都好,但最后一件事。

看来,Actionscript的渠道顺序是不同于Android,所以我的压缩图像有红色的地方代替蓝色..这里是代码:

Actionscript (我使用一个名为deng.fzip.FZipLibrary的库来从zip包中获取位图)

__image = __fl.getBitmapData(path);
__de = new DataExchange();
__ba = __de.bitmapEncode(__image) as ByteArray;

Android的

...
try {
    inputValue = (FREBitmapData)arg1[0];
    inputValue.acquire();
    int srcWidth = inputValue.getWidth();
    int srcHeight = inputValue.getHeight();
    Bitmap bm = Bitmap.createBitmap(srcWidth, srcHeight, Config.ARGB_8888);
    bm.copyPixelsFromBuffer(inputValue.getBits());
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    bm.compress(Bitmap.CompressFormat.JPEG, 80, os);
    compressed = os.toByteArray();
    inputValue.release();
} catch (Exception e) {
    e.printStackTrace();
}

try {
    returnValue = FREByteArray.newByteArray();
    returnValue.setProperty("length", FREObject.newObject(compressed.length));
    returnValue.acquire();
    ByteBuffer returnBytes = returnValue.getBytes();
    returnBytes.put(compressed, 0, compressed.length);
    returnValue.release();
}
...

任何人有一个想法,在发送图像之前,如何将红色转换为蓝色的Android端? 或者它需要在actionscript方面完成?

非常感谢你的问候,

Gianpiero