Что не так с тем, как я пытался отразить (зеркально отразить) UIImage?

Я пытаюсь сделать это уже несколько дней. Я создаю загрузчик листов спрайтов, однако я также должен иметь возможность загружать спрайты, обращенные в противоположном направлении. Это включает переворачивание изображений, которые я уже загрузил.

Я уже пытался сделать это с помощью метода UIImageOrientation / UIImageOrientationUpMirrored, однако это не имеет абсолютно никакого эффекта и просто рисует кадр с той же ориентацией, что и раньше.

С тех пор я попробовал несколько более сложный способ, который я приведу ниже. Но все равно просто рисует изображение точно так же, как оно загружено в приложение. (не зеркально).

Я включил приведенный ниже метод (вместе с моими комментариями, чтобы вы, возможно, могли следовать моему образцу мыслей), вы видите, что я делаю неправильно?

- (UIImage*) getFlippedFrame:(UIImage*) imageToFlip
{
//create a context to draw that shizz into
UIGraphicsBeginImageContext(imageToFlip.size);
CGContextRef currentContext = UIGraphicsGetCurrentContext();



//WHERE YOU LEFT OFF. you're attempting to find a way to flip the image in imagetoflip. and return it as a new UIimage. But no luck so far.
[imageToFlip drawInRect:CGRectMake(0, 0, imageToFlip.size.width, imageToFlip.size.height)];

//take the current context with the old frame drawn in and flip it.
CGContextScaleCTM(currentContext, -1.0, 1.0);

//create a UIImage made from the flipped context. However will the transformation survive the transition to UIImage? UPDATE: Apparently not.

UIImage* flippedFrame = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return flippedFrame;
}

Спасибо, Парень.

5
задан Guy Joel McLean 23 April 2012 в 14:35
поделиться