Я пытаюсь сделать что-то, что в теории должно быть довольно простым, но я уже несколько дней гоняюсь за своим хвостом.Я пытаюсь взять событие касания из наложения экрана, захватить изображение и обрезать участок изображения вокруг того места, где касался палец.
Теперь весь мой код работает нормально, наложение, события, кадрирование и т. д. Однако я не могу получить систему координат события касания, соответствующую системе координат UIImage.Я прочитал все документы, которые у меня есть, но я никак не могу понять.
Мой главный вопрос: нужно ли учитывать UIImageOrientation при использовании CGImageCreateWithImageInRect, иликварц разобраться?Причина, по которой я спрашиваю, состоит в том, что у меня есть очень простая процедура, которая просто обрезает изображения, но обрезанное изображение никогда не появляется там, где мой палец нажимал ??
Основная часть процедуры:
-(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);
}
Итак, проблема в том, что моя обрезанная область (как видно из моего фотоальбома) никогда не совпадает с реальной областью, на которой я нажимаю (это всегда какая-то другая случайная часть фотографии), что заставляет меня думать, что моя система координат отключена.
Буду очень признателен за любые указатели, даже если есть только указатели на некоторые документы, которые я еще не нашел.
Приветствия Адам