ios - UIImagePickerControllerEditedImage 以黑色背景保存图像
问题描述
我正在使用 UIImagePickerController 来保存我的图像。但是,如果我选择图像并调整图像缩放,它将保存不完整的图像(黑色背景如下)。在这种情况下如何保存合适的图像?请帮忙。谢谢你。
我当前的代码在这里: -
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
UIImage *image = [info objectForKey:@"UIImagePickerControllerEditedImage"];
image = [self scaleImage:image toSize:CGSizeMake(200,200)]; // or some other size
if (image == nil) {
image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
}
if (image.imageOrientation != UIImageOrientationUp) {
image = [self fixOrientation:image];
}
if (_imageName==nil || _imageName.length == 0) {
NSDate *date = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"YYYY-MM-dd hh:mm:ss"];
NSString *dateStr = [formatter stringFromDate:date];
_imageName = [NSString stringWithFormat:@"photo_%@.png",dateStr];
}
[[self getCurrentVC] dismissViewControllerAnimated:YES completion:nil];
if (_delegate && [_delegate respondsToSelector:@selector(selectPhotoManagerDidFinishImage:)]) {
[_delegate selectPhotoManagerDidFinishImage:image];
}
if (_successHandle) {
_successHandle(self,image);
}
}
- (UIImage *) scaleImage:(UIImage*)image toSize:(CGSize)newSize {
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
解决方案
推荐阅读
- php - 将一百条记录写入文件
- selenium-chromedriver - 获取 ChromeDriver 安装失败“未找到中央目录记录签名的结尾”
- java - java.sql.SQLNonTransientException: [Amazon][JDBC](10900) 并非所有参数都已填充
- javascript - 为 React 应用程序配置 Firebase - 未定义的配置
- javascript - 如何处理 promise 和箭头函数返回响应
- spring - 如何使用 bean 方法名称注入依赖项?
- haskell - 元组+自定义数据类型理解列表
- python - Heroku 上的 Django 连接到 Azure 数据库
- python - 如何在 Python 中创建这个矩阵?
- excel - ODBC 连接在网络上失败,但在不在网络上的计算机上工作正常