我正在制作文档扫描应用
扫描的文档存储在应用程序结构中的临时文件中,并且该文件的路径存储在NSString变量中
此图像传递给成功加载的UIImageView
[self.cameraViewController captureImageWithCompletionHander:^(NSString *imageFilePath)
{
UIImageView *captureImageView = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:imageFilePath]];
captureImageView.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.7];
captureImageView.frame = CGRectOffset(weakSelf.view.bounds, 0, -weakSelf.view.bounds.size.height);
captureImageView.alpha = 1.0;
captureImageView.contentMode = UIViewContentModeScaleAspectFit;
captureImageView.userInteractionEnabled = YES;
[weakSelf.view addSubview:captureImageView];
然后想要将图像转换为base64准备上传。为了做到这一点,我将调用接受UIImage对象的以下内容
- (NSString *)encodeToBase64String:(UIImage *)image {
return [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
}
imageFilePath变量的值是
/private/var/mobile/Containers/Data/Application/79C28B96-275D-48F1-B701-CABD699C388D/tmp/ipdf_img_1447880304.jpeg
要从我使用此
的文件中获取图像UIImage *img = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:imageFilePath ofType:nil]];
base64String = [self encodeToBase64String:img];
问题是UIImage对象总是nill(或nill)。起初我虽然问题可能是路径,但图像在UIImageView中加载。
有人可以帮我弄清楚为什么这不会返回存储在imageFilePath变量中的图像
答案 0 :(得分:1)
替换:
UIImage *img = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:imageFilePath ofType:nil]];
使用:
UIImage *img = [UIImage imageWithContentsOfFile:imageFilePath];
您没有从捆绑中加载图片。
此外,请确保您没有尝试使用应用程序执行的完整路径。只保留相对路径,因为应用程序沙箱的路径可能随时间而变化。