将屏幕内容保存为图片,图片边缘白边消失?

iOSwwq0327 • 于 2015-10-27 22:04:17 +0800 • 最后由 iBcker2015-10-28 05:12:31 +0800 3178 阅读

不好意思,我想了好一会儿,实在想不出该如何表述自己所遇到的问题,希望大家能通过图片,能明白我说的意思。谢谢大家。


前几天我问过关于一个关于如何将显示的内容保存为图片的问题:

http://swiftcn.io/topics/39

这里关于所保存图片的质量问题终于得了解决。不过出现了一个新的问题,保存的图片像是把线框中的白边去掉了一样:

file

但如果又屏幕图片放大,再双击还原后,图片的白边又出来了。这里线框就不会靠着屏幕的边上了:

file

我将MONO上的图存在下来,发现就没有我上面所说的问题,线框和屏幕边上就是存在着白边的。

file

回复: 4
  • dugege 2015-10-28 00:13:20 +0800

    因为你是截取某图层选定区域的图像嘛,你指定了整个view当然出来的就是整个view的图啦,也就包括了白边嘛。

    所以,要么你能通过计算,得到黑色边框区域,然后对截图进行二次裁剪,要么你把view刚好弄到边框的大小。

  • iBcker 2015-10-28 00:16:23 +0800

    基本看来,楼上说得没错··

    你可以挂个reveal看下图层结构,有利于调试。

    提供方法三

    对截图进行扫描,最终确定裁剪矩形。然后进行裁剪,因为图片中有一个很规则的黑色矩形,扫描难度不大

  • wwq0327 2015-10-28 02:03:26 +0800

    谢谢二位的回复。

    你们都有提到对所获取的图片进行二前裁剪的处理,我还没有做过,所以不知道该如何去开这个头,还麻烦指教下。

    获取图片的代码是这样的:

    ```

    @IBAction func share(sender: AnyObject) {
    

    // UIGraphicsBeginImageContext(backView.bounds.size) let scale = UIScreen.mainScreen().scale // print(scale) UIGraphicsBeginImageContextWithOptions(backView.bounds.size, true, scale)

        backView.layer.renderInContext(UIGraphicsGetCurrentContext()!)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
    
        let shareString = "\(juzi.content!)"
        let activity = UIActivity()
    
        let activityItems = [image, shareString]
        let activities = [activity]
    
        let activityController = UIActivityViewController(activityItems: activityItems, applicationActivities: activities)
    
        self.presentViewController(activityController, animated: true, completion: nil)
    
    ```
    
  • iBcker 2015-10-28 05:12:31 +0800

    计算出rect
    然后裁剪图片就行 CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], rect); UIImage *resized_image = [UIImage imageWithCGImage:imageRef scale:image.scale orientation:UIImageOrientationUp];

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,见 Emoji cheat sheet
  • @name 会链接到用户页面,并会通知他
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
Ctrl+Enter