iPhoneの場合、CGContextClipToMaskを使用して画像をクリップしています。
320x480で、それは美しく見えます。しかし、Retinaディスプレイ/シミュレーターでは、マスキングは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;
}