拍照上传图片的压缩
来源:互联网 发布:算法竞赛书籍推荐 知乎 编辑:程序博客网 时间:2024/04/30 12:04
#pragma mark - UIImagePickerController delegate
//选择玩图片成功回调
- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString*,id> *)info{
[HITAudioPlayerManagerInstacnestartPalyAudioByFileName:@"bt_back"andType:@"wav"];
[picker dismissViewControllerAnimated:YEScompletion:nil];
if (self.type== 1) {
if ([self.delegaterespondsToSelector:@selector(selectImageBackWithImage:)]) {
[self.delegateselectImageBackWithImage:self.topShowImageView.image];
[self.navigationControllerpopViewControllerAnimated:YES];
return;
}
}
// HITSubmitImageViewController *submitImageVC = [[HITSubmitImageViewController alloc]init];
// submitImageVC.submitImage = info[@"UIImagePickerControllerOriginalImage"];
// [self.navigationController pushViewController:submitImageVC animated:YES];
// UIImage *imageNew = [self scaleToSize:info[@"UIImagePickerControllerOriginalImage"] size:CGSizeMake(kSCREEN_WIDTH, kSCREEN_HEIGHT - 100)];//上传拍照图片的处理
UIImage *image = [selfcompressImage:info[@"UIImagePickerControllerOriginalImage"]newWidth:(kSCREEN_WIDTH,kSCREEN_HEIGHT - 100)];
// UIImage *imageNew = [info objectForKey:@"UIImagePickerControllerEditedImage"];
// NSData *updata = UIImageJPEGRepresentation(imageNew,0.5f);
// UIImage *image = [UIImage imageWithData: updata];
AGViewController *agview = [[AGViewControlleralloc]init];
agview.imagess= image;//UIImagePickerControllerEditedImage修改后的图片//UIImagePickerControllerOriginalImage原始图片//info[@"UIImagePickerControllerOriginalImage"]
agview.delegateImage= self;
[selfpresentViewController:agviewanimated:YEScompletion:nil];
//选择玩图片成功回调
- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString*,id> *)info{
[HITAudioPlayerManagerInstacnestartPalyAudioByFileName:@"bt_back"andType:@"wav"];
[picker dismissViewControllerAnimated:YEScompletion:nil];
if (self.type== 1) {
if ([self.delegaterespondsToSelector:@selector(selectImageBackWithImage:)]) {
[self.delegateselectImageBackWithImage:self.topShowImageView.image];
[self.navigationControllerpopViewControllerAnimated:YES];
return;
}
}
// HITSubmitImageViewController *submitImageVC = [[HITSubmitImageViewController alloc]init];
// submitImageVC.submitImage = info[@"UIImagePickerControllerOriginalImage"];
// [self.navigationController pushViewController:submitImageVC animated:YES];
// UIImage *imageNew = [self scaleToSize:info[@"UIImagePickerControllerOriginalImage"] size:CGSizeMake(kSCREEN_WIDTH, kSCREEN_HEIGHT - 100)];//上传拍照图片的处理
UIImage *image = [selfcompressImage:info[@"UIImagePickerControllerOriginalImage"]newWidth:(kSCREEN_WIDTH,kSCREEN_HEIGHT - 100)];
// UIImage *imageNew = [info objectForKey:@"UIImagePickerControllerEditedImage"];
// NSData *updata = UIImageJPEGRepresentation(imageNew,0.5f);
// UIImage *image = [UIImage imageWithData: updata];
AGViewController *agview = [[AGViewControlleralloc]init];
agview.imagess= image;//UIImagePickerControllerEditedImage修改后的图片//UIImagePickerControllerOriginalImage原始图片//info[@"UIImagePickerControllerOriginalImage"]
agview.delegateImage= self;
[selfpresentViewController:agviewanimated:YEScompletion:nil];
}
/**
* 等比缩放本图片大小
*
* @param newImageWidth 缩放后图片宽度,像素为单位
*
* @return self-->(image)
*/
- (UIImage*)compressImage:(UIImage*)image newWidth:(CGFloat)newImageWidth
{
if (!image)return nil;
float imageWidth = image.size.width;
float imageHeight = image.size.height;
float width = newImageWidth;
float height = image.size.height/(image.size.width/width);
float widthScale = imageWidth /width;
float heightScale = imageHeight /height;
// 创建一个bitmap的context
// 并把它设置成为当前正在使用的context
UIGraphicsBeginImageContext(CGSizeMake(width, height));
if (widthScale > heightScale) {
[image drawInRect:CGRectMake(0,0, imageWidth /heightScale , height)];
}
else {
[image drawInRect:CGRectMake(0,0, width , imageHeight /widthScale)];
}
// 从当前context中创建一个改变大小后的图片
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
// 使当前的context出堆栈
UIGraphicsEndImageContext();
return newImage;
*
* @param newImageWidth 缩放后图片宽度,像素为单位
*
* @return self-->(image)
*/
- (UIImage*)compressImage:(UIImage*)image newWidth:(CGFloat)newImageWidth
{
if (!image)return nil;
float imageWidth = image.size.width;
float imageHeight = image.size.height;
float width = newImageWidth;
float height = image.size.height/(image.size.width/width);
float widthScale = imageWidth /width;
float heightScale = imageHeight /height;
// 创建一个bitmap的context
// 并把它设置成为当前正在使用的context
UIGraphicsBeginImageContext(CGSizeMake(width, height));
if (widthScale > heightScale) {
[image drawInRect:CGRectMake(0,0, imageWidth /heightScale , height)];
}
else {
[image drawInRect:CGRectMake(0,0, width , imageHeight /widthScale)];
}
// 从当前context中创建一个改变大小后的图片
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
// 使当前的context出堆栈
UIGraphicsEndImageContext();
return newImage;
}
0 0
- 拍照上传图片的压缩
- 前端中用手机拍照压缩,上传图片压缩
- [iOS 拍照上传] 上传图片 旋转 + 压缩大小
- EasySwift/YXJImageCompressor 图片压缩,拍照上传压缩图片,比例压缩,data压缩,方便好用
- vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
- 移动端上传图片 支持图片预览、压缩、大图分片压缩、压缩后上传 解决了IOS竖屏拍照旋转90度的问题
- android 类似于微博拍照上传,压缩图片,避免oom
- android 拍照或选择相册图片压缩上传
- vuejs组件分享H5图片上传、压缩,拍照旋转
- 手机拍照及简单的图片压缩
- 拍照上传的图片被旋转问题
- 拍照上传图片
- 图片压缩上传 上传 压缩
- 手机拍照并压缩图片
- 摄像头拍照之压缩图片
- Android初学------拍照之后获取没有被压缩的图片
- android拍照,并获取压缩后的图片。
- Android部分手机拍照上传返回为空处理,和拍照后图片压缩后保存到指定路径下
- redis实现排序分页
- iOS开发中的英文单词翻译
- Gstreamer插件教程2.8—编写一个插件(Writing a Plugin):信号(Signals)
- 一次服务器调试经历
- aidl使用笔记
- 拍照上传图片的压缩
- 根据卡号识别银行卡类型
- Android activity销毁时返回数据:
- leecode 解题总结:88. Merge Sorted Array
- SequenceGenerator
- 帝国cms信息反馈开启验证码
- 为什么要学习Haskell语言
- UIView阴影
- 打印三角形(直角与等腰),打印等边(递归实现)