UIGraphicsGetImageFromCurrentImageContext дает плохое качество / низкое разрешение изображения, как мне лучше? - PullRequest
2 голосов
/ 16 апреля 2010

Хорошо, я делаю снимок экрана с фотографией, сделанной моей камерой на iPhone. Я помещаю фотографию с камеры в UIImageView и делаю снимок экрана с помощью такого кода (это от http://www.skylarcantu.com/blog/2009/10/16/saving-a-view-as-an-image/)...

 - (void)takeScreenshot {

    UIWindow *theScreen = [[UIApplication sharedApplication].windows objectAtIndex:0];     
    UIGraphicsBeginImageContext(theScreen.frame.size);  
    [[theScreen layer] renderInContext:UIGraphicsGetCurrentContext()];   
    UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();              
    [self doSomethingWith:screenshot]; 
}

У меня все работает, как я хочу, но качество изображения на скриншоте намного хуже, чем на моем фотоаппарате. Есть ли способ преодолеть это? Я думаю, это потому, что это снимок экрана, который фиксирует разрешение экрана iPhone, а не разрешение камеры - возможно?!

Любые предложения будут великолепны: -)

1 Ответ

1 голос
/ 18 апреля 2010

Ты совершенно прав. Разрешение экрана (320 x 480) намного меньше, чем у камеры (1200 x 1600 в 3G, 1536 x 2048 в 3GS), поэтому ваш UIImageView должен быть 320x480, и он автоматически уменьшит размер вашего изображения, чтобы соответствовать. Это кажется запутанным, хотя - у вас уже есть фотография в виде UIImage с более высоким разрешением - вы пытаетесь наложить на него что-то или что-то?

...