iOS 绘图(drawrect)图片裁剪的红色框框

随着手指在屏幕上滑会实时显示一个红色框框,可以用来裁剪图片。新建一个UIView类继承于UIView,在里面进行绘图操作。在需要的UIViewController里实现代理方法即可。图片裁剪方法,以后会详细介绍,这里不做讲解。效果图和代码如下:

//  MyView.h

//  头像编辑

//  Created by Dong on 15/5/8.

//  Copyright (c) 2015年 Dong. All rights reserved.

#import <UIKit/UIKit.h>

// 代理传图片

@protocol getEditedImageDelegate <NSObject>

- (void)getNewImage:(CGRect)newRect;

@end

@interface MyView :
UIView

@property (nonatomic,
strong) UIImageView *imageView;

// 图片

@property (nonatomic,
strong) UIImage *myImage;

@property (nonatomic,
assign)id<getEditedImageDelegate>getImageDelegate;

@end

//  MyView.m

//  头像编辑

//  Created by Dong on 15/5/8.

//  Copyright (c) 2015年 Dong. All rights reserved.

#import "MyView.h"

@implementation MyView

{

CGPoint firstTouch;

CGPoint lastTouch;

CGPoint lastTouch1;

}

- (instancetype)initWithFrame:(CGRect)frame

{

self = [super
initWithFrame:frame];

if (self) {

}

return
self;

}

// 开始触摸

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

UITouch *touch = [touches
anyObject];

//
获取触摸点

firstTouch = [touch
locationInView:self];

}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

{

UITouch *touch = [touches
anyObject];

lastTouch = [touch
locationInView:self];

/**

* 此时会实时绘制起始点与用户手指拖动点之间的形状

*/

[self
setNeedsDisplay];

}

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

{

UITouch *touch = [touches
anyObject];

lastTouch = [touch
locationInView:self];

[self
setNeedsDisplay];

CGRect rec =
CGRectMake(firstTouch.x,
firstTouch.y,
lastTouch.x -
firstTouch.x,
lastTouch.y -
firstTouch.y);

/**

*

* 获取裁剪图片大小的代理方法

* */

[self.getImageDelegate
getNewImage:rec];

}

// 获取矩形

- (CGRect)curRect

{

return
CGRectMake(firstTouch.x,
firstTouch.y,
lastTouch.x -
firstTouch.x,
lastTouch.y -
firstTouch.y);

}

- (void)drawRect:(CGRect)rect {

// Drawing code

//
获得设备上下文 把视图当做画布

CGContextRef context = UIGraphicsGetCurrentContext();

// 需要显示的红色框框

CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);

CGContextStrokeRect(context, [self curRect]);

}

@end

时间: 2024-11-09 00:35:05

iOS 绘图(drawrect)图片裁剪的红色框框的相关文章

ios 将矩形图片裁剪成圆形图片

在ios中将一个正方形的图片裁剪成圆形的图片是一件非常容易的事情, 直接设置 imageView.layer.cornerRadius 这个属性, 再设置 imageView.clipsToBounds = YES 就可以了, 但是对于长方形的图片来说这个方式裁剪出来的就不是一个圆形的了, 而是个椭圆的. 解决这个问题就需要自己画 并且需要计算. 最终效果图如下: tips: 如果是裁剪矩形的话, 是从图片中心的位置为圆心剪裁的. 代码如下: @implementation UIImage (C

ios 图片裁剪

/** *  图片裁剪 裁剪原理: 先在控制器上确定一个区域,然后再把要把需要裁剪的图片该区域上面,超出区域的图片都不显示 * *  @param rect */-(void) drawRect:(CGRect)rect{    CGContextRef ref = UIGraphicsGetCurrentContext();        // 首先画圆    CGContextAddEllipseInRect(ref, CGRectMake(100, 100, 100, 100));    

react-native多图选择、图片裁剪(支持ad/ios图片个数控制)

扯淡: 目前关于rn比较知名并且封装好的图片选择控件很多,不过能同时支持多图片上传,个数控制兼容iOS/Ad的却寥寥无几,而今天介绍的这款框架可以实现:图片裁剪.最大图片个数限制.拍照.本地相册等功能. 效果:        使用简介: 原理:react-native-syan-image-picker多图片选择器: Android 基于 PictureSelector 2.0 iOS 基于 TZImagePickerController 1.9.0 iOS/android配置:具体步骤参考:h

iOS边练边学--(Quartz2D)图片裁剪,带圆环的裁剪

一.图片裁剪,示意图 二.带圆环的图片裁剪示意图

iOS UIImage 图片水印,图片裁剪,屏幕截图,背景平铺

图片水印功能 1 #import "UIImage+ZR.h" 2 3 @implementation UIImage (ZR) 4 + (instancetype)waterImageWithBg:(NSString *)bg logo:(NSString *)logo 5 { 6 UIImage *bgImage = [UIImage imageNamed:bg]; 7 8 // 1.创建一个基于位图的上下文(开启一个基于位图的上下文) 9 UIGraphicsBeginImage

iOS绘图教程

Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎.它提供了低级别.轻量级.高保真度的2D渲染.该框架可以用于基于路径的绘图.变换.颜色管理.脱屏渲染,模板.渐变.遮蔽.图像数据管理.图像的创建.遮罩以及PDF文档的创建.显示和分析.为了从感官上对这些概念做一个入门的认识,你可以运行一下官方的example code. iOS支持两套图形API族:Core Graphics/QuartZ 2D 和OpenGL ES.OpenGL ES是跨平台的

IOS绘图探索

参考:http://www.cocoachina.com/industry/20140115/7703.html 参考:http://blog.sina.com.cn/s/blog_6b60259a0101c90g.html 参考原文:http://www.cnblogs.com/xdream86/archive/2012/12/12/2814552.html UIBazier使用参考:http://blog.csdn.net/guo_hongjun1611/article/details/78

ios绘图教程(转摘)

Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎.它提供了低级别.轻量级.高保真度的2D渲染.该框架可以用于基于路径的绘图.变换.颜色管理.脱屏渲染,模板.渐变.遮蔽.图像数据管理.图像的创建.遮罩以及PDF文档的创建.显示和分析.为了从感官上对这些概念做一个入门的认识,你可以运行一下官方的example code. iOS支持两套图形API族:Core Graphics/QuartZ 2D 和OpenGL ES.OpenGL ES是跨平台的

iOS绘图详解

Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎.它提供了低级别.轻量级.高保真度的2D渲染.该框架可以用于基于路径的绘图.变换.颜色管理.脱屏渲染,模板.渐变.遮蔽.图像数据管理.图像的创建.遮罩以及PDF文档的创建.显示和分析.为了从感官上对这些概念做一个入门的认识,你可以运行一下官方的 example code. iOS支持两套图形API族:Core Graphics/QuartZ 2D 和OpenGL ES.OpenGL ES是跨平台