我在 Android 中遇到了 Air Native Extension 的问题。
ANE 从 Actionscript 端接收 Bitmap,将其压缩为 jpeg 格式,然后将其发送回 Actionscript,后者会将其写入存储。
一切都很好,但最后一件事。
似乎 Actionscript 的通道顺序与 Android 中的不同,所以我的压缩图像用红色代替了蓝色。这是代码:
Actionscript(我正在使用一个名为 deng.fzip.FZipLibrary 的库从 zip 包中获取位图)
__image = __fl.getBitmapData(path);
__de = new DataExchange();
__ba = __de.bitmapEncode(__image) as ByteArray;
安卓
...
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 端将红色转换为蓝色?还是需要在动作脚本端完成?
非常感谢和问候,
詹皮耶罗