zoukankan      html  css  js  c++  java
  • 图像攻略

    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
  • 相关阅读:
    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
    11
    实战 迁移学习 VGG19、ResNet50、InceptionV3 实践 猫狗大战 问题
    tx2系统备份与恢复
    如何在Ubuntu 18.04上安装和卸载TeamViewer
    bzoj 3732 Network (kruskal重构树)
    bzoj2152 聪聪可可 (树形dp)
    牛客 216D 消消乐 (二分图最小点覆盖)
    牛客 197E 01串
    Wannafly挑战赛23
  • 原文地址:https://www.cnblogs.com/fengmin/p/5577630.html
Copyright © 2011-2022 走看看