Получить изображение из SQL в iOS - PullRequest
0 голосов
/ 06 марта 2011

У меня есть сохраненное изображение (как данные) в SQL, как мне воссоздать объект изображения в iOS, используя эти данные SQL?

Спасибо

Ответы [ 3 ]

2 голосов
/ 06 марта 2011

было бы проще, если вы используете SQLite и fmdb .Ниже приведен код для хранения и получения изображений с использованием fmdb.

// let's read in an image from safari's app bundle.
NSData *safariCompass = [NSData dataWithContentsOfFile:@"/Applications/Safari.app/Contents/Resources/compass.icns"];
if (safariCompass) {
    [db executeUpdate:@"insert into blobTable (a, b) values (?,?)", @"safari's compass", safariCompass];

    rs = [db executeQuery:@"select b from blobTable where a = ?", @"safari's compass"];
    if ([rs next]) {
        safariCompass = [rs dataForColumn:@"b"];
        [safariCompass writeToFile:@"/tmp/compass.icns" atomically:NO];

        // let's look at our fancy image that we just wrote out..
        system("/usr/bin/open /tmp/compass.icns");

        // ye shall read the header for this function, or suffer the consequences.
        safariCompass = [rs dataNoCopyForColumn:@"b"];
        [safariCompass writeToFile:@"/tmp/compass_data_no_copy.icns" atomically:NO];
        system("/usr/bin/open /tmp/compass_data_no_copy.icns");
    }
    else {
        NSLog(@"Could not select image.");
    }

    [rs close];

}
else {
    NSLog(@"Can't find compass image..");
}

Код взят непосредственно из репозитория fmdb git.

1 голос
/ 06 марта 2011

Вы не сказали, как именно вы сохранили изображение в вашей базе данных SQL;Я предполагаю, что было что-то вроде использования UIImageJPEGRepresentation для преобразования изображения в объект NSData, а затем сериализации этого объекта NSData.

Чтобы создать изображение из объекта NSData, используйте [UIImage imageWithData:...],Это позволит проанализировать данные изображения в формате JPEG, PNG или нескольких других форматах.

0 голосов
/ 06 марта 2011

Создайте объект NSData с вашими необработанными данными изображения из базы данных SQL:

NSData * rawData = [ NSData dataWithBytes: xxx length: xxx ];

Создание изображения из вашего объекта данных:

UIImage * img = [ [ UIImage alloc ] initWithData: rawData ];
...