Blob для преобразования изображений - PullRequest
0 голосов
/ 26 августа 2011

Я получаю результат при запуске транзакции, но при транзакции один результат приходит в виде атрибутов BLOB-объектов, то есть изображений, я хочу изменить этот атрибут BLOB-объектов на изображения Я написал код для этого «значка» является ключом для получения изображения из транзакции, поэтому, пожалуйста, помогите мне проверить это, изображение печатает ноль, почему?

NSString *inputString = [[[self formModel] attributeAsString:@"icon"] description];

NSLog(@"icon is %@",[[self formModel] attributeAsString:@"icon"]);

NSLog(@"inputstring is %@",inputString);
//NSImage *image = [NSUnarchiver unarchiveObjectWithData:[[self formModel] attributeAsString:@"icon"]];
//NSLog(@"image is %@",image);

NSArray *words = [inputString componentsSeparatedByString:@" "];

NSLog(@"words is %@",words);

NSArray *sizes = [words valueForKey:@"length"];
int sizeOfBytes = 0;
for (NSNumber *size in sizes) {
    sizeOfBytes += [size intValue]/2;
}
int bytes[sizeOfBytes];
int counts = 0;
for (NSString *word in words) {
    // convert each word from string to int
    NSMutableString *ostr = [NSMutableString stringWithCapacity:[word length]];
    while ([word length] > 0) {
        [ostr appendFormat:@"%@", [word substringFromIndex:[word length] - 2]];
        word = [word substringToIndex:[word length] - 2];
    }

    NSScanner *scaner = [NSScanner scannerWithString:ostr];
    unsigned int val;
    [scaner scanHexInt:&val];
    bytes[counts] = val;
    counts++;
}
// get NSData form c array
NSData *data = [NSData dataWithBytes:bytes length:sizeOfBytes];
NSLog(@"My NSDATA  %@",data);
NSImage *Image = [[NSImage alloc] initWithData:data];

1 Ответ

1 голос
/ 26 августа 2011

Никогда не используйте вывод description для обработки.Там нет гарантии его формата.В каком формате находится ваш оригинальный «блоб» и как он генерировался?Ваш код предполагает, что это может быть NSData или NSKeyArchiver.Оба из них легко конвертировать в NSData.Вам никогда не нужно делать это вручную путем преобразования в строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...