Estoy tratando de hacer algo que, en teoría, debería ser bastante simple, pero he estado persiguiendo mi cola durante días. Intento tomar un evento táctil de una superposición de pantalla, capturar una imagen y recortar una sección de la imagen alrededor de donde tocó el dedo.Una buena manera de usar preguntas de CGImageCreateWithImageInRect, UIImage y UIImagePickerController
Ahora todo mi código funciona bien, la superposición, los eventos, el recorte, etc. ... sin embargo, parece que el sistema de coordenadas del evento táctil no parece coincidir con el sistema de coordenadas del UIImage. He leído todos los documentos que puedo tener, no puedo entenderlo.
Mi pregunta principal es, ¿necesito tener en cuenta UIImageOrientation cuando uso CGImageCreateWithImageInRect, o el cuarzo se da cuenta? La razón por la que pregunto es que tengo una rutina muy simple que es recortar imágenes muy bien, pero la imagen recortada nunca parece estar donde se presionó mi dedo ??
La mayor parte de la rutina es:
-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = =[info objectForKey:@"UIImagePickerControllerOriginalImage"];
float scaleX = image.size.width/SCREEN_WIDTH;
float scaleY = image.size.height/SCREEN_HEIGHT;
//lastTouch is saved from touchesBegan method
float x = (lastTouch.x * scaleX) - (CROP_WIDTH/2);
float y = (lastTouch.y * scaleY) - (CROP_WIDTH/2);
if(x < 0) x = 0.0;
if(y < 0) y = 0.0;
CGRect cropArea = CGRectMake(x, y, CROP_WIDTH, CROP_WIDTH);
CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], cropArea);
UIImage *swatch = [UIImage imageWithCGImage:imageRef];
//at this point I'm just writing the images to the photo album to see if
//my crop is lining up with my touch
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
UIImageWriteToSavedPhotosAlbum(swatch, nil, nil, nil);
}
Por lo tanto, el problema es que mi superficie cultivada (tal como se ve en mi álbum de fotos) no coincide con el área real que presiono (que siempre es alguna otra parte aleatoria de la foto), lo que me hace pensar que mi sistema de coordenadas está apagado.
Cualquier puntero sería muy apreciado, incluso si solo hay punteros a algunos documentos que aún no he encontrado.
Saludos Adam