No se puede get la porción exacta de la image recortada mediante el uso de OpenGL en ipad

En mi aplicación Ipad estoy usando OpenGL framework para recortar la image. No soy mucho más familiar con OpenGL. Aquí en mi aplicación necesito recortar una parte de la image y mostrarla en una vista de image. Para el efecto de recorte uso el marco de OpenGL. El efecto de recorte funcionaba bien, pero cuando asigno esa image a la image, aparece una image negra completa en lugar de la image recortada. No estoy llegando a donde me había equivocado. Si alguien trabaja, guíame y también publique / sugiera enlaces relacionados con mi requerimiento.

Estoy usando este código: _sourceImage es la image capturada.

-(void)showResult { UIImage *imageCrop; float scaleCrop; if (_sourceImage.size.width >= IMAGEWIDTH) { scaleCrop = IMAGEWIDTH / _sourceImage.size.width; imageCrop = [ImageCropViewController scaleImage:_sourceImage with:CGSizeMake(_sourceImage.size.width*scaleCrop, _sourceImage.size.height*scaleCrop)]; } else { scaleCrop = 1; imageCrop = _sourceImage; } float scale = _sourceImage.size.width / resizeImage.size.width * 2; IplImage *iplImage = [ImageCropViewController CreateIplImageFromUIImage:imageCrop] ; Quadrilateral rectan; rectan.point[0].x = _touchLayer.rectan.pointA.x*scale*scaleCrop; rectan.point[0].y = _touchLayer.rectan.pointA.y*scale*scaleCrop; rectan.point[1].x = _touchLayer.rectan.pointB.x*scale*scaleCrop; rectan.point[1].y = _touchLayer.rectan.pointB.y*scale*scaleCrop; rectan.point[2].x = _touchLayer.rectan.pointC.x*scale*scaleCrop; rectan.point[2].y = _touchLayer.rectan.pointC.y*scale*scaleCrop; rectan.point[3].x = _touchLayer.rectan.pointD.x*scale*scaleCrop; rectan.point[3].y = _touchLayer.rectan.pointD.y*scale*scaleCrop; IplImage* dest = cropDoc2(iplImage,rectan); IplImage *image = cvCreateImage(cvGetSize(dest), IPL_DEPTH_8U, dest->nChannels); cvCvtColor(dest, image, CV_BGR2RGB); cvReleaseImage(&dest); UIImage *tempImage = [ImageCropViewController UIImageFromIplImage:image withImageOrientation:_sourceImage.imageOrientation]; [self crop:tempImage]; cvReleaseImage(&image); } -(void)crop:(UIImage*)image { //Adjust the image size, to scale the image to 1013 of width float targetWidth = 1000.0f; float scale = targetWidth / image.size.width; float scaleheight = image.size.height * scale; UIImage *imageToSent = [ImageCropViewController scaleImage:image with:CGSizeMake(targetWidth, scaleheight)]; // Image data with compression imageData = UIImageJPEGRepresentation(imageToSent,0.75); NSDate *now = [NSDate dateWithTimeIntervalSinceNow:0]; NSString *caldate = [now description]; appDelegate.imagefilePath= [NSString stringWithFormat:@"%@/%@.jpg", DOCUMENTS_FOLDER,caldate]; [imageData writeToFile:appDelegate.imagefilePath atomically:YES]; appDelegate.cropimage=imageToSent; } 

introduzca la descripción de la imagen aquí

El negro generalmente significa que no sacaste los datos de OpenGL, y terminaste con una image en blanco.

¿Cómo recuperas la image de OpenGL? OpenGL no funciona con imágenes normales: tiene que emitir llamadas personalizadas OpenGL para extraer la image.