Фон
Я использую пример поваренной книги Эрики Садунс из Chapter 8, Example 14 — Resize and Rotate
, чтобы явно изменить размер и повернуть UIImageView
.
Просмотр иерархии
1.) Полосатый фоновый вид.
2.) Интерактивный вид, который можно изменять и поворачивать.
3.) Наложение изображения с прозрачной частью.это представление начинает свою ось y с 128 и составляет 768x768.
4.) выше и ниже 3, это 2 вида 128 по высоте.
****** См. Пример фотографии ниже ****
Issue
В настоящее время я могу сохранить весь слой вида в библиотеке фотографий, используяПреобразования [[[self view] layer] renderInContext:
и # 2 верны.Однако мне нужен способ сохранить 768x768 (например, зеленый лайм на фотографии) кадр, который включает только # 2 и # 3 включая преобразования # 2 .Если я использую [[#2 layer] renderInContext:
, я получаю исходное изображение, и никаких преобразований. (см. Скриншот ниже для # ссылки.
Код
CGSize deviceSpec;
if ( IDIOM == IPAD ) { deviceSpec =CGSizeMake(768,768); } else { deviceSpec =CGSizeMake(320,480); }
if ( scale > 1.5 ) {
UIGraphicsBeginImageContextWithOptions(deviceSpec, NO, scale);
} else {
UIGraphicsBeginImageContext( deviceSpec );
}
CGContextRef ctx = UIGraphicsGetCurrentContext();
[[stripedBg layer] renderInContext:ctx]; //#1
CGContextSaveGState(ctx);
CGContextConcatCTM(ctx, [[interactiveImage layer] affineTransform]);
//CGContextTranslateCTM(ctx, interactiveImage.frame.origin.x,interactiveImage.frame.origin.y-128);
[[interactiveImage layer] renderInContext:ctx]; // #2
CGContextRestoreGState(ctx);
[[overlayImage layer] renderInContext:ctx]; // #3
UIImage * draft = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Пример фотографии
Мне нужна только часть изображения, которая обведена LIME GREEN при сохранении преобразований пользователем.