UIGraphicsGetImageFromCurrentImageContext提供低质量/低分辨率的图像,我该如何变得更好?

时间:2010-04-16 13:31:48

标签: iphone image camera screenshot

好的,所以我正在拍摄我用相机拍摄的照片。我将相机照片放入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 个答案:

答案 0 :(得分:1)

你说得对。屏幕分辨率(320 x 480)远小于相机(3G上为1200 x 1600,3GS上为1536 x 2048),因此您的UIImageView必须为320x480,并自动对您的图像进行下采样以适应。这看起来很复杂 - 你已经将照片作为更高分辨率的UIImage - 你试图将东西叠加到它上面吗?