我正在尝试使用从服务器收到的二进制数据来创建图像。在我的函数中,我解析数据并获得符号的每个像素的颜色代码(通常为16 x 16)。
现在我到目前为止:
- (void)saveSymbol:(Byte *)symbolData WithID:(short)symbolID AndOffset:(int)offset AndLength:(int)length {
int w, width, h, heigth;
width = [self byteToUShort:symbolData withOffset:offset+6];
heigth = [self byteToUShort:symbolData withOffset:offset+8];
NSLog(@"Symbol with ID:%d\nwidth: %d\nheigth:%d", symbolID, width, heigth);
NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSLog(@"%@", docDir);
NSString *pngFilePath = [NSString stringWithFormat:@"%@/symbol%d.png", docDir, symbolID];
NSLog(@"%@", pngFilePath);
int pos = 25;
for (h = 0; h < heigth; h++) {
for (w = 0; w < width; w++) {
if ((symbolData[pos] & 0xFF) != 255) {
NSLog(@"set color to %d at point (%d / %d)", symbolData[pos] & 0xFF, w, h);
}
else {
if (symbolID == 9)
NSLog(@"set color to 253 at point (%d / %d)", w, h);
else
NSLog(@"set color to %d at point (%d / %d)", symbolData[pos] & 0xFF, w, h);
}
pos += 2;
}
}
}
我希望这能说清楚我正在努力做什么。
但我真的不知道从哪里开始。如何从该数据创建位图?将它保存为位图还是作为png或jpeg文件更好?
非常感谢您的帮助
答案 0 :(得分:2)
CGBitmapContextCreateImage
获取CGImageRef。[UIImage imageFromCGImage:]
转换为UIImage。UIImagePNGRepresentation()
或UIImageJPEGRepresentation()
获取NSData对象。[NSData writeToFile:atomically:]
保存文件。答案 1 :(得分:0)
只有像素数据,你才有一个小项目。标准格式可能很复杂,尤其是具有更复杂压缩的jpeg。我想png is probably the simplest。