-(void)configureDetailsWithImage:(UIImage *)image label:(NSString *)label showsButtons:(BOOL)showsButton
{
self.imageView.image = image;
self.detailDescriptionLabel.text = label;
if (showsButton == NO)
{
self.selectImageButton.hidden = YES;
self.clearImageButton.hidden = YES;
}
else if (showsButton == YES)
{
self.selectImageButton.hidden = NO;
self.clearImageButton.hidden = NO;
}
}
-(void)setMainImage:(UIImage *)image
{
[self.filteredImages removeAllObjects];
if (image != nil)
{
[self populateImageViewWithImage:image];
}
_mainImage = image;
NSIndexPath *currentIndexPath = self.tableView.indexPathForSelectedRow;
[self.tableView reloadData];
[self.tableView selectRowAtIndexPath:currentIndexPath animated:YES scrollPosition:UITableViewScrollPositionTop];
}
1 + (UIImage *)scaleImage:(UIImage *)image toSize:(CGSize)size
2 {
3 UIGraphicsBeginImageContext(size);
4 [image drawInRect:CGRectMake(0, 0, size.width, size.height)];
5 UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
6 UIGraphicsEndImageContext();
7 return scaledImage;
8 }
9
10 + (UIImage *)aspectScaleImage:(UIImage *)image toSize:(CGSize)size
11 {
12 if (image.size.height < image.size.width)
13 {
14 float ratio = size.height / image.size.height;
15 CGSize newSize = CGSizeMake(image.size.width * ratio, size.height);
16
17 UIGraphicsBeginImageContext(newSize);
18 [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
19 }
20 else
21 {
22 float ratio = size.width / image.size.width;
23 CGSize newSize = CGSizeMake(size.width, image.size.height*ratio);
24
25 UIGraphicsBeginImageContext(newSize);
26 [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
27 }
28 UIImage *aspectScaledImage = UIGraphicsGetImageFromCurrentImageContext();
29 UIGraphicsEndImageContext();
30 return aspectScaledImage;
31 }
32
33 + (UIImage *)aspectFillImage:(UIImage *)image toSize:(CGSize)size
34 {
35 UIGraphicsBeginImageContext(size);
36 if (image.size.height< image.size.width)
37 {
38 float ratio = size.height/image.size.height;
39 [image drawInRect:CGRectMake(0, 0, image.size.width*ratio, size.height)];
40 }
41 else
42 {
43 float ratio = size.width/image.size.width;
44 [image drawInRect:CGRectMake(0, 0, size.width, image.size.height*ratio)];
45 }
46 UIImage *aspectScaledImage = UIGraphicsGetImageFromCurrentImageContext();
47 UIGraphicsEndImageContext();
48 return aspectScaledImage;
49 }
1 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
2 {
3 if (self.mainImage != nil)
4 {
5 UIImage *image;
6 NSString *label;
7 BOOL showsButtons = NO;
8 if (indexPath.row == 0)
9 {
10 image = self.mainImage;
11 label = @"Select an Image to Display";
12 showsButtons = YES;
13 }
14 else if (indexPath.row == 1)
15 {
16 image = [MasterViewController scaleImage:self.mainImage toSize:self.detailViewController.imageView.frame.size];
17 label = @"Chosen Image Resized";
18 }
19 else if (indexPath.row == 2)
20 {
21 image = [MasterViewController aspectScaleImage:self.mainImage toSize:self.detailViewController.imageView.frame.size];
22 label = @"Chosen Image Scaled";
23 }
24 else if (indexPath.row == 3)
25 {
26 image = [self.filteredImages objectAtIndex:0];
27 CGSize contentSize = self.detailViewController.imageView.frame.size;
28 image = [MasterViewController aspectScaleImage:image toSize:contentSize];
29 label = @"Hue Adjustment";
30 }
31 else if (indexPath.row == 4)
32 {
33 image = [self.filteredImages objectAtIndex:1];
34 CGSize contentSize = self.detailViewController.imageView.frame.size;
35 image = [MasterViewController aspectScaleImage:image toSize:contentSize];
36 label = @"Straightening Filter";
37 }
38 else if (indexPath.row == 5)
39 {
40 image = [self.filteredImages objectAtIndex:2];
41 CGSize contentSize = self.detailViewController.imageView.frame.size;
42 image = [MasterViewController aspectScaleImage:image toSize:contentSize];
43 label = @"Series Filter";
44 }
45 [self.detailViewController configureDetailsWithImage:image label:label showsButtons:showsButtons];
46 }
47 }