私はこの質問を見てきました: UIImage Shadow Trouble
しかし、受け入れられた答えは私にはうまくいきませんでした。
私がやろうとしているのは、UIImage を取得してそれに影を追加し、まったく新しい UIImage、影、およびすべてを返すことです。
これは私がしようとしているものです:
- (UIImage*)imageWithShadow {
CGColorSpaceRef colourSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef shadowContext = CGBitmapContextCreate(NULL, self.size.width, self.size.height + 1, CGImageGetBitsPerComponent(self.CGImage), 0,
colourSpace, kCGImageAlphaPremultipliedLast);
CGColorSpaceRelease(colourSpace);
CGContextSetShadow(shadowContext, CGSizeMake(0, -1), 1);
CGContextDrawImage(shadowContext, CGRectMake(0, 0, self.size.width, self.size.height), self.CGImage);
CGImageRef shadowedCGImage = CGBitmapContextCreateImage(shadowContext);
CGContextRelease(shadowContext);
UIImage * shadowedImage = [UIImage imageWithCGImage:shadowedCGImage];
CGImageRelease(shadowedCGImage);
return shadowedImage;
}
その結果、この方法を使用する前とまったく同じ画像が得られます。
私はこれを正しい方法で行っていますか、それとも明らかに欠けているものがありますか?