我正在IOS中做一个图像处理应用程序。我已经在一个 Objective-C 原生应用程序中完成了基本的图像转换任务。现在我需要将它嵌入到 phonegap 插件应用程序中。假设我有一种方法可以从 phonegap 端获取图像(图像 url)到我的本机插件。我现在将图像转换为灰度并将其作为 UIImage 返回。我想知道它应该如何转换并以一种可以发送到 phonegap 端并在 Image 控件中查看的方式传递。
有人可以告诉我如何做到这一点。
我正在IOS中做一个图像处理应用程序。我已经在一个 Objective-C 原生应用程序中完成了基本的图像转换任务。现在我需要将它嵌入到 phonegap 插件应用程序中。假设我有一种方法可以从 phonegap 端获取图像(图像 url)到我的本机插件。我现在将图像转换为灰度并将其作为 UIImage 返回。我想知道它应该如何转换并以一种可以发送到 phonegap 端并在 Image 控件中查看的方式传递。
有人可以告诉我如何做到这一点。
您可以将图像转换为 base64 并将图像作为字符串发送到您的插件 successCallback。
以下是您可以执行的操作的基本实现
// EDPicturePlugin.h
@interface EDPicturePlugin : CDVPlugin <EDCameraControllerDelegate>
- (void)takePicture:(CDVInvokedUrlCommand*)command;
@end
// EDPicturePlugin.m
@interface EDPicturePlugin()
@property (nonatomic, retain) NSString *callbackID;
@end
@implementation EDPicturePlugin
- (void)takePicture:(CDVInvokeUrlCommand*)command
{
self.callbackID = command.callbackID;
EDCameraController *cameraController = [[EDCameraController alloc] init]
cameraController.delegate = self;
[self.viewController presentViewController:cameraController];
[cameraController release];
}
// EDCameraControllerDelegate
- (void)cameraController:(EDCameraController*)controller
didFinishTakingImageWithInfo:(NSDictionary*)info
{
UIImage *image = info[@"image"];
NSString *base64 = [NSString stringWithFormat:@"data:image/jpeg;base64",[UIImageJPEGRepresentation(image, 0.95) base64EncodedString];
CDVPluginResult *result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK
messageAsString:base64];
[self.commandDelegate sendPluginResult:pluginResult callbackId:self.callbackID];
[callbackID release];
}
@end
-(NSString *)UIImageToBaseSixtyFour:(UIImage *)sourceImage
{
NSData *imageData = UIImageJPEGRepresentation(sourceImage, 1.0);
NSString *base64 = [NSString stringWithFormat:@"%@",[UIImageJPEGRepresentation(sourceImage, 0.95) base64EncodedString]];
return base64;
}
那是我的代码。它工作正常。我只是尝试将 base64 打印到 NSLog,它给了我输出。
除此之外,我需要从 git hub github.com/l4u/NSData-Base64 获取 NSdata+Base64.h 和 NSdata+Base64.m 文件并添加到我的项目中并导入“NSData+Base64.h”文件。它工作正常。