2 alllllllll alllllllll 于 2013.03.21 11:18 提问

能不能将NSDecimal值转换为UIImage

需要发送一些数据和UIImage到服务器中。

客户端会返回响应。

但是UIImage发送后客户端返回的就是这样:

FaceImage":[255,216,255,224,0,16,74,70,73,70,0,1,1,1,1,44,1,44,0,0,255,219,0,67,0,8,6,6,7,6,5,8,7,7,7,9,9,8,10,12,20,13,12,11,11,12,25,18,19,15,20,29,26,31,30,29,26,28,28,32,36,46,39,32,34,44,35,28,28,40,55,41,44,48,49,52,52,52,31,39,57,61,56,50,60,46,51,52,50,255,219,0,67,1,9,9,9,12,11,12,24,13,13,24,50,.................................................................]

用下面的log测试一下:

NSLog(@"testingImageView.image is =%@",[[[datadic valueForKey:@"FaceImage"] objectAtIndex:0] class]);

回应是testingImageView.image is =NSDecimal

如果是NSDate我可以转换为UIImage,但是这是在十进制格式中。

我想问一下,能不能转换UIImage?就是讲十进制值转换为UIImage

多谢。

1个回答

ce_la_vie
ce_la_vie   2013.03.22 11:14
已采纳

返回的数据已经包含了全部图片字节。255.216是十六进制的FF.D8,指示一个JPEG图片的开始。

用下面的代码转换吧

NSArray *array = [datadic objectForKey:@"FaceImage"];
NSMutableData *imageData = [NSMutableData dataWithLength:[array count]];
uint8_t *imageBytes = [imageData mutableBytes];
for (NSUInteger i = 0; i < [array count]; i++) {
    imageBytes[i] = [array[i] unsignedCharValue];
}
UIImage *image = [UIImage imageWithData:imageData];
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于不能将char** 类型转化为 const char**
对于二级指针来说,不能将char** 类型转化为const char** 类型。 const char x = 31; char y = 41; char *q = &y; &x的类型显然为 const char *, &q的类型是char **,  假设能将char **类型转化为 const char **, 那么可以另外定义一个变量:
VB数字小写转大写的源代码
本程序能将数字小写转换为大写!本程序能将数字小写转换为大写!本程序能将数字小写转换为大写!本程序能将数字小写转换为大写!本程序能将数字小写转换为大写!本程序能将数字小写转换为大写!本程序能将数字小写转换为大写!
不能将“this”指针从“const CPaopao”转换为“CPaopao &
CPoint CPaopao::GetCenter() { return rc.CenterPoint(); } float CPaopao::Distance(const CPaopao& ortherPaopao){ CPoint pt1=GetCenter(); CPoint pt2=ortherPaopao.GetCenter();
获取UIImage的图像MD5
问: I'm trying to compare two UIImages from the file system to see if they are the same. Obviously, I can't use NSObject's hash method,
不能将参数 1 从const char [*]转换为LPCWSTR
[2014/10/07 0:29]其解决方案就是, 将项目->属性->配置属性->常规->项目默认值下面的字符集换为:使用多字节字符集     原因:     1.了解ANSI和Unicode编     1、ANSI(即MBCS):为多字节字符集,它是不定长表示世界文字的编码方式。ANSI表示英文字母时就和ASCII一样,但表示其他文字时就需要用多字节。比如处理英文字符时使用单字节方
不能将参数 1 从“char *”转换为“LPCTSTR”
不能将参数 1 从“char *”转换为“LPCTSTR” 类似代码: // 设置默认选项为0 char str[100]; for (int i = 0; i 20; i++) { sprintf(str, "COM%d", i + 1); m_comPort.AddString(str); } m_comPort.SetCurSel(0); 最快的
关于错误 “strlen”: 不能将参数 1 从“TCHAR [256]”转换为“const char *”
解决方法: 项目属性 字符集 变为  多字节
不能将“this”指针从“const XXX”转为“XXX &”
1 版本说明     Win10(64bit)、Qt5.4.2 2 错误说明 3 解决方法     出现上述错误的原因是在const成员函数中调用了非const成员函数,因此只要将所调用的函数都改成const函数
不能将this指针从“const type" 转换为"type &"
当在类中声明并定义了一个普通的公共成员函数,在主函数里定义了一个此类的常对象,如果试图使常对象调用非”常成员函数“就会产生如标题所说的:  error: 不能讲this指针从"const classtype" 转换为 "classtype &"。 解决方案是将成员函数定义为常成员函数(常成员函数保证调用此函数的对象不会被改变): class MyClass { public:
vc error C2664: 不能将参数 2 从“CString”转换为“LPTSTR”解决方法
error C2664: 不能将参数 2 从“CString”转换为“LPTSTR”解决方法 将csting用getbuffer()转换 比如: cstring a; a.Gerbuffer(); 我的项目里面: m_tabfirstpage.AddTab(&m_firstpage, _T(CLanguage::getString(CLanguage::SI_MainSkinUI_Fi