我創建了一些代碼來在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