1

对于 iPhone,我正在使用 CGContextClipToMask 剪辑图像。

在 320x480 中,它看起来很漂亮。但在视网膜显示器/模拟器中,掩蔽看起来像是在 320x480 中完成的,然后放大到 640x960 - 它看起来有点简陋。

正在使用正确的 640x960 图像(我已标记它们以确保)。

我的代码如下。有谁知道它可能是什么?将非常感谢一些帮助。非常感谢。

-(id)makeMainImage:(UIImage*)initMaskImg initMainImage:(UIImage*)initMainImage{

    //get images
    UIImage *mainImg = initMainImage;
    UIImage *maskImg = initMaskImg;

    //new context, to draw image into
    UIGraphicsBeginImageContext(mainImg.size);
    CGContextRef context = UIGraphicsGetCurrentContext();

    //position context
    CGContextTranslateCTM(context, 0,480);
    CGContextScaleCTM(context, 1.0, -1.0);//flip coordinates

    //rect
    CGRect imageRect = CGRectMake(0, 0, 320, 480);

    //set mask
    CGContextClipToMask(context, imageRect, maskImg.CGImage);

    //main image
    CGContextDrawImage(context, imageRect, mainImg.CGImage);

    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();    

    return newImage;
}
4

1 回答 1

5

不要使用'UIGraphicsBeginImageContext',使用

UIGraphicsBeginImageContextWithOptions(size, opaque, 0); // last option is the scale option

这就是您创建视网膜图像的方式。

于 2012-09-06T21:11:58.500 回答