Отображение изображения BLOB-ленты Json в UIImage Swift
У меня есть канал Json из моей базы данных MySQL, и он отлично работает для имени и других деталей, но у меня также есть столбец BLOB-объектов для изображений, которые я хочу подключить к UIImage в моей раскадровке, но не уверен, как получить данные BLOB-объектов в Json кормит и декодирует обратно в UIImage. Я думаю, что данные в настоящее время рассматриваются как строка.
Я не хочу использовать какую-либо библиотеку, поэтому будет ли указатель на расположение изображения сервера (или URL) в базе данных лучшим вариантом, чем blob? Полагаю, что так? Если да, то как я могу отобразить это из ленты Json?
Спасибо
2 ответа
Здесь много вопросов.
- Как изображение было вставлено в базу данных?
- Это было закодировано каким-то образом?
- Как это было восстановлено?
Вы не указываете здесь ответ, поэтому я предполагаю, что это необработанные байты изображения. Если это не так, добавьте кодировку или декодирование при необходимости.
Вы можете преобразовать строку в NSData
достаточно легко, а затем создать UIImage
от него:
var imagedatastr:String = "" // assume this is the data you got from MySQL
if let imageData:NSData = imagedatastr.dataUsingEncoding(NSUTF8StringEncoding)
{
let image = UIImage(data:imageData,scale:1.0)
}
Обычно у вас есть строка, а затем вы будете показывать изображение в виде uiimage, хорошо. Наконец, вы подумаете об использовании такой темы.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0))
{
let data = NSData(contentsOfURL: NSURL(string: <yourUrlString>)
var image: UIImage?
if data != nil {
artist.vImageData = data
image = UIImage(data: data!)
} else {
image = UIImage(named: <defaultImageLikeNoAvailable>)
}
dispatch_async(dispatch_get_main_queue()) {
imageView.image = image
}
}