在自由飞行示例应用程序(ARDrone)中使用ARDrone捕获静止图像

时间:2011-06-26 04:04:56

标签: iphone ios ios4 opengl-es ar.drone

我一直在试图从SDK中的自由飞行示例应用程序中获取ARDrone的静止图像,我似乎找不到干净的方法来做到这一点。 SDK和应用程序交织在一起,让我无法抓住Open GL纹理。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>

@interface UIView (Screenshot)

- (UIImage *)screenshot;

@end
#import "UIView+Screenshot.h"

@implementation UIView (Screenshot)

- (UIImage *)screenshot
{
    UIGraphicsBeginImageContext(self.bounds.size);
    [[UIColor clearColor] setFill];
    [[UIBezierPath bezierPathWithRect:self.bounds] fill];
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    [self.layer renderInContext:ctx];
    UIImage *anImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();    
    return anImage;
}

@end

添加上面的UIView类别,然后使用

UIImage *image = [self.view screenshot];

答案 1 :(得分:0)

如果您不想直接浏览SDK或FreeFlight应用程序,请查看felixge的node.js客户端,以便与AR Drone进行交互:https://github.com/felixge/node-ar-drone

他有一个有用的PNG stream example。您可以运行此操作,然后在本地主机上获取图片。

(这里的主要缺点是你无法用你的iPhone应用程序等控制无人机,但必须通过node.js发送飞行命令。这实际上可能是一个优势,取决于你的喜欢做。)