-(IBAction)selectImageBtnClicked:(id)sender
{
UIImagePickerController * picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:picker animated:YES completion:nil];
[picker release]; }
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissViewControllerAnimated:YES completion:nil];
[[picker parentViewController] dismissViewControllerAnimated:YES
完成:无];
UIImage *pTakenImage = [info objectForKey:UIImagePickerControllerEditedImage];
if (!pTakenImage)
pTakenImage = [info objectForKey:UIImagePickerControllerOriginalImage];
[self performSelectorOnMainThread:@selector(proceedFURTHER:)
withObject:pTakenImage waitUntilDone:NO]; }
-(void) 继续: (UIImage*)pTakenImage {
UIImage *pResizedImage = [self resizeImageToMaxSize:640.0 anImage:pTakenImage];
[self saveOriginalImageToDir:pTakenImage];
//add pResizedImage to your scrolview here
[self.navigationController popViewControllerAnimated:YES]; }
-(UIImage*)resizeImageToMaxSize:(CGFloat)max anImage:(UIImage*)anImage {
NSData * imgData = UIImageJPEGRepresentation(anImage, 1);
CGImageSourceRef imageSource =
CGImageSourceCreateWithData((CFDataRef)imgData, NULL);
如果 (!imageSource)
返回零;
CFDictionaryRef options =
(CFDictionaryRef)[NSDictionary dictionaryWithObjectsAndKeys:
(id)kCFBooleanTrue, (id)kCGImageSourceCreateThumbnailWithTransform,
(id)kCFBooleanTrue, (id)kCGImageSourceCreateThumbnailFromImageIfAbsent,
(id)[NSNumber numberWithFloat:max],
(id)kCGImageSourceThumbnailMaxPixelSize, nil];
CGImageRef imgRef =
CGImageSourceCreateThumbnailAtIndex(imageSource, 0, options);
UIImage* scaled = [UIImage imageWithCGImage:imgRef];
CGImageRelease(imgRef);
CFRelease(imageSource);
return scaled;
}
-(NSString*)getOriginalImageDirectoryPath {
NSArray *paths =
NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
NSUserDomainMask,是的);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *filePath =
[documentsPath stringByAppendingPathComponent:@"scaledimage.png"];
return filePath; }
-(void) saveOriginalImageToDir :(UIImage*)image {
NSString *filePath = [self getOriginalImageDirectoryPath];
if([[NSFileManager defaultManager] fileExistsAtPath:filePath])
[[NSFileManager defaultManager] removeItemAtPath:filePath error:nil];
NSData *data = UIImagePNGRepresentation(image);
[data writeToFile:filePath atomically:YES];
data = nil; }