我正在生成一个 UIImage :
//scale UIView size to match underlying UIImage size
float scaleFactor = 10.0
UIGraphicsBeginImageContextWithOptions(self.bounds.size, self.opaque, scaleFactor);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage* image = UIGraphicsGetImageFromCurrentImageContext();
UIImage 的大小为 3200x2400,这正是我想要的。但是,当我转换为 PNG 格式以作为电子邮件附件发送时:
NSData* data = UIImagePNGRepresentation(image);
MFMailComposeViewController* controller;
...
[controller addAttachmentData:data mimeType:mimeType fileName:.fileName];
我最终得到的图像是 720 ppi,因此约为 12.8mb。这太大了。
我不知道 720 ppi 来自哪里,UIImage 是从 72 ppi 的图像生成的。它必须与以下内容有关:
UIGraphicsBeginImageContextWithOptions(self.bounds.size, self.opaque,scaleFactor);
我需要根据底层 UIImage(比 UIView 的边界大得多)从 UIView 创建 UIImage,但我需要维护原始 ppi。720 ppi 对于电子邮件附件来说太不切实际了。
有什么想法吗?