第六章 图片处理

图片拉伸

例如在做聊天的时候,聊天的长度长短不一样,这时候我们就需要将美工做的一个图片进行不同程度的拉伸,来保证我们图片的美观

  • 1.第一种拉伸方法

    UIImageView * imageView = [[UIImageView alloc] init];
     imageView.frame = CGRectMake(50, 100, 200, 100);
     [self.view addSubview:imageView];
    
     UIImage * image = [UIImage imageNamed:@"chat_send_nor"];
     image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(30, 20, 20, 30) resizingMode:UIImageResizingModeTile];
     imageView.image = image;
    
resizableImageWithCapInsets:UIEdgeInsetsMake(30, 20, 20, 30) resizingMode:UIImageResizingModeTile

这句代码就是拉伸的核心代码,第一个参数代表我们拉伸图片的时候需要保护的位置,设置需要保护的位置之后,在进行拉伸的时候保护的位置就不会进行拉伸。第二个参数是代表拉伸的一个模式,有两种方式,一种是平铺,是我们目前设置的,也是默认的,一种格式拉伸。

  • 2.第二种拉伸方法

    image = [image stretchableImageWithLeftCapWidth:image.size.width * 0.5 topCapHeight:image.size.height * 0.5];

这是一种比较老的方法,只需要传入需要保护的左边和上边,苹果会自动计算拉伸的区域,拉伸的区域为 1X1的像素位置大小

  • 3.第三种拉伸方法,直接带照片管理中心设置

设置拉伸图片

图片拉伸之后,设置title可能会出现文字超出设置的背景图片,这时候我们需要设置他的contentEdgeInsets来设置button的内边距

设置聊天工具栏,笑脸,语音,textField等

  • 1.设置textField的时候,默认显示的光标贴在左边。这时候我们需要设置光标右移。textField有一个属性,leftView属性。
    UIView * view = [[UIView alloc] init];
    view.frame = CGRectMake(0, 0, 5, 0);
    view.backgroundColor = [UIColor clearColor];
    self.chatTextField.leftView = view;
    // 这个属性是为了显示设置的leftView,默认是不显示
    self.chatTextField.leftViewMode = UITextFieldViewModeAlways;

图片类

图片裁剪

// CGImageRef:需要裁剪的图片
// rect:需要裁剪的区域
// 裁剪图片是以像素为基准,rect参数是点参数
CGImageCreateWithImageInRect(CGImageRef  _Nullable image, CGRect rect)
  • 使用
    // 裁剪图片
    CGImageRef imageR = CGImageCreateWithImageInRect(backImage.image, CGRectMake(0, 0, 10, 10));

    // 将图片转成UIImage
    UIImage * image = [UIImage imageWithCGImage:imageR];

获取当前屏幕比例


    // 表示当前像素和点的比例,现在基本都是@2x,所以结果就是2
    CGFloat scale = [UIScreen mainScreen].scale;

results matching ""

    No results matching ""