- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 GLKit 使用 OpenGL ES 2.0 制作一个 iPhone 应用程序。我正在使用 GLKTextureLoader 加载纹理。当我的纹理位于 mainBundle 中时 - 一切正常。我用命令 [[NSBundle mainBundle] pathForResource:@"brushRose.png"ofType:nil]
得到它的名字,纹理有以下路径:
/var/mobile/Containers/Bundle/Application/D79492CB-D03C-464D-B06E-00D0DE4389DF/Texture Test.app/brushRose.png
当我尝试从 Internet 下载完全相同的纹理并将其存储在应用程序的 Documents
文件夹中时。路径如下:
/var/mobile/Containers/Data/Application/CD3FBAAB-B8AE-47F5-9C6E-51C854FC1620/Documents/brushes/ps_roses.png
我得到了一个糟糕的最终结果,可以在下图中观察到: First row - texture from mainBundle, second row - from Documents
欢迎提出任何解决第二种情况的想法。
可以找到测试项目here
最佳答案
当您构建包含 PNG 的应用程序时,Xcode 会对它们运行 pngcrush
,其中包括 pre-multiplies the alpha .
您正在使用的“非主包”文件没有预乘 alpha。这解释了外观上的差异。
您的选择是在您的 url 纹理上运行 pngcrush
,或者停止在您的项目中运行 pngcrush,或者在您加载未压缩的 PNG 时有条件地应用 GLKTextureLoaderApplyPremultiplication
:
NSMutableDictionary *options = [@{ GLKTextureLoaderOriginBottomLeft : @NO} mutableCopy];
if ( /** png is uncrushed **/ ) {
options[GLKTextureLoaderApplyPremultiplication] = @YES;
}
NSError* error;
GLKTextureInfo* texture = [GLKTextureLoader textureWithContentsOfFile:brushPath options:options error:&error];
关于ios - 纹理不在 mainBundle 中的 GLKTextureLoader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34642171/
我在 iPad 上使用 Split View模板。 在我的 MasterViewController代码: NSBundle * bundle = [NSBundle mainBundle]; 有效。
这个问题在这里已经有了答案: modifying a plist is not working (3 个答案) 关闭 10 年前。
在一些流行的开源 swift 项目中。我注意到以下方法用于从主包加载文件。 @objc class TestClass: NSObject { } let bundle = NSBundle(forC
我正在尝试将几个图像文件从 MainBundle/SampleImages 文件夹复制到应用程序 NSDocumentDirectory/Library 文件夹,但无法执行此操作。我已检查图像是否位于
基本上问题正是标题所说的。 我的应用程序在模拟器上运行顺畅,没有任何崩溃。 事实上,以前的版本在应用商店。我在这里和那里做了一些小改动,突然它开始在一个非常奇怪的地方崩溃。 我用 [NSBundle
我刚刚重新安装了我的 mac 和 Xcode。然后[NSBundle mainBundle]由于某种我不知道的原因,总是返回 nil。 非常感谢你! 这是我的调试 Pane 的屏幕截图: 最佳答案 您
我正在使用 GLKit 使用 OpenGL ES 2.0 制作一个 iPhone 应用程序。我正在使用 GLKTextureLoader 加载纹理。当我的纹理位于 mainBundle 中时 - 一切
我想不出关于 pathForResource 是如何工作的任何韵律或原因……或者更恰本地说,不是。 我的应用程序中有一堆 nib,它们都在/Build Phases/Copy Bundle Resou
在我的代码中我想打开一个html文件,所以添加了下面这行代码: NSString* path = [[NSBundle mainBundle] pathForResource:@"cheese"ofT
我有一个正在运行的 iOS 项目,在 git 分支上工作时,该项目突然不会从主 Bundle 加载任何资源...我正在为一个简单的 AVAudioPlayer 加载一个音频文件: NSURL *url
问题:[NSBundle mainBundle] pathForResource 返回 null (0x0) 我看了很多关于这个主题的帖子,这是我发现的: 确保您尝试获取路径的文件在项目中。要检查,请
我不知道检索我的 iphone 应用程序 mainBundle 中资源的所有文件名所需的确切代码。如果我能有这样的代码: NSArray *array = [[NSBundle mainBundl
RootViewController *rvController = [[RootViewController alloc] initWithNibName:@"RootViewController"
这让我发疯,因为我无法弄清楚世界上到底发生了什么。我一直从主包加载文件,xml 文件,html 文件等。但是,现在我试图获取 javascript 文件的内容,但它永远找不到它。我正在使用: NSDa
我从未加载过 bundle ,所以我不确定为什么这不起作用。我认为这并不重要,但这里有问题的 .xib 与我所有其他 .xib 位于同一个资源文件夹中。 NSArray *array = [[NSBu
此时我的应用程序在设备中崩溃了, [[NSBundle mainBundle] pathForResource 我在这里给出了 pdf 的路径。但在执行时它显示它没有到达那里的路径。这可能是崩溃的原因
此方法 appStoreReceiptURL 是 SKPaymentTransaction 上已弃用的 transactionReceipt 方法的替代品。每个人都说只使用这个调用: NSURL *t
friend , 我在仪器中运行我的代码,它显示 5 行内存泄漏(在以下代码之外)即 cell = [[[NSBundle mainBundle] loadNibNamed:@"ZoomCustomV
我正在尝试从 infoDictionary 中检索一些 URL。 10 次中有 9 次,URL 被正确返回。然而,极少数情况下,URLs 会返回 nil。知道是什么导致了这种行为吗?当这种奇怪的行为发
我有以下代码: NSString *folderPath = [NSString stringWithFormat:@"%@/Objects/", [[NSBundle mainBundle] bun
我是一名优秀的程序员,十分优秀!