`
xumingrencai
  • 浏览: 1183053 次
文章分类
社区版块
存档分类
最新评论

将资源文件转换为头文件嵌入到工程

 
阅读更多

/** png 图片的数据以字节数组的方式存入头文件,将头文件持久化到磁盘系统中~ */

-(void) savePngBytesAsHeaderFile:(NSString*)pngName columns:(int)columns {

// 唯有这种方式取得的 NSData 对象的 length 属性不再为0,有效!!

NSString *filePath = [[NSBundle mainBundle] pathForResource:pngName ofType:@"png"];

NSData *imageData = [[NSData alloc] initWithContentsOfFile:filePath];

Byte *bytes = (Byte*)[imageData bytes];

NSUInteger length = [imageData length];

NSMutableString *hexStr = [NSMutableStringstring];

NSString *nameModified = [NSString stringWithString:pngName];

// 将图片名称中的 '-' 替换成 '_' ~

nameModified = [nameModifiedstringByReplacingOccurrencesOfString:@"-"withString:@"_"];

[hexStrappendFormat:@"#ifndef MacEncryptTool_%@_PNG_H\n", [nameModifieduppercaseString]];

[hexStrappendFormat:@"#define MacEncryptTool_%@_PNG_H\n\n", [nameModifieduppercaseString]];

[hexStrappendFormat:@"unsigned char %@_png[] = {\n\t", nameModified];

NSString *splitStr = [NSString stringWithString:@", "];

for(int i = 0; i < length; ++ i) {

NSString *itemStr = [NSString stringWithFormat:@"%x", bytes[i]&0xff];// 16进制数

if([itemStr length] == 1) { // 补一位 0 ~

itemStr = [NSStringstringWithFormat:@"0x0%@", itemStr];

} else {

itemStr = [NSStringstringWithFormat:@"0x%@", itemStr];

}

if(i != length-1) {

[hexStr appendFormat:@"%@%@", itemStr, splitStr];

if((i+1)%columns == 0) {

[hexStrappendString:@"\n\t"]; // 换行~

}

} else {

[hexStr appendFormat:@"%@\n", itemStr];

}

}

[hexStrappendFormat:@"};\nunsigned int %@_png_len = %u;\n", nameModified, length];

[hexStr appendString:@"\n#endif"];

NSString *fileName = [NSString stringWithFormat:@"%@.png.h", nameModified];

[hexStrwriteToFile:fileName atomically:NOencoding:NSUTF8StringEncodingerror:nil];

// NSData *fileData = [hexStr dataUsingEncoding:NSUTF8StringEncoding];

// [fileData writeToFile:fileName atomically:NO];

}

分享到:
评论

相关推荐

    c2delphi(将c++文件(包括头文件)转换为delphi文件)

    将c++文件(包括头文件)转换为delphi文件

    bin2froh:将二进制文件转换为 C 头文件/从 C 头文件转换-开源

    二进制文件和 Bitmap 一样,都是二进制格式,而 C 编译器要求在 C 头文件中将它们转换为 char 数组。 Bin2froh 包含两个程序,... 使用"bintoh" 将二进制文件转换为C 头文件,使用"binfromh" 还原"bintoh" 所做的工作。

    C DLL头文件转换Delphi头文件4.20版本

    C DLL报头转换器。 有关移植C API和C DLL头文件的更多信息,请参阅使用Delphi使用C DLL的详细文章。

    C语言头文件 DIR C语言头文件 DIR

    C语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言头文件 DIRC语言...

    directshow 头文件与库文件

    directshow 头文件与库文件,从9.0a上提取!

    C++的头文件转换为delphi定义

    C++的头文件转换为delphi定义

    工程头文件生成工具mkheader

    用过linux kernel编译都知道里面有个.config 头文件,内核配置完后对内核动态生成autoconfig.h,本资源就是一个识别“配置文件”生成“工程配置头文件”的工具,只要输入 mkconfig config.mk 就能自动生成autoconfig...

    VB 实现 将C++头文件 转换为VB模块 源程序

    VB 实现 将C++头文件 转换为VB模块 源程序 这个小程序很有用哦,使用VB语言编写,功能是实现将C++头文件转换为VB模块源程序,这样在以后你碰到VC++中那些想用的功能模块,你就可以转换为VB同功能的模块源码,有意思...

    Excel文件操作类头文件+.CPP文件CSpreadSheet_src.rar

    文件操作,Excel文件操作类头文件CSpreadSheet_src,Excel文件操作类头文件CSpreadSheet_src,Excel文件操作类头文件CSpreadSheet_src,Excel文件操作类头文件CSpreadSheet_src

    C++ PRIMER 部分头文件及资源

    C++ PRIMER 部分头文件及资源,C++ PRIMER 部分头文件及资源

    C语言头文件 SET C语言头文件 SET

    C语言头文件 SETC语言头文件 SETC语言头文件 SETC语言头文件 SETC语言头文件 SETC语言头文件 SETC语言头文件 SETC语言头文件 SETC语言头文件 SETC语言头文件 SETC语言头文件 SETC语言头文件 SETC语言头文件 SETC语言...

    C语言头文件 TSS C语言头文件 TSS

    C语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言头文件 TSSC语言...

    C语言头文件 MEM C语言头文件 MEM

    C语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言头文件 MEMC语言...

    C语言头文件 NB30 C语言头文件 NB30

    C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言头文件 NB30C语言...

    C语言头文件 XMEMORY

    C语言头文件 XMEMORYC语言头文件 XMEMORYC语言头文件 XMEMORYC语言头文件 XMEMORYC语言头文件 XMEMORYC语言头文件 XMEMORYC语言头文件 XMEMORYC语言头文件 XMEMORYC语言头文件 XMEMORYC语言头文件 XMEMORYC语言...

    C语言头文件 GLU C语言头文件 GLU

    C语言头文件 GLUC语言头文件 GLUC语言头文件 GLUC语言头文件 GLUC语言头文件 GLUC语言头文件 GLUC语言头文件 GLUC语言头文件 GLUC语言头文件 GLUC语言头文件 GLUC语言头文件 GLUC语言头文件 GLUC语言头文件 GLUC语言...

    NTDLL 库文件和头文件

    NTDLL 库文件和头文件 SDK平台的源文件和lib,大家肯定需要的!呵呵!

    C语言头文件 STAT C语言头文件 STAT

    C语言头文件 STATC语言头文件 STATC语言头文件 STATC语言头文件 STATC语言头文件 STATC语言头文件 STATC语言头文件 STATC语言头文件 STATC语言头文件 STATC语言头文件 STATC语言头文件 STATC语言头文件 STATC语言...

    C语言头文件 OLE C语言头文件 OLE

    C语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言头文件 OLEC语言...

    C语言头文件 temp C语言头文件 temp

    C语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言头文件 tempC语言...

Global site tag (gtag.js) - Google Analytics