我有一个转换为NSData的Image,然后转换为base64编码的NSString。现在我有一个服务只接受字节数组(Java支持)中的base64编码字符串。我尝试了不同的选项,但我无法将编码的字符串转换为字节数组类型。有人可以帮助我如何将编码的字符串转换为字节数组(支持Java)?
以下是我对此的回答。我开始知道最简单的方法是直接将图像数据转换为字节数组,而无需对base64进行数据编码。
答案 0 :(得分:0)
NSError* error;
NSString* str=[[NSBundle mainBundle] pathForResource:@"black-circle" ofType:@"png"];
NSData* data= [NSData dataWithContentsOfFile:str options:NSDataReadingUncached error:&error];
NSInteger length=[data length];
const char* dataBytes=[data bytes];
现在,您可以使用dataBytes指针遍历每个字节。 希望这会有所帮助。
答案 1 :(得分:0)
你可以尝试:
使用返回-[NSString UTF8String]
的{{1}}。
或此链接可以帮助您: Convert NSString into byte array iphone
答案 2 :(得分:0)
我们可以从NSStirng获取NSdata,然后将NSData转换为字节数组。更简单的方法是使用uint8_t将捕获的图像数据转换为字节数组。下面是执行此操作的代码段。
NSData到字节数组: -
NSData *data = UIImagePNGRepresentation(imageCaptured);
uint8_t byteArray[[data length]];
[data getBytes:&byteArray];
NSMutableString *byteArrayString = [[NSMutableString alloc]init];
for (int i = 0 ; i < sizeof(byteArray); i++) {
[byteArrayString appendString:[NSString stringWithFormat:@"%d,",byteArray[i]]];
}
// Removing last extra comma
[byteArrayString deleteCharactersInRange:NSMakeRange([byteArrayString length]-1, 1)];