Я пытаюсь создать метод, который переворачивает UIImage вдоль оси X, оси Y или обоих.Я продолжаю приближаться, но мои знания о трансформации недостаточно хороши, чтобы пройти весь путь.Вот код, который у меня есть:
- (UIImage *)flippedImageByAxis:(MVImageFlip)axis{
UIGraphicsBeginImageContext(self.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGAffineTransform verticalFlip = CGAffineTransformMake(1, 0, 0, -1, 0, self.size.height);
CGAffineTransform horizFlip = CGAffineTransformMake(-1.0, 0.0, 0.0, 1.0, self.size.width, 0.0);
if(axis == MVImageFlipXAxis || axis == MVImageFlipXAxisAndYAxis)
CGContextConcatCTM(context, horizFlip);
if(axis == MVImageFlipYAxis || axis == MVImageFlipXAxisAndYAxis)
CGContextConcatCTM(context, verticalFlip);
CGContextDrawImage(context, CGRectMake(0.0, 0.0, self.size.width, self.size.height), [self CGImage]);
UIImage *flipedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return flipedImage;
}
Это переворачивает изображение, но не правильно.Изображение, перевернутое по оси Y, не переворачивается вообще, изображение, перевернутое по X, выглядит так, как должно выглядеть изображение XY, а изображение по XY выглядит так, как должно выглядеть изображение Y.Комбинирование преобразований и их правильная работа причиняют мне боль.
Перечисление MVImageFlip - это всего лишь три, которые вы видите в коде.Ничего особенного.