背景色为透明时也适用。。。见到过一种保存方式,如果opengl透明度打开时,背景色设为透明而保存的是黑色。。
这个方法则完全ok。
//保存成图片
- (UIImage*)cropImage
{
NSInteger myDataLength = self.bounds.size.width*self.bounds.size.height*4 ;
GLubyte * buffer = (GLubyte*) malloc(myDataLength);
memset(buffer, 0, myDataLength);
glReadPixels(self.bounds.origin.x,
self.bounds.origin.y,
self.bounds.size.width,
self.bounds.size.height,
GL_RGBA,
GL_UNSIGNED_BYTE,
buffer);
CGDataProviderRef provider = CGDataProviderCreateWithData(NULL,
buffer,
myDataLength,
NULL);
CGImageRef iref = CGImageCreate(self.bounds.size.width,
self.bounds.size.height,
8,
32,
self.bounds.size.width*4,
CGColorSpaceCreat