我创建了一些代码来在UIImage
上下文中创建UIBezierPath
。然后拍摄图像并创建一个base64字符串。我相信我应该在UIImage
的开头和结尾画出路径。但是在很多小时后,它不能正常工作。我将base64字符串复制到网站以下载图像以查看它是否可用。我正在写这个在操场上:绘制UIBezierPath到UIImage到Base64图像不在Swift中工作
import Foundation
import UIKit
UIGraphicsBeginImageContextWithOptions(CGSizeMake(200, 200), false, 0.0)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIColor.blackColor().setStroke()
let path = UIBezierPath()
path.lineWidth = 2
path.moveToPoint(CGPointMake(100, 0))
path.addLineToPoint(CGPointMake(200, 40))
path.addLineToPoint(CGPointMake(160, 140))
path.addLineToPoint(CGPointMake(40, 140))
path.addLineToPoint(CGPointMake(0, 40))
path.closePath()
UIGraphicsEndImageContext();
let data = UIImagePNGRepresentation(image)
let b64 = data?.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
print(b64!)
由此产生的PNG是1000x1000我猜是因为我的视网膜显示。图像本身是完全透明的,没有任何东西可见。我正在使用这个网站来解码base64并保存一个文件,我已经尝试了另外2个网站来查看它是否是该网站。 http://www.motobit.com/util/base64-decoder-encoder.asp
编辑 我只是想下面的代码,看看问题是否与我的形象或贝塞尔或保存到bas64。这段代码工作得很好。所以我认为这对我的贝塞尔来说是一个问题。
import Foundation
import UIKit
let image = UIImage(data: NSData(contentsOfURL: NSURL(string: "http://i.imgur.com/crr4m48.jpg")!)!)!
let data = UIImagePNGRepresentation(image)
let b64 = data?.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
print(b64!)
创建图像或转换为Base64时出现问题吗?这是两个完全无关的操作。将PNG数据保存到文件中,并查看是否可以打开该图像文件。如果是这样,问题出在您的Base64转换。另外,加载一些预先存在的图像并使用* that *作为Base64代码的输入 - 会发生什么? – Caleb
@Caleb我刚刚测试了从URL加载,它的工作。这是我的'UIBezierPath',不知怎的,它很时髦。 – Johnston