Снимок экрана с преобразованием - PullRequest
3 голосов
/ 05 декабря 2011

Я пытаюсь сделать снимок для экрана ipad, имеющего 2-3 просмотра.Я могу это сделать.

Теперь, в чем моя проблема, когда я нахожусь в ландшафтном режиме, я просто трансформирую один вид с помощью

CGAffineTransform transform;
transform = CGAffineTransformMakeRotation(M_PI/2);
imgPlayBoard.transform = transform;

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

-(UIImage *)saveImage{

UIGraphicsBeginImageContext(imgPlayBoard.frame.size); 
[imgPlayBoard.layer renderInContext:UIGraphicsGetCurrentContext()];
[imagesView.layer renderInContext:UIGraphicsGetCurrentContext()];
[drawBoard.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * resultingImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIImageWriteToSavedPhotosAlbum(resultingImage, nil, nil, nil);
UIGraphicsEndImageContext();
return resultingImage;
}

И это изображение, которое я получаю.Размер изображения в оснастке тот же, но все липы белые.

1 Ответ

3 голосов
/ 05 декабря 2011

Ok .. Я нашел решение сам. Все работало нормально. Но поскольку я преобразовывал вид изображения, а затем рендерил его в контекст, он брал исходное изображение вида изображения, отбрасывая преобразование. Итак, все, что я сделал, - это все три вида, которые мне нужны на изображении, я добавил их в UIView, а затем сделал снимок этого uiview. Это решило мою проблему. :) Итак, теперь моя функция выглядит так:

-(UIImage *)saveImage{
    UIGraphicsBeginImageContext(imgPlayBoard.frame.size); 
    [containerView.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage * resultingImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext();
    return resultingImage;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...