将.png加载到xcode并转换为UIImage

时间:2012-08-11 01:22:57

标签: xcode uiimage png sparrow-framework

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

NSData *imageData = UIImagePNGRepresentation(image);

如何加载我的资源文件夹中的一个.png,然后将其转换为UIImage?如果有任何帮助,我也会使用麻雀框架。

修改

我已按照以下建议尝试此代码。

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,我不知道。

1 个答案:

答案 0 :(得分: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"];