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

Bea*_*red 16 iphone xcode core-graphics quartz-graphics ipad

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

  1. 如果我创建一个.png图像,它在我的项目目录(即我的计算机硬盘)中的哪个位置?我可以将它放在我的硬盘驱动器上,当我将其加载到Xcode中时,Xcode会将它复制到正确的位置吗?
  2. 一旦它存在于我的硬盘驱动器上,我该如何将它添加到我的Xcode项目中?我可以将文件拖到"Groups&Files"树中的任何文件夹中吗?
  3. 将其拖入Xcode后,我想在弹出的复制文件对话框中使用哪些复制设置?将项目复制到目标组的文件夹复选框?参考类型?递归创建添加文件夹的组?
  4. 一旦将.png图像正确添加到我的项目中,将它放入CGImageRef的最简单方法是什么?文档显示了使用CGImageCreateWithPNGDataProvider辅助方法的示例,但表示iOS SDK不支持它.我想使用CGImageRef重复将图像绘制到位图上下文.

非常感谢,我为这个冗长的问题道歉,我感到惊讶的是,与其他一些平台相比,这是一个令人费解的过程.

小智 17

如果你加载到UIImage,你可以得到一个CGImageReg:

    UIImage *image = [UIImage imageNamed:@"image.png"];
CGImageRef imageRef = [image CGImage];
Run Code Online (Sandbox Code Playgroud)


Joo*_*uur 5

1)它可以在组和文件中的任何位置,但如果你只有少数,我建议将它粘贴到资源组.请记住,组和文件中的组与目录结构中的实际文件夹不匹配.它们只是用于组织文件.

2)只需将其拖到"组和文件"窗格中即可.

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

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