aks.knit1108
aks.knit1108

Reputation: 1305

Make UIImage from ByteArray getting from .Net WebService

My problem is same as Converting byte array coming from Web service to UIImage iPhone .Now I am storing these bytes in NSMutableArray.But the method:

NSData *data = [NSData dataWithBytes:YOUR_BYTE_ARRAY length:ARRAY_LENGTH];

takes arrayOfBytes as parameter.So can anyone tell me that how to convert this array in byte array. I searched a lot but unable to find relevant contents.

Upvotes: 0

Views: 735

Answers (2)

aks.knit1108
aks.knit1108

Reputation: 1305

Thanks for your co-operation. But it does not help me. After a long research i found my solution. I am sharing my information so that others can get right answer.

        NSArray *byteArray = [[NSArray alloc]init]; //strore all data here coming from server in byte formate

        unsigned c = [byteArray count];
        uint8_t *bytes = malloc(sizeof(*bytes) * c);

        unsigned i;
        for (i = 0; i < c; i++)
        {
            NSString *str = [byteArray objectAtIndex:i];
            int byte = [str intValue];
            bytes[i] = (uint8_t)byte;
        }

        NSData *data = [[NSData alloc]initWithBytes:bytes length:c];
        UIImage *image = [UIImage imageWithData:data];
        NSLog(@"image %@",image);

Upvotes: 1

danh
danh

Reputation: 62676

Not sure how you're getting the mutable array to begin with. If you're using NSURLConnection, the delegate will get NSData, so you needn't use a mutable array. Consider getting the data using the connection asynch block method like this ...

NSURLRequest *myRequest = // the request you've already got working to get image data
[NSURLConnection sendAsynchronousRequest:myRequest queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
    if (!error) {
        // image from data with no intermediate mutable array or byte array
        UIImage *image = [UIImage imageWithData:data];
    }
 }];

Upvotes: 1

Related Questions