Экран печати изображения iPhone - создание нового изображения из изображения - PullRequest
1 голос
/ 13 апреля 2011

Можно ли каким-то образом программно сделать экран печати из одного ImageView?

Допустим, я показываю большие фотографии разных размеров, автоматически масштабированные (AspectFit) до размера экрана, по центру и на черном фоне.Я хотел бы захватить масштабированное изображение, включая черный фон изображения, для работы с изображением 320x480.

Итак, как изменить, например, изображение 350x600 на 320x480 с черной рамкой и без каких-либо других элементов (кнопок, меток)наложение этого изображения?На Android я просто снимаю экранный буфер, но для iPhone я действительно не знаю, как это сделать ...

Заранее спасибо!

Ответы [ 3 ]

5 голосов
/ 13 апреля 2011
UIGraphicsBeginImageContext(<specify your size here as CGRect>);
[<yourImageView or view you want to convert in image>.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();

Вывод viewImage.Если вы хотите создать черную рамку, чтобы иметь такую ​​логику, добавьте imageView в UIView с blackBackroundColor черным (помните, что рамка этого представления должна быть больше рамки вашего imageView с некоторым запасом с каждой стороны, чтобыможет иметь вашу границу) ..... а теперь в [<yourView>.layer renderInContext:UIGraphicsGetCurrentContext()]; используйте этот метод.

1 голос
/ 13 апреля 2011
-(IBAction)saveViewToPhotoLibrary:(id)sender 
{
    CGRect screenRect = [[UIScreen mainScreen] bounds];
    UIGraphicsBeginImageContext(screenRect.size);

    CGContextRef ctx = UIGraphicsGetCurrentContext();
    [[UIColor blackColor] set];
    CGContextFillRect(ctx, screenRect);

    [self.view.layer renderInContext:ctx];

    UIImage *screenImage = UIGraphicsGetImageFromCurrentImageContext();
    UIImageWriteToSavedPhotosAlbum(screenImage,nil,nil,nil);                                         
    //fill cordinat in place of nil if u want only image comes and not button......ok thanks vijay// 
    UIGraphicsEndImageContext();    
}
1 голос
/ 13 апреля 2011
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(320, 480), NO, 0.0);
    CGContextRef context = UIGraphicsGetCurrentContext();
    [self.view.layer renderInContext:context];
    yourImageViewToStoreCaptured = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

Надеюсь, это поможет.

...