我需要将UIImage
转换为const char *
,因为我使用的是来自Google的protobuffer
,并且消息结构接受此类型的参数。我开始将图像解析为NSData
:
UIImage *image = [UIImage imageNamed:@"sign_up_button"];
NSData *imageData = UIImagePNGRepresentation(image);
const char *test = (const char*)[bytesString bytes];
但是当我打印结果时,这就是我得到的:\xff\xd8\xff\xe0
出了什么问题,因为结果必须是带有编码字符的长字符串。
答案 0 :(得分:3)
“打印”char*
在达到\ 0时中止。这是图像数据的可能内容。你不能“打印”它。您根本不能将数据作为C字符串处理,因为C字符串是0终止的。不要使用任何需要C字符串的函数。它会失败。
存储长度而将其作为“字节数据”处理。