Objective-C,如何正确地对图像文件进行十六进制编码



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

- (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];
}

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

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

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

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

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

最新更新