我的代码是:
NSLog(@"saving jpeg");
NSString *jpegFilePath = [NSString stringWithFormat:@"%@/%@.jpeg",docDir, [self.Youtubearray objectAtIndex:0]];
NSData *data2 = [NSData dataWithData:UIImageJPEGRepresentation([Result1 backgroundImage], 1.0f)];//1.0f = 100% quality
[data2 writeToFile:jpegFilePath atomically:YES];
基本上Result1是一个UIButton,我在代码中下载按钮的图像,并将背景图像设置为下载的图像。有没有办法从按钮保存这个图像或我将不得不再次下载?
由于
梅森
答案 0 :(得分:1)
NSData *data = UIImageJPEGRepresentation([Result1 backgroundImage], 1.0f);
如果 Result1 无法获取jpeg图像数据,则返回nil。
答案 1 :(得分:0)
UIImage *img; // your image NSData *data = UIImageJPEGRepresentation(img, 0.9f);
我正在使用:
NSFileManager *fileManager = [NSFileManager defaultManager]; [fileManager createFileAtPath:fullPath contents:data attributes:nil];
-Marc
答案 2 :(得分:0)
首先,将下载的图像保存到按钮中的想法听起来不太好。您应该考虑将图像保存在MVC的模型/控制器部分中的某个位置。视图不是保存任何数据的特别好的地方,因为如果视图消失,数据也会被释放。
其次,UIImageJPEGRepresentation()
返回NSData对象,因此不需要[NSData dataWithData: jpegData]
。
第三,我认为[Result1 backgroundImage]
返回nil或类似UIStretchableImage的东西。你应该检查返回的值。