2

私は、整数の配列として画像を提供するWebサービスを使用しています。以下のコードを使用して、この配列をNSDataオブジェクトに変換し、次に に変換しました。UIImage今、画像を同様の配列に変換する方法が疑問です。

配列は次のようになります。

[255,216,255,224,0,16,74,70,73,70,0,1,1,1,0,96,0,96,0,0,255,219,0,67,0,8,6,6,7,6,5,8,7,7,7,9,9,8,10,12,...]

これは、上記の配列を に変換するために使用するコードですUIImage

+ (UIImage *)imageFromBytes:(NSArray *)bytes
{
    unsigned char *buffer = (unsigned char *) malloc(bytes.count);
    int i = 0;
    for (NSDecimalNumber *num in bytes)
        buffer[i++] = num.intValue;
    NSData *data = [NSData dataWithBytes:buffer length:bytes.count];
    free(buffer);

    return [UIImage imageWithData:data];
}

UIImageそのため、aを整数の配列 (バイト配列)に変換する必要があります。

誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

1

次の方法で画像のデータを取得できます。

UIImage *image = [UIImage imageNamed:@"image.png"];
NSData *data = UIImagePNGRepresentation(image);

JPG を使用する場合は、UIImageJPEGRepresentation を使用できます。

次に、バイト配列を抽出します。

NSUInteger len = [data length];
Byte *byteData = (Byte*)malloc(len);
memcpy(byteData, [data bytes], len);
free(byteData)

(void)getBytes:(void *)buffer length:(NSUInteger)lengthNSDataのメソッドも使用できます。

[data getBytes:&byteData length:len];
于 2012-05-01T19:25:20.897 に答える