Отображение изображения BLOB-ленты Json в UIImage Swift

У меня есть канал Json из моей базы данных MySQL, и он отлично работает для имени и других деталей, но у меня также есть столбец BLOB-объектов для изображений, которые я хочу подключить к UIImage в моей раскадровке, но не уверен, как получить данные BLOB-объектов в Json кормит и декодирует обратно в UIImage. Я думаю, что данные в настоящее время рассматриваются как строка.

Я не хочу использовать какую-либо библиотеку, поэтому будет ли указатель на расположение изображения сервера (или URL) в базе данных лучшим вариантом, чем blob? Полагаю, что так? Если да, то как я могу отобразить это из ленты Json?

Спасибо

2 ответа

Здесь много вопросов.

  1. Как изображение было вставлено в базу данных?
  2. Это было закодировано каким-то образом?
  3. Как это было восстановлено?

Вы не указываете здесь ответ, поэтому я предполагаю, что это необработанные байты изображения. Если это не так, добавьте кодировку или декодирование при необходимости.

Вы можете преобразовать строку в 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
        }
    }
Другие вопросы по тегам