实际上,我认为应该有一种简单的方法来实现这个目标。我需要的是纯阿尔法值信息。为了测试,我有一个50 x 55像素的PNG图像,在每个边缘都有一个5x5像素的矩形完全透明。在这些区域里,阿尔法值必须为0。其他地方的阿尔法值必须为255。我非常确定我的PNG图像被正确创建,并且看起来也正确。
请告诉我这是否理论上是正确的: 我创建了一个只有阿尔法通道而没有其他内容的CGImageRef。这是通过使用CGBitmapContextCreate和kCGImageAlphaOnly作为参数完成的。 CGBitmapContextGetBitsPerPixel(context)返回1,因此它告诉我每个像素只有一个组件:所需的阿尔法值。 我已经读到CGBitmapContextCreate将处理从给定图像到新创建的上下文的所有转换。我的图像之前是带有透明度的PNG-24格式,但Xcode中的pngcrunch似乎会进行某种转换。
那么,仅在理论上:我有任何机会在这一点上获得正确的、未预乘的阿尔法值吗?我得到的值似乎几乎匹配,但在一个大的5x5透明正方形中,我得到的值如19、197、210、0、0、0、98等。如果它们是真实的,我应该能从图像中看到一些东西。这个图像本身是纯蓝色的。
请告诉我这是否理论上是正确的: 我创建了一个只有阿尔法通道而没有其他内容的CGImageRef。这是通过使用CGBitmapContextCreate和kCGImageAlphaOnly作为参数完成的。 CGBitmapContextGetBitsPerPixel(context)返回1,因此它告诉我每个像素只有一个组件:所需的阿尔法值。 我已经读到CGBitmapContextCreate将处理从给定图像到新创建的上下文的所有转换。我的图像之前是带有透明度的PNG-24格式,但Xcode中的pngcrunch似乎会进行某种转换。
那么,仅在理论上:我有任何机会在这一点上获得正确的、未预乘的阿尔法值吗?我得到的值似乎几乎匹配,但在一个大的5x5透明正方形中,我得到的值如19、197、210、0、0、0、98等。如果它们是真实的,我应该能从图像中看到一些东西。这个图像本身是纯蓝色的。