如何将本地jpeg或png图像文件加载到iPhone应用程序中?

时间:2010-06-23 17:07:34

标签: iphone xcode ipad core-graphics quartz-graphics

或者我应该问为什么对我这么难?答案可能是我是iPhone开发的新手,我正试图抛弃我的旧方法并进入未来的新平台。从开始到结束,我对这个过程有几个问题......

  1. 如果我创建一个.png图像,它会放在我项目的目录中(即我的计算机的硬盘驱动器)?我可以将它放在硬盘上的任何地方吗?当我将它加载到Xcode中时,Xcode会将它复制到正确的位置吗?
  2. 一旦它存在于我的硬盘驱动器上,如何将其添加到我的Xcode项目中?我可以将文件拖到“Groups& Files”树中的任何文件夹中吗?
  3. 将其拖入Xcode后,我想在弹出的复制文件对话框中使用哪些复制设置?将项目复制到目标组的文件夹复选框?参考类型?递归创建添加文件夹的组?
  4. 将.png图像正确添加到我的项目后,将其放入CGImageRef的最简单方法是什么?文档显示了使用CGImageCreateWithPNGDataProvider辅助方法的示例,但表示iOS SDK不支持它。我想使用CGImageRef重复将图像绘制到位图上下文。
  5. 非常感谢,我为这个冗长的问题道歉,我感到惊讶的是,与其他平台相比,这是一个令人费解的过程。

6 个答案:

答案 0 :(得分:17)

如果您加载到UIImage,您可以获得CGImageReg:

    UIImage *image = [UIImage imageNamed:@"image.png"];
CGImageRef imageRef = [image CGImage];

答案 1 :(得分:5)

1)它可以出现在群组中的任何地方。文件,但如果你只有一些,我建议将它粘贴到资源组中。请记住,群组和群组中的群组但是,文件与目录结构中的实际文件夹不匹配。它们只是用来组织你的文件。

2)只需将其拖入群组&文件窗格。

3)我使用'复制'选项。当您链接到不同项目使用的共享资源时,不复制它通常很有用。

4)我自己没有使用CGImageRef,但是如果你只想要一个UIImage,你可以简单地调用它的imageNamed:类方法并指定图像名称而不需要任何额外的路径。假设文件将相对于应用程序的主要包。

答案 2 :(得分:3)

1& 2)您可以将它放在硬盘上的任何位置(只要您不移动或删除它..那么您需要更新XCode中的参考)。在XCode中,您可能需要通过右键单击左侧模型树并从菜单中选择它来为图像创建“组”。然后再次右键单击并转到“添加” - > “现有文件或文件夹”并选择png文件。如果您不小心将其添加到错误的组中,则可以在XCode模型树中将其拖动。您也可以从Finder窗口将文件拖放到XCode中的一个组中。

3)您可以使用“默认”复印设置,而无需将其复制到项目中。引用足够好,无需递归创建组。

4)你想用图像做什么?您是否需要png文件中的CGImageRef或者您是否可以使用UIImageViewUIImage从文件中加载它,或者您可以将它放在Interface Builder(IB)中。如果您详细了解如何使用图像,也许我们可以帮助您。

答案 3 :(得分:2)

如果你想要一个特定的图像或一组图像作为应用程序的一部分包含在内,你只需将它们拖到项目中 - 我更喜欢参考资料部分 - 并使用UIImage按名称引用它们“ imageNamed“用于初始化。

如果您尝试加载单个iPhone本地的图像,使用不同的技术,但这似乎不是您想要的。

我也是iPhone编程的新手,所以我希望这会有所帮助。

答案 4 :(得分:2)

将图片放入图书馆然后运行此功能

NSString *localPath = [[NSBundle mainBundle]bundlePath];

NSString *imageName = [localPath stringByAppendingPathComponent:[[NSString alloc]initWithFormat:@"worldMapResized.png"]];

CGRect bgRect = CGRectMake(0, 0, 500, 500);

UIImageView *myBgView = [[UIImageView alloc] initWithFrame:bgRect];

[myBgView setImage:[UIImage imageWithContentsOfFile:imageName]];

[self.view addSubview:myBgView];

答案 5 :(得分:0)

使用XCODE:

如果您的XIB文件中有一个UIImage对象(此处名为buttonScan)并且在.h文件中引用,在.m文件的viewDidLoad中,您可以使用此代码来引用一个图像文件你打电话给buttonScan01a.png(你使用FILE>将文件添加到你的项目中导入...

buttonScan.image = [UIImage imageNamed:@"buttonScan01a.png"];
[buttonScan sizeToFit];