ios - UIimage 到 NSData 返回 Null

标签 ios email uiimage clipboard nsdata

我创建了一个二维码图像并将其显示在 UIImageView 中

NSString *QRMessage = @"MESSAGE";

NSData *data = [QRMessage dataUsingEncoding:NSISOLatin1StringEncoding allowLossyConversion:false];
CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
[filter setValue:data forKey:@"inputMessage"];
[filter setValue:@"Q" forKey:@"inputCorrectionLevel"];

imageQRCode = filter.outputImage; // imageQRCode is CIImage
ivQR.image = [UIImage imageWithCIImage: imageQRCode]; // ivQR is UIImageView

我正在尝试保存图像,以便用户可以通过某种方式将 QR 码发送给其他人。我首先尝试像这样将它保存到“剪贴板”...

UIPasteboard *pasteBoard = [UIPasteboard pasteboardWithName:UIPasteboardNameGeneral create:NO];
[pasteBoard setPersistent:true];
[pasteBoard setImage:ivQR.image];

...但似乎剪贴板中没有保存任何内容。

然后我尝试将 UIImage 转换为 NSData 并将其添加为附件,如下所示:

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
UIImage *imageToSend = [UIImage imageWithCIImage:imageQRCode];
NSData *data = UIImageJPEGRepresentation(imageToSend,1);
[picker addAttachmentData:data  mimeType:@"image/jpeg" fileName:@"QR.jpg"];

但似乎又没有附加任何东西。

我做了一些测试,似乎我从“UIImageJPEGRepresentation()”返回的 NSData 给了我“Null”数据。该图像确实显示在我的手机上,所以我想知道我是否只是将数据转换错了?

我的大部分“谷歌搜索”都告诉我我转换的方式是正确的。但大多数示例使用用户手机上的图片,或添加到应用程序本身的图片。我的图片已“创建”...那么这有什么不同吗?

我的目标是允许用户复制到剪贴板,或添加为 QR 图像的附件。非常感谢任何帮助。

最佳答案

当将 CIImage 转换为 UIImage 时,我发现 imageWithCIImage 通常不起作用。我通常使用 CIContext 方法 createCGImage 然后从中创建 UIImage:

CIImage *ciImage     = ...
CIContext *context   = [CIContext contextWithOptions:nil];
CGImageRef cgImage   = [context createCGImage:ciImage fromRect:rect];
UIImage *image       = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);

参见 Core Image Programming Guide 中的示例.

关于ios - UIimage 到 NSData 返回 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35005729/

相关文章:

ios - 为什么我的图像没有出现在 UIImage View 中?

C# Webmail.Send方法如何更改人名

iphone - 模糊效果在模拟器中正常工作,但在设备中却无法正常工作

ios - 我如何使NSString显示数组计数

ios - iPad 2 构建成功 -> 没有任何反应

iphone - iOS - 设置锁屏图像

ios - Swift 可编码,当 JSON 中缺少键时,类属性的默认值

python - 我如何获得点击电子邮件中链接的人的电子邮件地址?

html - Outlook.com/Outlook 2013 上的圆形按钮使用 TD

ios - 高效分析 UIImage 中的主色