图像未显示在CGImageCreateWithImageInRect中

时间:2014-03-21 04:23:44

标签: ios objective-c ios7

我的图片无法显示,我也尝试了其他图片,我只是一个空白的屏幕。

UIImage *img = [[UIImage alloc] initWithContentsOfFile:@"building-demolition4.gif"];
CGImageRef imageRef = CGImageCreateWithImageInRect([img CGImage], CGRectMake(0, 0, 208.5, 119));
UIImageView *ckImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 208.5, 119)];
ckImage.image = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
[self.view addSubview:ckImage];

2 个答案:

答案 0 :(得分:1)

问题是initWithContentsOfFile:需要文件路径。 @"building-demolition4.gif"不是文件路径 - 它只是一个简单的名称。因此,运行时不知道在哪里查找文件 - 因此无法找到它。

如果此图片位于您的应用包内(因为它是您项目的一部分),访问它的简单方法是使用UIImage类方法imageNamed:

(更复杂的方法是使用NSBundle方法pathForResource:...获取图像的路径,但这里确实没有必要。)

答案 1 :(得分:0)

我使用了以下适用于我的代码:

NSString *fileName = [[NSBundle mainBundle] pathForResource:@"myimg" ofType:@"png"];
UIImage *image = [UIImage imageWithContentsOfFile:fileName];
CGImageRef cgimg = image.CGImage;
UIImageView *imgview = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
[imgview setImage:[UIImage imageWithCGImage:cgimg]];
[self.view addSubview:imgview];

如果您想添加gif文件,请查看以下链接可能对您有帮助。

https://github.com/unixpickle/Giraffe