二、拖控件,创建映射
三、在.h中加入delegate
- @interface ViewController : UIViewController
-
-(IBAction)chooseImage:(id)sender {
-
-
UIActionSheet *sheet;
-
-
// 判断是否支持相机
-
-
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
-
-
{
-
sheet = [[UIActionSheet alloc] initWithTitle:@"选择" delegate:self cancelButtonTitle:nil destructiveButtonTitle:@"取消" otherButtonTitles:@"拍照",@"从相册选择", nil];
-
-
}
-
-
else {
-
-
sheet = [[UIActionSheet alloc] initWithTitle:@"选择" delegate:self cancelButtonTitle:nil destructiveButtonTitle:@"取消" otherButtonTitles:@"从相册选择", nil];
-
-
}
-
-
sheet.tag = 255;
-
-
[sheet showInView:self.view];
-
- }
-
-(void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
-
{
-
if (actionSheet.tag == 255) {
-
-
NSUInteger sourceType = 0;
-
-
// 判断是否支持相机
-
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
-
-
switch (buttonIndex) {
-
case 0:
-
// 取消
-
return;
-
case 1:
-
// 相机
-
sourceType = UIImagePickerControllerSourceTypeCamera;
-
break;
-
-
case 2:
-
// 相册
-
sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
-
break;
-
}
-
}
-
else {
-
if (buttonIndex == 0) {
-
-
return;
-
} else {
-
sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
-
}
-
}
-
// 跳转到相机或相册页面
-
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
-
-
imagePickerController.delegate = self;
-
-
imagePickerController.allowsEditing = YES;
-
-
imagePickerController.sourceType = sourceType;
-
-
[self presentViewController:imagePickerController animated:YES completion:^{}];
-
-
[imagePickerController release];
-
}
- }
-
#pragma mark - image picker delegte
-
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
-
{
-
[picker dismissViewControllerAnimated:YES completion:^{}];
-
-
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
-
/* 此处info 有六个值
-
* UIImagePickerControllerMediaType; // an NSString UTTypeImage)
-
* UIImagePickerControllerOriginalImage; // a UIImage 原始图片
-
* UIImagePickerControllerEditedImage; // a UIImage 裁剪后图片
-
* UIImagePickerControllerCropRect; // an NSValue (CGRect)
-
* UIImagePickerControllerMediaURL; // an NSURL
-
* UIImagePickerControllerReferenceURL // an NSURL that references an asset in the AssetsLibrary framework
-
* UIImagePickerControllerMediaMetadata // an NSDictionary containing metadata from a captured photo
-
*/
-
// 保存图片至本地,方法见下文
-
[self saveImage:image withName:@"currentImage.png"];
-
-
NSString *fullPath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"currentImage.png"];
-
-
UIImage *savedImage = [[UIImage alloc] initWithContentsOfFile:fullPath];
-
-
isFullScreen = NO;
-
[self.imageView setImage:savedImage];
-
-
self.imageView.tag = 100;
-
-
}
-
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
-
{
-
[self dismissViewControllerAnimated:YES completion:^{}];
- }
高保真压缩图片方法
-
NSData * UIImageJPEGRepresentation ( UIImage *image, CGFloat compressionQuality
- )
-
#pragma mark - 保存图片至沙盒
-
- (void) saveImage:(UIImage *)currentImage withName:(NSString *)imageName
-
{
-
-
NSData *imageData = UIImageJPEGRepresentation(currentImage, 0.5);
-
// 获取沙盒目录
-
-
NSString *fullPath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:imageName];
-
// 将图片写入文件
-
-
[imageData writeToFile:fullPath atomically:NO];
- }
-
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
-
{
-
-
isFullScreen = !isFullScreen;
-
UITouch *touch = [touches anyObject];
-
-
CGPoint touchPoint = [touch locationInView:self.view];
-
-
CGPoint imagePoint = self.imageView.frame.origin;
-
//touchPoint.x ,touchPoint.y 就是触点的坐标
-
-
// 触点在imageView内,点击imageView时 放大,再次点击时缩小
-
if(imagePoint.x <= touchPoint.x && imagePoint.x +self.imageView.frame.size.width >=touchPoint.x && imagePoint.y <= touchPoint.y && imagePoint.y+self.imageView.frame.size.height >= touchPoint.y)
-
{
-
// 设置图片放大动画
-
[UIView beginAnimations:nil context:nil];
-
// 动画时间
-
[UIView setAnimationDuration:1];
-
-
if (isFullScreen) {
-
// 放大尺寸
-
-
self.imageView.frame = CGRectMake(0, 0, 320, 480);
-
}
-
else {
-
// 缩小尺寸
-
self.imageView.frame = CGRectMake(50, 65, 90, 115);
-
}
-
-
// commit动画
-
[UIView commitAnimations];
-
-
}
-
- }
-
ASIFormDataRequest *requestReport = [[ASIFormDataRequest alloc] initWithURL:服务器地址];
-
-
NSString *Path = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"currentImage.png"];
-
-
[requestReport setFile:Path forKey:@"picturepath"];
-
-
[requestReport buildPostBody];
-
-
requestReport.delegate = self;
-
- [requestReport startAsynchronous];
版权声明:本文为博主原创文章,未经博主允许不得转载。