zoukankan      html  css  js  c++  java
  • 攻略 10-4: 缩放图像

    -(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 }
  • 相关阅读:
    [hdu2196]Computer树的直径
    [poj2342]Anniversary party树形dp入门
    链式前向星模板
    LintCode-50.数组剔除元素后的乘积
    Markdown的基本语法
    LintCode-8.旋转字符串
    LintCode-1.A + B 问题
    LintCode-61.搜索区间
    LintCode-88.最近公共祖先
    LintCode-54.转换字符串到整数
  • 原文地址:https://www.cnblogs.com/fengmin/p/5578393.html
Copyright © 2011-2022 走看看