0

我的应用程序中有一个方法,我想将十六进制值写入文件(本质上是从写入的字节创建图像)。我似乎无法弄清楚如何正确编码这些值以生成图像。任何建议将不胜感激 - 谢谢。

- (void)makeImage {

@autoreleasepool {

    NSString* hexValues = @"8950..." // these are the hex bytes that make up the image file

    NSString* fileName    = @"image.png";
    NSString* homeDir     = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/"];

    NSString* fullPath = [homeDir stringByAppendingPathComponent:fileName];

    NSError* error = nil;
    [lastLine writeToFile:fullPath atomically:NO encoding:NSASCIIStringEncoding error:&error];

}
4

1 回答 1

0

您可以使用有损 ASCII 编码或 UTF-8 将 NSData 转换为 NSString,然后您可以使用 -[NSData bytes] 方法获取原始字节。

使用 for 循环一次循环遍历它们 2 个字节,然后您可以将两个字节/字符复制到大小为 3 的 char 数组中(3 包括 \0,请确保使用 " 00" 得到一个终止 \0) 然后你可以使用 c 函数

long int strtol ( const char * str, char ** endptr, int base );

将两个字节/十六进制转换为整数。

或者,您可以将自己的十六进制字符串写入不需要终止 \0 的 int。

于 2012-09-07T00:00:33.107 回答