前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IOS 图片上传处理 图片压缩 图片处理

IOS 图片上传处理 图片压缩 图片处理

原创
作者头像
用户7705674
修改2021-10-29 14:13:22
5.4K0
修改2021-10-29 14:13:22
举报
文章被收录于专栏:css小迷妹css小迷妹
代码语言:javascript
复制
提到从摄像头/相册获取图片是面向终端用户的,由用户去浏览并选择图片为程序使用。在这里,我们需要过UIImagePickerController类来和用户交互。
使用UIImagePickerController和用户交互,我们需要实现2个协议<UIImagePickerControllerDelegate,UINavigationControllerDelegate>。
View Code
代码如下复制代码
pragma mark 从用户相册获取活动图片

(void)pickImageFromAlbum

{

imagePicker = [[UIImagePickerController alloc] init];

imagePicker.delegate =self;

imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

imagePicker.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

imagePicker.allowsEditing =YES;



[self presentModalViewController:imagePicker animated:YES];


}
我们来看看上面的从相册获取图片,我们首先要实例化UIImagePickerController对象,然后设置imagePicker对象为当前对象,设置imagePicker的图片来源为UIImagePickerControllerSourceTypePhotoLibrary,表明当前图片的来源为相册,除此之外还可以设置用户对图片是否可编辑。
View Code
代码如下复制代码
pragma mark 从摄像头获取活动图片

(void)pickImageFromCamera

{

imagePicker = [[UIImagePickerController alloc] init];

imagePicker.delegate =self;

imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;

imagePicker.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

imagePicker.allowsEditing =YES;



[self presentModalViewController:imagePicker animated:YES];


}
//打开相机

(IBAction)touch_photo:(id)sender {
// for iphone
UIImagePickerController *pickerImage = [[UIImagePickerController alloc] init];
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

  pickerImage.sourceType = UIImagePickerControllerSourceTypeCamera;

  pickerImage.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:pickerImage.sourceType];



}

pickerImage.delegate =self;

pickerImage.allowsEditing =YES;//自定义照片样式

[self presentViewController:pickerImage animated:YES completion:nil];


}
以上是从摄像头获取图片,和从相册获取图片只是图片来源的设置不一样,摄像头图片的来源为UIImagePickerControllerSourceTypeCamera。
    在和用户交互之后,用户选择好图片后,会回调选择结束的方法。
-(void)imagePickerController:(UIImagePickerController)picker didFinishPickingMediaWithInfo:(NSDictionary)info
{

//初始化imageNew为从相机中获得的--

UIImage *imageNew = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

//设置image的尺寸

CGSize imagesize = imageNew.size;

imagesize.height =626;

imagesize.width =413;

//对图片大小进行压缩--

imageNew = [self imageWithImage:imageNew scaledToSize:imagesize];

NSData *imageData = UIImageJPEGRepresentation(imageNew,0.00001);


if(m_selectImage==nil)

{

    m_selectImage = [UIImage imageWithData:imageData];

    NSLog(@"m_selectImage:%@",m_selectImage);

    [self.TakePhotoBtn setImage:m_selectImage forState:UIControlStateNormal];

    [picker dismissModalViewControllerAnimated:YES];

   return ;

}

[picker release];


}
//对图片尺寸进行压缩--
-(UIImage)imageWithImage:(UIImage)image scaledToSize:(CGSize)newSize
{

// Create a graphics image context

UIGraphicsBeginImageContext(newSize);



// Tell the old image to draw in this new context, with the desired

// new size

[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];



// Get the new image from the context

UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();



// End the context

UIGraphicsEndImageContext();



// Return the new image.


return newImage;
}
</pre> 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图片处理
图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档