`

swift -> UIView 转 UIImage 并 保存, WkWebView转UIImage

 
阅读更多

 

方法

 

    func viewToImg(v:UIView)->UIImage{
        UIGraphicsBeginImageContext(v.bounds.size);
        v.layer.render(in: UIGraphicsGetCurrentContext()!);
        let img:UIImage = UIGraphicsGetImageFromCurrentImageContext()!;
        UIGraphicsEndImageContext();
        return img;
    }

 

图片模糊问题

 

UIGraphicsBeginImageContext(v.bounds.size);
改成
//是否透明, 屏幕密度(UIScreen.main.scale)
UIGraphicsBeginImageContextWithOptions(v.bounds.size, true, UIScreen.main.scale*0.9)

 

 

使用 .

        let l = UIView(frame: CGRect(x: 60, y: 100, width: 100, height: 100));
        l.backgroundColor = UIColor.blue;
        
        let t = UILabel(frame: CGRect(x: 20, y: 20, width: 50, height: 50));
        t.backgroundColor = UIColor.gray;
        t.text = "F";
        t.font = UIFont.systemFont(ofSize: 20);
        t.alpha  = 0.5
        l.addSubview(t)
        self.view.addSubview(l);
        
        
        ///
        
        let img = viewToImg(v: l);
        let dt:String = NSHomeDirectory().appending("/Documents/").appending("2.png") as String;
        print(dt);
        try? UIImagePNGRepresentation(img)?.write(to: URL(fileURLWithPath: dt))
      
        

 

 

** WKWebview 转 UIIMage

https://github.com/dudongge/DDGScreenShot

https://github.com/dudongge/DDGScreenShot/blob/master/DDGScreenShot/DDGWKWebViewShot.swift

https://github.com/dudongge/DDGScreenShot/blob/master/DDGScreenShot/DDGScreenShot/WKWebView%2BDDGShot.swift

 

 

分享到:
评论

相关推荐

    swift-给UIView或UIImage高性能添加圆角生成渐变色图片等

    func roundedImage(with image: UIImage, cornerRadius: CGFloat) -> UIImage? { let context = CGContext(data: nil, width: image.size.width, height: image.size.height, bitsPerComponent: 8, bytesPerRow: ...

    UIView转化为ImageDemo

    在iOS开发中,经常需要将UIView转换为UIImage,以便于保存、分享或者上传到服务器。这个"UIView转化为ImageDemo"项目就是一个很好的实例,演示了如何实现这个功能。在这个过程中,我们将深入探讨相关的知识点。 ...

    swift-swift-utilsSwift工具箱

    在Swift中处理SVG文件并不像处理位图格式那样直接,但`swift-utils`提供了对SVG的支持,允许开发者轻松地将SVG资源转换为UI元素,如`UIView`或`CALayer`,这对于创建高质量、高分辨率的图标和图形非常有用。...

    swift-MagiCycleView一个Swift自动轮播器

    func cycleView(_ cycleView: MagiCycleView, viewForItemAt index: Int) -> UIView { let imageView = UIImageView(image: UIImage(named: images[index])) return imageView } } ``` 5. **自定义配置**:根据...

    swift-一个UIView子类实现图片手动切割组件自动切割选取部分的图片

    在Swift中,我们可以通过扩展`UIView`并实现必要的方法和属性来创建自定义视图。在这个案例中,子类可能会包含用于显示和处理图片的属性,如`UIImage`实例,以及用于用户交互的触摸事件处理方法,如`touchesBegan`, ...

    轮播视图swift版,代码量少.zip

    self.banner2.viewForItem = { (bannerView: BBannerView, index: Int) -> UIView in let imageView = UIImageView(frame: bannerView.bounds) imageView.image = UIImage(named: self.images[index]) ...

    swift-酷信|高仿微信|WeChat|高仿朋友圈|moments|Github上最牛逼的高仿微信项目没有之一

    【标题】"swift-酷信"是一个基于Swift编程语言实现的高仿微信应用项目,名为"CoolMessage"或"KuXin"。这个项目旨在模仿微信的主要功能和界面设计,提供一个高度相似的用户体验。它不仅包含了聊天、好友添加等基础...

    Swift-View截图

    func captureView(_ view: UIView) -> UIImage? { UIGraphicsBeginImageContextWithOptions(view.bounds.size, false, 0.0) view.layer.render(in: UIGraphicsGetCurrentContext()!) let image = ...

    UIView 保存为图片

    func viewToImage(view: UIView) -> UIImage? { // 获取view的bounds let bounds = view.bounds // 创建一个与当前屏幕分辨率相匹配的位图上下文 UIGraphicsBeginImageContextWithOptions(bounds.size, false, ...

    swift-类似于高德地图路线截取tableView长图的功能

    func snapshot() -> UIImage? { let renderer = UIGraphicsImageRenderer(bounds: bounds) return renderer.image { rendererContext in layer.render(in: rendererContext.cgContext) } } } ``` 2. **计算...

    swift-一个UINavigationBar分类可以动态改变导航栏的透明度以及大小

    在Swift编程中,我们经常需要自定义`UINavigationBar`以满足特定的设计需求。本篇文章将详细讲解如何通过创建一个`UINavigationBar`的分类来实现动态改变导航栏的透明度和大小,从而提升应用的视觉效果。 首先,...

    swift-SMSegmentView.swift-iOS中的自定义segmentedControl

    在Swift中,我们可以创建一个自定义的视图类,继承自`UIView`,并添加必要的属性来存储这些按钮及其配置信息。例如: ```swift class SMSegmentView: UIView { var segments: [UIButton] = [] // 其他属性,如...

    swift-两行代码加入启动广告页Swift3.0异步加载

    ) -> Void) { guard let url = URL(string: urlString) else { return } URLSession.shared.dataTask(with: url) { data, response, error in guard let data = data, error == nil else { completion(nil) ...

    swift-ZWGraphicView签名涂鸦画板

    这个项目的核心是ZWGraphicView,一个自定义的UIView子类,允许用户在屏幕上自由绘制线条,从而实现类似涂鸦的效果,并能够最终保存为图片上传到服务器。 首先,ZWGraphicView的核心是其重写的`touchesBegan(_:with...

    swift-自定义alertView;支持带图标自定义视图的alertView

    func show(in view: UIView, completion: (() -> Void)? = nil) { view.addSubview(self) // 动画代码 } func dismiss(completion: (() -> Void)? = nil) { // 动画代码 removeFromSuperview() } ``` 最后,...

    swift-SHSnowflakesAnimation---雪花飘落动画-帧动画系列

    在本项目中,可能会有一个名为`SHSnowflakeView`的自定义视图,它继承自`UIView`,并添加了绘制雪花的方法。 4. **Core Graphics**: Core Graphics是Apple提供的2D绘图框架,用于绘制图形和文本。在雪花动画中,...

    swift-利用coreText实现图文混排类似H5的新闻界面

    在Swift编程中,CoreText框架提供了强大的文本渲染能力,使得开发者可以实现高度定制化的文本布局,包括复杂的图文混排效果。这种技术常被用于创建类似于H5新闻界面的应用,为用户提供丰富的阅读体验。本文将深入...

    swift-ELBrowser-仿朋友圈图片浏览器

    - Extensions:Swift的扩展机制允许我们为已有类型添加新的功能,ELBrowser可能使用了扩展来增强UIImage或UIImageView等类。 2. **图片处理**: - 图片裁剪和缩放:在仿朋友圈图片浏览器中,可能需要对图片进行...

    swift-EmptyPage一套应用于swift项目的空白页组件.

    在Swift编程语言中,开发iOS或macOS应用时,我们经常需要处理用户界面(UI)的各个元素。其中,空白页(Empty Page)是一种常见的设计模式,用于在数据未加载或者不存在时展示提示信息,提升用户体验。"swift-...

    swift-一个拼图demo多边形拼图~

    接着,为了实现拼图效果,开发者可能会创建自定义视图(UIView子类),并在其中重写draw(_:)方法,利用Core Graphics的API来绘制多边形碎片。每个碎片的坐标和形状信息需要存储在一个数据结构中,如数组或字典,以便...

Global site tag (gtag.js) - Google Analytics