【问题标题】:UIImage appears differently in UIImageView than it does when saved to diskUIImage 在 UIImageView 中的显示与保存到磁盘时不同
【发布时间】:2015-08-02 07:44:17
【问题描述】:

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

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

这是我用来构建/检查/保存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 中看到的内容?

【问题讨论】:

    标签: swift uiimageview uiimage image-rendering


    【解决方案1】:

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

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

    【讨论】:

    • 是的——我选择了这个例子来强调这一点。我想要更多的是解释为什么圆角半径会导致这种差异,以及如何将图像渲染到磁盘以使其看起来相同。我已经更新了问题以使其更清楚。
    • 感谢您的澄清。
    • 嗯!有趣。所以没有办法完全按照XPCShowView 中显示的那样将它渲染到磁盘?这是XPCShowView 中的错误吗?
    猜你喜欢
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    相关资源
    最近更新 更多