0

我遇到了一个问题,UIImage当我在操场内检查时,我在操场上构建的 a 显示正确UIImageView...

这是出现在操场上的图像。

...但是当我将其保存到磁盘时不正确。

这是保存到磁盘时出现的图像。

这是我用来构建/检查/保存的代码UIImage

import UIKit
import XCPlayground

// Size of view and layers
let size = CGSize(width: 180, height: 180)

// Create a layer
let layer = CALayer()
layer.frame = CGRect(origin: CGPointZero, size: size)
layer.backgroundColor = UIColor.blackColor().CGColor

// And a sublayer
let sublayer = CALayer()
sublayer.frame = CGRect(origin: CGPointZero, size: size)
sublayer.cornerRadius = 180
sublayer.backgroundColor = UIColor.whiteColor().CGColor
layer.addSublayer(sublayer)

// Render the layer into an image
UIGraphicsBeginImageContext(size)
layer.renderInContext(UIGraphicsGetCurrentContext())
let im = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

// Inspect the image within the playground
let view = UIImageView(image: im)
XCPShowView("Container View", view: view)
view.layer.addSublayer(layer)

// Save the image to disk
let data = NSData(data: UIImagePNGRepresentation(im)!)
let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
var docs: String = paths[0] as String
let fullPath = docs.stringByAppendingPathComponent("icon.png")
let result = data.writeToFile(fullPath, atomically: true)

如何将图像渲染到磁盘以反映我在UIImageView?

4

1 回答 1

1

如果半径大于圆的半径,我希望看到花瓣形的东西。如果您单击该行旁边 Playground 中的“显示结果”图标let view = UIImageView(image: im),它将以与存储在磁盘上的完全相同的方式显示您的图像。见下文。我在试验时更改了颜色,否则它是你的代码......

所以我认为显示的内容XCPShowView("Container View", view: view)是不正确的,而不是相反。

在此处输入图像描述

于 2015-08-01T22:53:44.073 回答