zoukankan      html  css  js  c++  java
  • oc之mac中NSView转换为NSimage 与 UIImage转换为UIimage以 总结

    NSView转换为NSimage 与 UIImage转换为UIimage 总结

     版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HeroGuo_JP/article/details/51981797

    Cocoa框架下NSView转换为NSimage 与 UIKit框架下UIView转化为UIImage对比总结

    Cocoa框架下:

    /*!
     *  @author GJH, 16-07-21
     *
     *  NSview 转换为 NSimage
     *
     *  @param m_view 需要转换的NSView对象
     *
     *  @return 所要生成的NSimage
     */
    -(NSImage *)viewToImage:(NSView *)m_view
    {
        //    焦点锁定
        [m_view lockFocus];
        //    生成所需图片
        NSImage *image = [[NSImage alloc]initWithData:[m_view dataWithPDFInsideRect:[m_view bounds]]];
        [m_view unlockFocus];
    
        //   保存图片到本地
        [image lockFocus];
        NSBitmapImageRep *bits = [[NSBitmapImageRep alloc]initWithFocusedViewRect:[m_view bounds]];
        [image unlockFocus];
        //    设置要用到的props属性
        NSDictionary *imageProps = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO] forKey:NSImageCompressionFactor];
        //    转化为Data保存
        NSData *imageData = [bits representationUsingType:NSPNGFileType properties:imageProps];
        //    保存路径必须是绝对路径相对路径不行
        [imageData writeToFile:[[NSString alloc]initWithFormat:@"/Users/gjh/Desktop/ImageData/test%d.png",1] atomically:YES];
        return image;
    
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    UIKit框架下:

    /*!
     *  @author GJH, 16-07-21
     *
     *  UIView转化为UIImage
     *
     *  @param mView 需要转化的View
     *
     *  @return 生成的UIimage
     */
    - (UIImage *)callBackImageWithView:(UIView *)mView{
        //    创建画板与视图一致
        UIGraphicsBeginImageContextWithOptions(mView.bounds.size, YES, [UIScreen mainScreen].scale);
        //    将视图画在画板上
        [mView drawViewHierarchyInRect:mView.bounds afterScreenUpdates:YES];
        //    将画板转化为UIimage
        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return image;
    }
  • 相关阅读:
    HDOJ 1556 线段树
    POJ 3977 折半枚举
    2017ACM省赛选拔赛题解
    关于四舍五入和截断
    POJ 3422 最小费用最大流
    Codeforces Round #407 (Div. 2) D. Weird journey 思维+欧拉
    POJ 3155 最大密度子图
    无向图最小割 stoer_wagner算法
    最大权闭合子图
    L2-001. 紧急救援 Dijkstra
  • 原文地址:https://www.cnblogs.com/sundaymac/p/10334956.html
Copyright © 2011-2022 走看看