2010-11-09 2 views
0

Я хочу сделать скриншоты в ландшафтном режиме.Помощь по захвату экрана

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

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

как я могу достичь этого ...

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

ниже мой код

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

ответ

1

Насколько я знаю, в ландшафтном режиме невозможно сделать скриншоты. Изображения, сделанные с 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, как я ответил на ваш другой вопрос (Saving images to a given location)

Смежные вопросы