Erstellen Sie neue UIImage durch das hinzufügen von Schatten zu bestehenden UIImage

Habe ich einen Blick auf diese Frage: UIImage Schatten Ärger

Aber die akzeptierte Antwort hat bei mir nicht funktioniert.

Was ich versuche zu tun ist, nehmen Sie ein UIImage und fügen Sie einen Schatten, dann wieder ein ganz neues UIImage -, Schatten-und alle.

Dies ist, was ich versuche:

- (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;
}

Das Ergebnis ist, dass ich genau das gleiche Bild wie vorher ich habe es durch diese Methode.

Ich Tue dies der richtige Weg, oder gibt es etwas, offensichtlich bin ich vermisst?

InformationsquelleAutor Tom Irving | 2010-05-29

Schreibe einen Kommentar