我正在尝试使用 CGContextRef 对图像应用一些转换。我正在使用 CGContextTranslateCTM、CGContextScaleCTM 和 CGContextRotateCTM 函数,但为了简单起见,我们只关注第一个。我想知道为什么下面的代码会产生原始图像?!我错过了什么吗?
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef g = CGBitmapContextCreate((void*) pixelData,
width,
height,
RGBA_8_BIT,
bytesPerRow,
colorSpace,
kCGImageAlphaPremultipliedLast);
CGContextSetShouldAntialias(g, YES);
CGContextSetInterpolationQuality(g, kCGInterpolationHigh);
CGContextTranslateCTM( g,translateX, translateY );
CGImageRef tempImg = CGBitmapContextCreateImage (g);
CGContextDrawImage( g, CGRectMake (0, 0, width, height), tempImg );
CGContextRelease(g);
CGColorSpaceRelease( colorSpace );
此外,翻译后,如何在此图像上绘制另一张图像但具有部分透明度(例如 alpha = 0.5)。
我搜索了很多但没有找到答案,感谢任何帮助...... :)
请注意,我正在从 pixelData 创建上下文,并且 tempImg 是在翻译之后创建的。初始化没有任何问题,因为当前正在生成原始图像,但问题在于我想的翻译..