在我的应用程序中,我使用initWithContentsOfURL加载各种类型的图像(JPEG,TIFF,PNG,GIF等)到一个图像中,然后加载到OpenGL纹理中。
唯一加载带有alpha通道的类型是PNG。(在上面的列表中,只有PNG和TIFF可以包含alpha数据。)如果我尝试加载.tiff图像,则会加载没有alpha通道的图像(图像的图像表示报告alpha = NO,并且它报告24位/像素。
我可以在PS中编辑带有alpha的图像,将其保存为PNG和TFF,PNG在我的程序中加载具有alpha,但TIFF不会。此外,我可以打开PS中的TIFF图像并确认它确实具有alpha数据。
我在这里错过了什么?为什么我的TIFF图像没有带有alpha通道?是否有另一个appkit调用可以使我的TIFF不会掉落alpha通道?
编辑:
自发布此问题以来,我发现某些4通道TIFF带有alpha数据,而某些则没有。我还没有弄清楚什么工作流程会导致不同的结果。
这个文件在Photoshop中带有alpha通道,但如果您使用
唯一加载带有alpha通道的类型是PNG。(在上面的列表中,只有PNG和TIFF可以包含alpha数据。)如果我尝试加载.tiff图像,则会加载没有alpha通道的图像(图像的图像表示报告alpha = NO,并且它报告24位/像素。
我可以在PS中编辑带有alpha的图像,将其保存为PNG和TFF,PNG在我的程序中加载具有alpha,但TIFF不会。此外,我可以打开PS中的TIFF图像并确认它确实具有alpha数据。
我在这里错过了什么?为什么我的TIFF图像没有带有alpha通道?是否有另一个appkit调用可以使我的TIFF不会掉落alpha通道?
编辑:
自发布此问题以来,我发现某些4通道TIFF带有alpha数据,而某些则没有。我还没有弄清楚什么工作流程会导致不同的结果。
这个文件在Photoshop中带有alpha通道,但如果您使用
-[[NSImage alloc] initWithContentsOfURL]
在Cocoa中加载它,则不会带有alpha通道:
一个类似的带有alpha通道的图像使用上述Cocoa调用确实带有alpha通道:
-[[NSImage alloc] initWithContentsOfURL]
)。自从发布问题以来,我已经找到了一些带有alpha通道的4通道TIFF文件。我编辑了我的问题,包括可以正确工作和不能正确工作的示例图像。非常奇怪... - Duncan C