`

NSdata 与 NSString,Byte数组,UIImage 的相互转换

    博客分类:
  • ios
 
阅读更多

原文:http://w11h22j33.iteye.com/blog/1333521

1. NSData 与 NSString

NSData-> NSString

NSString *aString = [[NSString alloc] initWithData:adataencoding:NSUTF8StringEncoding];

 

NSString->NSData

NSString *aString = @"1234abcd";

NSData *aData = [aString dataUsingEncoding: NSUTF8StringEncoding];

 

2.NSData 与 Byte

NSData-> Byte数组

NSString *testString = @"1234567890";

NSData *testData = [testString dataUsingEncoding: NSUTF8StringEncoding];

Byte *testByte = (Byte *)[testData bytes];

for(int i=0;i<[testData length];i++)

printf("testByte = %d\n",testByte[i]);

 

Byte数组-> NSData

Byte byte[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23};

NSData *adata = [[NSData allocinitWithBytes:byte length:24];

 

Byte数组->16进制数

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

NSString *hexStr=@"";

for(int i=0;i<[encryData length];i++)

{

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

if([newHexStr length]==1)

hexStr = [NSString stringWithFormat:@"%@0%@",hexStr,newHexStr];

else 

hexStr = [NSString stringWithFormat:@"%@%@",hexStr,newHexStr];

}

NSLog(@"bytes 的16进制数为:%@",hexStr);

 

16进制数->Byte数组

///// 将16进制数据转化成Byte 数组

NSString *hexString = @"3e435fab9c34891f"; //16进制字符串

int j=0;

Byte bytes[128];  ///3ds key的Byte 数组, 128位

for(int i=0;i<[hexString length];i++)

{

int int_ch;  /// 两位16进制数转化后的10进制数

 

unichar hex_char1 = [hexString characterAtIndex:i]; ////两位16进制数中的第一位(高位*16)

int int_ch1;

if(hex_char1 >= '0' && hex_char1 <='9')

int_ch1 = (hex_char1-48)*16;   //// 0 的Ascll - 48

else if(hex_char1 >= 'A' && hex_char1 <='F')

int_ch1 = (hex_char1-55)*16//// A 的Ascll - 65

else 

int_ch1 = (hex_char1-87)*16//// a 的Ascll - 97

i++;

 

unichar hex_char2 = [hexString characterAtIndex:i]; ///两位16进制数中的第二位(低位)

int int_ch2;

if(hex_char2 >= '0' && hex_char2 <='9')

int_ch2 = (hex_char2-48); //// 0 的Ascll - 48

else if(hex_char1 >= 'A' && hex_char1 <='F')

int_ch2 = hex_char2-55//// A 的Ascll - 65

else 

int_ch2 = hex_char2-87//// a 的Ascll - 97

 

int_ch = int_ch1+int_ch2;

NSLog(@"int_ch=%d",int_ch);

bytes[j] = int_ch;  ///将转化后的数放入Byte数组里

j++;

}

NSData *newData = [[NSData allocinitWithBytes:bytes length:128];

NSLog(@"newData=%@",newData);

 

3. NSData 与 UIImage

NSData->UIImage

UIImage *aimage = [UIImage imageWithData: imageData];

 

//例:从本地文件沙盒中取图片并转换为NSData

NSString *path = [[NSBundle mainBundle] bundlePath];

NSString *name = [NSString stringWithFormat:@"ceshi.png"];

NSString *finalPath = [path stringByAppendingPathComponent:name];

NSData *imageData = [NSData dataWithContentsOfFile: finalPath];

UIImage *aimage = [UIImage imageWithData: imageData];

 

UIImage-> NSData

NSData *imageData = UIImagePNGRepresentation(aimae); 


分享到:
评论

相关推荐

    NSData 与 NSString,Byte数组,UIImage 的相互转换

    总之,理解并熟练掌握`NSData`、`NSString`以及`UIImage`之间的转换,是iOS和macOS开发中的基本技能,能有效提升代码的灵活性和可维护性。在具体项目中,应根据实际情况选择合适的转换方式,确保数据处理的准确性和...

    ios demo,NSData和NSString之间的相互转换的源代码

    这个“ios demo,NSData和NSString之间的相互转换的源代码”提供了实现这种转换的示例代码。 首先,让我们深入了解一下NSData和NSString的基本概念: 1. **NSData**:NSData是Foundation框架中的一个类,它代表了...

    ios的NSString, char, NSData格式转化

    iOS NSString, char, NSData格式转化 iOS 开发中,我们经常需要在NSString、char、NSData之间进行格式转化,以满足不同的需求。下面我们将详细介绍这些格式转化的方法和示例代码。 NSString 转化为 UNICODE String...

    ios NSData NSString AES加密解密算法源码

    本示例中的源码着重介绍了如何在Objective-C环境下,利用NSData和NSString进行AES加密与解密操作。 首先,AES是一种块加密算法,它将数据分为128位的块进行处理。在iOS中,通常通过CommonCrypto库来实现AES的加解密...

    NSData与NSDictionary、JSON数据类型相互转换

    在本文中,我们将探讨如何使用NSData与其他类型,特别是NSDictionary和JSON数据进行转换。 首先,NSData允许开发者将各种数据类型(如结构体、图像等)转换为二进制格式,以便于存储或在网络上传输。例如,在提供的...

    NSData-Crypto:NSDataNSString 包装器中的 MD5、SHA1 和许多其他常见摘要方法

    NSData+Crypto是一个 Mac 和 iOS 的NSData和NSString包装器,用于 CommonCrypto 框架的摘要方法。 包装了以下摘要函数: MD2 MD4 MD5 沙1 sha224 sha256 sha384 sha512 所有摘要函数都可用于NSData 、 ...

    ios demo,NSData和NSDictionary之间的相互转换的实现案例

    总结来说,iOS开发中,利用NSData和NSDictionary的相互转换可以方便地处理数据的存储和传递。通过`NSKeyedArchiver`和`NSKeyedUnarchiver`,我们可以轻松地在两者之间进行序列化和反序列化操作。在处理JSON数据时,`...

    Ascii85-Encoding-Categories:NSData 和 NSString 的简单类别以支持将它们编码为 Ascii85。 这些类别采用 RFC 1924 Ascii85 字符集

    在IT行业中,编码和解码是数据传输与存储的关键环节,Ascii85编码是一种用于高效、节省空间地表示二进制数据的机制。本文将深入探讨Ascii85编码,以及如何在Objective-C中利用类别(Category)为NSData和NSString...

    数据类型之间的转换

    ios相关数据类型之间的互换//NSData 转 NSString //NSString 转 NSData//NSArray 转 NSString char 转NSString

    Base64:NSData和NSString的Objective-C Base64添加

    以下性能指标可用于与2012年提供的库进行比较,并且可能无法反映当前的性能。 如有疑问,请使用系统提供的功能。 用法:可可豆脚-已淘汰 将以下行添加到您的Podfile中: source '...

    iOS 录制视频流 转uiimage

    在iOS开发中,录制视频流并将其转换为UIImage是一项常见的需求,这通常涉及到多媒体处理、图形编程以及实时渲染等技术。下面将详细讲解这个过程涉及的知识点。 首先,我们需要了解如何在iOS上进行实时视频录制。...

    iOS数组和字典转JSON格式

    在Objective-C中,数组(NSArray)和字典(NSDictionary)与JSON对应。字典是键值对的集合,而数组是有序元素的集合。 要将数组和字典转换为JSON字符串,我们需要使用Foundation框架中的`NSJSONSerialization`类。...

    OC Extension UIImage+FHXImage(图片扩展).zip

    +(UIImage*)loadGifWithImageName:(NSString *)name{ NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:@"gif"]; NSData *gifData = [NSData dataWithContentsOfFile:path]; return ...

    NSData扩展

    ### NSData扩展:深入解析与应用 在iOS开发中,`NSData`类是处理二进制数据的核心类之一,它提供了一系列方法来存储、检索和操作数据。然而,原生的`NSData`类并不包含所有开发者可能需要的功能,尤其是在处理如...

    swift-一行代码搞定NSString和NSData的md5加密

    在iOS应用开发中,我们可能需要对NSString(字符串)或NSData(二进制数据)进行MD5加密。标题提到的“一行代码搞定NSString和NSData的md5加密”意味着存在一个高效且简洁的方法来实现这个功能。 在Swift中,尽管...

    NSData+AESCrypt

    - (NSData *)AES256EncryptWithKey:(NSString *)key; - (NSData *)AES256DecryptWithKey:(NSString *)key; + (NSData *)dataWithBase64EncodedString:(NSString *)string; - (id)initWithBase64EncodedString:...

    NSData+AESCrypt库

    - (NSData *)AES256EncryptWithKey:(NSString *)key; - (NSData *)AES256DecryptWithKey:(NSString *)key; + (NSData *)dataWithBase64EncodedString:(NSString *)string; - (id)initWithBase64EncodedString:...

    iOS NSData 详细使用说明

    ### 二、`NSData`的主要功能与方法 #### 1. 数据初始化与创建 `NSData`提供了多种方式来创建数据对象: - `+ (instancetype)dataWithContentsOfFile:(NSString *)path`:从指定文件路径加载数据。 - `+ ...

    NSDateAndNSData Demo代码

    `NSString`则用于表示文本字符串,这三者之间常常需要进行转换以满足不同的需求。本Demo代码着重展示了如何在这些类型间进行有效地转换。 `NSDate`是Foundation框架中的类,用于表示一个精确的时间点,通常以协调...

    base64-utf8编码的NSString转化为NSString

    在解析xib文件的时候发现有的节点内容的编码是 base64-UTF8,其实这个节点内容的编码顺序是先将NSString转化为utf8格式的NSData,再将NSData通过base64加密。刚拿到这样的字符串的时候感觉有点绕,但是仔细分析下来...

Global site tag (gtag.js) - Google Analytics