1

我对 Xcode、obj-c 等完全陌生,但我想使用 Parse.com 将图像保存到他们的服务器,他们说你必须使用这一行,将 UIImage 转换为 NSData

NSData *imageData = UIImagePNGRepresentation(image);

如何加载资源文件夹中的 .png 之一,然后将其转换为 UIImage?如果有帮助的话,我也在使用 Sparrow 框架。

编辑

我已经按照下面的建议尝试了此代码。

NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"terrainHexAtlas_v1@2x.png" ofType:@"png"];
UIImage *myImage = [UIImage imageWithContentsOfFile:imagePath];
NSData *imageData = UIImagePNGRepresentation(myImage);

PFFile *imageFile = [PFFile fileWithName:@"terrainHexAtlas_v1@2x.png" data:imageData];
    [imageFile save];

但似乎什么都没有发生。我在最后一行尝试了一个断点,vars imagePath、myImage、imageData 都是 00000000,我没有得到。

4

1 回答 1

3

你应该遵循代码:

//png
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"your_image" ofType:@"png"];
UIImage *myImage = [UIImage imageWithContentsOfFile:imagePath];
NSData *pngImageData = UIImagePNGRepresentation(myImage);

//jpeg
NSString *imagePath2 = [[NSBundle mainBundle] pathForResource:@"your_image" ofType:@"jpg"];
UIImage *myImage2 = [UIImage imageWithContentsOfFile:imagePath2];
NSData *jpegImageData = [UIImageJPEGRepresentation(myImage2, 1.0f)];

不要在 pathForResource 中包含扩展名。检查以下错误案例。

// 不包含扩展名

NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"your_image.png" ofType:nil];

// 包含一个扩展

NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"your_image" ofType:@"png"];

// 有些人会弄错大小写。错误代码。那个回报nil

NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"your_image.png" ofType:@"png"];
于 2012-08-11T03:51:28.320 回答