- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
是否有任何将位图数据传递到 iOS 并返回修改后的副本的示例。我正在尝试将位图转换为 jpeg - 类似于 Windows 中的这个示例 http://blog.magicalhobo.com/2011/09/12/air-3-native-extension-imagepro cessor/但它每次都崩溃了。
我很确定我做错了一些基本错误但不是 iOS/Objective C 程序员我真的只是在尝试魔法咒语而且我找不到任何好的例子。感谢任何帮助?
肖恩
附言以下是我的尝试:
FREObject encodeJPEG(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[])
{
FREObject objectBitmapData = argv[0];
FREBitmapData bitmapData;
FREAcquireBitmapData(objectBitmapData, &bitmapData);
int width = bitmapData.width;
int height = bitmapData.height;
int stride = bitmapData.lineStride32 * 4;
uint32_t* input = bitmapData.bits32;
FREReleaseBitmapData(objectBitmapData);
UIImage *myImage = [UIImage imageWithData:input];
NSData *jpgData = UIImageJPEGRepresentation(myImage, 0.9);
FREObject objectByteArray = argv[1];
FREByteArray byteArray;
FREObject length;
FRENewObjectFromUint32(jpgData.length, &length);
FRESetObjectProperty(objectByteArray, (const uint8_t*) "length", length, NULL);
FREAcquireByteArray(objectByteArray, &byteArray);
memcpy(byteArray.bytes, jpgData.bytes, jpgData.length);
FREReleaseByteArray(objectByteArray);
return NULL;
最佳答案
最终版本 - 似乎工作正常 - 编码正常,我认为自己清理后正常。
肖恩
FREObject encodeJPEG( FREContext ctx, void* funcData, uint32_t argc, FREObject argv[] )
{
FREObject objectBitmapData = argv[ 0 ];
FREBitmapData2 bitmapData;
FREAcquireBitmapData2( objectBitmapData, &bitmapData );
int width = bitmapData.width;
int height = bitmapData.height;
int stride = bitmapData.lineStride32 * 4;
uint32_t* input = bitmapData.bits32;
// make data provider from buffer
CGDataProviderRef provider = CGDataProviderCreateWithData(NULL, bitmapData.bits32, (width * height * 4), NULL);
// set up for CGImage creation
int bitsPerComponent = 8;
int bitsPerPixel = 32;
int bytesPerRow = 4 * width;
CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB();
CGBitmapInfo bitmapInfo;
if( bitmapData.hasAlpha )
{
if( bitmapData.isPremultiplied )
bitmapInfo = kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst;
else
bitmapInfo = kCGBitmapByteOrder32Little | kCGImageAlphaFirst;
}
else
{
bitmapInfo = kCGBitmapByteOrder32Little | kCGImageAlphaNoneSkipFirst;
}
CGColorRenderingIntent renderingIntent = kCGRenderingIntentDefault;
CGImageRef imageRef = CGImageCreate(width, height, bitsPerComponent, bitsPerPixel, bytesPerRow, colorSpaceRef, bitmapInfo, provider, NULL, NO, renderingIntent);
// make UIImage from CGImage
UIImage *myImage = [UIImage imageWithCGImage:imageRef];
NSData* jpgData = UIImageJPEGRepresentation( myImage, 0.9 );
FREReleaseBitmapData( objectBitmapData );
FREObject objectByteArray = argv[ 1 ];
FREByteArray byteArray;
FREObject length;
FRENewObjectFromUint32( jpgData.length, &length );
FRESetObjectProperty( objectByteArray, ( const uint8_t* ) "length", length, NULL );
FREAcquireByteArray( objectByteArray, &byteArray );
memcpy( byteArray.bytes, jpgData.bytes, jpgData.length );
FREReleaseByteArray( objectByteArray );
// release bits
CGColorSpaceRelease(colorSpaceRef);
CGImageRelease(imageRef);
CGDataProviderRelease(provider);
return NULL;
关于ios - ANE、iOS 和位图数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8524388/
我发现了很棒的 Freshplanet ANE 存储库 https://github.com/freshplanet/ 我正在尝试让基本的 AirAlert 正常工作,但我不知道如何解决导入问题。 我
编写一个 Air Native Extension: 如何从 android native 代码调度事件并让 ANE 的 ActionScript 接口(interface)部分监听该事件并听到它?
我创建了一个使用区域设置通知的应用程序。为了设置通知,调用后端,并返回要设置的通知列表。我创建了一个遍历此列表的循环,并一个一个地设置通知。我注意到设置通知几乎需要一秒钟。这是我在设置通知时调用的函数
是否有任何将位图数据传递到 iOS 并返回修改后的副本的示例。我正在尝试将位图转换为 jpeg - 类似于 Windows 中的这个示例 http://blog.magicalhobo.com/201
我正在尝试在 AIR 项目中使用 JavaCV。我构建了一个 native 扩展并且它编译得很好但是在运行时我收到以下错误: W/dalvikvm(16234): VFY: unable to fin
这是我用来构建 android 应用程序的命令。 mxmlc +configname=airmobile -output Example.swf -locale=en_US -source-path+
我有一个适用于 iOS 的简单 AIR 应用程序,它有一个文本字段和一个扫描按钮。按下“扫描”按钮后,应用程序会启动一个基于 pdf417.mobi SDK 的 ANE,它使用 iPad 摄像头解码
我有一个带有 ANE 的 flex 移动应用程序。这个 ANE 有一个广播接收器,它在接收到事件时启动 flex 移动应用程序: public class BroadcastEventHandler
我尝试使用此 ANE 注册到新的 GCM: https://github.com/freshplanet/ANE-Push-NotificationiOS 推送正常,但 Android 版本卡住并显示
美好的一天 我已经用 Xcode 创建了一个静态库。然后我使用 adobe 的 ADT 工具编译了我的 ANE。此后,我将 ANE 包含在我的 FlashBuilder 项目中。但是,在尝试打包我的项
我有两个用于录像机的文件。一个适用于 Android 设备,另一个适用于 ios 设备。两者都有不同的包名称和方法。 现在,我在单个项目中导入两个Native Extension。并按以下方式检测io
我在将 ANE(我自己构建的)添加到 Flex 移动项目时遇到问题。 问题是对象的大小与添加 ANE 之前不同。我从未使用过这个 ANE,我只是添加了它。 这是我添加 ANE 之前的图像: 添加 AN
目前我正在为 AIR 开发原生扩展。我已经让它在 Android 上完美运行,现在我正在使用 iOS。到目前为止,我已经让它运行起来了,我让每个方法都做了一些基本的事情,比如显示一条警告消息。所以我知
我正在尝试创建一个 native 扩展以允许发送字节数组“png”并通过 AirPrint 打印。 有人试过吗?我的意思是字节数组。或者至少可以发送到本地镜像的路径保存在文档中。 我非常感谢任何具有良
大家,对不起我的英语不好.. 我想问“在ANE中管理资源的适当方法是什么”?? 我已经导出了 jar 库,并制作了 ANE,然后从 Air Mobile 调用。(当我从 eclipse 导出时,我检查
我试过两个版本的 In Freshplanet和 StickSports但他们都失败了。当我尝试获取产品信息时,没有抛出任何错误,只是在成功处理程序中返回了空数组。 Flash 中的 In App P
我正在尝试创建 ANE。最终结果应该是 iOS GoogleMaps ANE。 但是,我找不到足够的文档来说明如何在 Air Stage 顶部显示 native 控件或 View 。 我找到了下面的帖
我正在尝试为 armv7 和 arm64 架构编译 Adobe 教程 ANE(GitHub 存储库 here,教程 here)以使其保持最新. ADT 失败,Apple App Store 只允许
我在 Flash Builder 中的链接资源有问题。我在一个广泛使用链接资源的团队环境中工作。我们刚开始开发 ANE,注意到虽然在 libraryPathEntry 中使用了linkedResour
我正在尝试通过创建 native 扩展将最新的 Google Plus (google-play-services.jar) 支持添加到 Air 移动应用程序。代码没有编译时错误或警告,JAR 导出正
我是一名优秀的程序员,十分优秀!