GPUImage源码阅读(三):OpenGL 与 BGRA/RGBA

GPUImagePicture.m 的源码中提到,只有这两种格式的图像数据可以直接在 OpenGL 中使用:

  • Little endian,alpha-first,即 BGRA(也就是 ARGB 反过来)
  • Big endian,alpha-last,即 RGBA

在 Apple 的官方 sample code GLImageProcessing 有这样的说明:

CGImage may return pixels in RGBA, BGRA, or ARGB order.
On the device, CGImage will generally return BGRA or RGBA.
On the simulator, CGImage may return ARGB, depending on the file format.

为了提升 Core Graphics 的性能,苹果推荐使用 BGRA。

参考:

  1. Quick Tip: Working with CGBitmapContext and pixel ordering (RGBA, BGRA etc)
  2. How can I use ARGB color in opengl/SDL?
  3. Programming with Quartz: 2D and PDF Graphics in Mac OS X
  4. Determining color order from an image file
  5. adobe/chromium
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容