• 图像攻略


    1、绘制简单的形状

    #import <UIKit/UIKit.h>
    
    @interface MyView : UIView
    
    @property (strong, nonatomic)UIImage *image;
    
    @end
     1 #import "MyView.h"
     2 
     3 @implementation MyView
     4 
     5 - (id)initWithFrame:(CGRect)frame
     6 {
     7     self = [super initWithFrame:frame];
     8     if (self) {
     9         // Initialization code
    10     }
    11     return self;
    12 }
    13 
    14 // Only override drawRect: if you perform custom drawing.
    15 // An empty implementation adversely affects performance during animation.
    16 - (void)drawRect:(CGRect)rect
    17 {
    18     CGContextRef context = UIGraphicsGetCurrentContext();
    19     // Draw rectangle
    20     CGRect drawingRect = CGRectMake(0.0, 20.0f, 100.0f, 180.0f);
    21     const CGFloat *rectColorComponents = CGColorGetComponents([[UIColor greenColor] CGColor]);
    22     CGContextSetFillColor(context, rectColorComponents);
    23     CGContextFillRect(context, drawingRect);
    24     // Draw ellipse
    25     CGRect ellipseRect = CGRectMake(140.0f, 200.0f, 75.0f, 50.0f);
    26     const CGFloat *ellipseColorComponenets = CGColorGetComponents([[UIColor blueColor] CGColor]);
    27     CGContextSetFillColor(context, ellipseColorComponenets);
    28     CGContextFillEllipseInRect(context, ellipseRect);
    29     // Draw parallelogram
    30     CGContextBeginPath(context);
    31     CGContextMoveToPoint(context, 0.0f, 0.0f);
    32     CGContextAddLineToPoint(context, 100.0f, 0.0f);
    33     CGContextAddLineToPoint(context, 140.0f, 100.0f);
    34     CGContextAddLineToPoint(context, 40.0f, 100.0f);
    35     CGContextClosePath(context);
    36     CGContextSetGrayFillColor(context, 0.4f, 0.85f);
    37     CGContextSetGrayStrokeColor(context, 0.0, 0.0);
    38     CGContextFillPath(context);
    39     
    40     if (self.image)
    41     {
    42         CGFloat imageWidth = self.frame.size.width / 2;
    43         CGFloat imageHeight = self.frame.size.height / 2;
    44         CGRect imageRect = CGRectMake(imageWidth, imageHeight, imageWidth, imageHeight);
    45         [self.image drawInRect:imageRect];
    46     }
    47 }
    48 
    49 @end

    2、屏幕截图编程

    #import <UIKit/UIKit.h>
    #import <QuartzCore/QuartzCore.h>
    #import "MyView.h"
    
    @interface ViewController : UIViewController
    
    @property (weak, nonatomic) IBOutlet MyView *myView;
    
    @end
     1 #import "ViewController.h"
     2 
     3 @interface ViewController ()
     4 
     5 @end
     6 
     7 @implementation ViewController
     8 
     9 - (void)viewDidLoad
    10 {
    11     [super viewDidLoad];
    12     // Do any additional setup after loading the view, typically from a nib.
    13 }
    14 
    15 - (void)didReceiveMemoryWarning
    16 {
    17     [super didReceiveMemoryWarning];
    18     // Dispose of any resources that can be recreated.
    19 }
    20 
    21 - (BOOL) canBecomeFirstResponder
    22 {
    23     return YES;
    24 }
    25 
    26 - (void) viewWillAppear: (BOOL)animated
    27 {
    28     [self.view becomeFirstResponder];
    29     [super viewWillAppear:animated];
    30 }
    31 
    32 - (void) viewWillDisappear: (BOOL)animated
    33 {
    34     [self.view resignFirstResponder];
    35     [super viewWillDisappear:animated];
    36 }
    37 
    38 - (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
    39 {
    40     if (event.subtype == UIEventSubtypeMotionShake)
    41     {
    42         // Device was shaken
    43         
    44         // Acquire image of current layer
    45         UIGraphicsBeginImageContext(self.view.bounds.size);
    46         CGContextRef context = UIGraphicsGetCurrentContext();
    47         [self.view.layer renderInContext:context];
    48         //截图方法
    49         UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
    50         UIGraphicsEndImageContext();
    51         
    52         self.myView.image =  image;
    53         //UIView重新调用drawRect方法,从而包含最新的变化。
    54         [self.myView setNeedsDisplay];
    55 
    56     }
    57 }
    58 
    59 @end
  • 相关阅读:
    SQL性能优化思路
    EF Migraiton错误解决
    How to resolve the 403 error when send POST request from Postman
    Disable trigger to avoid the ID is auto-updated
    MBG(Mybatis Generator)配置
    Publish Web Site To IIS From VS
    quickSort算法导论版实现
    Clang与libc++abi库安装
    Clang与libc++abi库安装
    整数中1 的个数
  • 原文地址:https://www.cnblogs.com/fengmin/p/5577630.html
Copyright © 2020-2023  润新知