Помощь по захвату экрана - PullRequest
0 голосов
/ 09 ноября 2010

Я хочу сделать снимки экрана в альбомном режиме.

В настоящее время мой код ниже делает снимки экрана в режиме ПОРТРЕТА.

Также я хочу сохранить изображения в указанном месте, а не в библиотеке фотографий..

как мне этого добиться ...

спасибо за любую помощь

ниже мой код

UIGraphicsBeginImageContext(self.view.bounds.size) ;
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(viewImage, self, nil, nil); 

1 Ответ

1 голос
/ 09 ноября 2010

Насколько я знаю, нет возможности делать скриншоты в ландшафтном режиме. Изображения, снятые на iPhone, содержат информацию, называемую imageOrientation, которая затем используется для поворота UIImageView, отображающего это изображение.

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

Создайте метод для поворота и передайте UIImage в качестве аргумента.

CGSize size =  sizeOfImage;
 UIGraphicsBeginImageContext(size);

 CGContextRotateCTM(ctx, angleInRadians); // (M_PI/2) or (3M_PI/2) depending on left/right rotation

 CGContextDrawImage(UIGraphicsGetCurrentContext(),
  CGRectMake(0,0,size.width, size.height),
  image);

 UIImage *copy = UIGraphicsGetImageFromCurrentImageContext();

 UIGraphicsEndImageContext();

 return copy;

Для сохранения в определенном месте вы можете использовать NSData, как я ответил на ваш другой вопрос ( Сохранение изображений в указанном месте )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...