2014-01-15 4 views
0

Я работаю над своим фотоприложением, и у меня проблема с окончательным сохраненным изображением, имеющим более низкое качество. Я не уверен, что делать, чтобы качество изображения соответствовало тому, что я вижу на экране (до сохранения в камере). Когда я открываю сохраненное изображение, оно неровно/размыто. Вот мой код, любое понимание будет оценено:Качество UIImage Плохое после сохранения

CGRect grabRect ;  
    if (self.view.frame.size.height==460) { 
     grabRect = CGRectMake(30,50,260,257); 
    } 
    else{ 
     grabRect = CGRectMake(3,50,314,315); 
    } 
    //for retina displays 
    NSLog(@"save......"); 
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { 
     UIGraphicsBeginImageContextWithOptions(grabRect.size, NO, [UIScreen mainScreen].scale); 
    } else { 
     UIGraphicsBeginImageContext(grabRect.size); 
    } 
    CGContextRef ctx = UIGraphicsGetCurrentContext(); 
    CGContextTranslateCTM(ctx, -grabRect.origin.x, -grabRect.origin.y); 
    [self.view.layer renderInContext:ctx]; 
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 

    UIGraphicsEndImageContext(); 
+0

Извините, я пробовал это, и это не имело никакого значения. – dfox

+0

Вы говорите, что это расплывчато * до * вы сохраняете в рулоне камеры или что после того, как вы сохраните его в кадре камеры и используете приложение iOS Pictures, чтобы открыть его *, тогда * он выглядит размытым? –

+0

После того, как я сохраню рулон камеры. Это совершенно нормально в приложении, но качество уменьшается при сохранении и открытии его в рулоне камеры. Это не очень весело, просто немного, но достаточно, чтобы раздражать меня. – dfox

ответ

0

Я думаю, что эта линия является проблемой.

UIGraphicsBeginImageContextWithOptions (grabRect.size, NO, [UIScreen mainScreen] .scale);

Должно быть UIGraphicsBeginImageContextWithOptions (grabRect.size, NO, 0);

Возможно, я ошибаюсь, но, думаю, просто установите шкалу на 0 или 0.0 использует масштаб по умолчанию на экране.

+0

попробовал это уже :(не имеет значения – dfox

+0

Установка шкалы на '0' означает использовать масштаб текущего экрана. Или дает то же самое. – rmaddy

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