Erstelle ein neues UIImage, indem du Schatten zu bestehendem UIImage hinzufügst

Ich habe mir diese Frage angesehen:UIImage Shadow Trouble

Aber die akzeptierte Antwort hat bei mir nicht funktioniert.

Was ich versuche, ist, ein UIImage zu nehmen und ihm einen Schatten hinzuzufügen, und dann ein ganz neues UIImage, einen Schatten und alles zurückzugeben.

Das 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 erhalte wie vor dem Durchlaufen dieser Methode.

Ich mache das auf die richtige Weise, oder fehlt mir etwas Offensichtliches?

Antworten auf die Frage(14)

Ihre Antwort auf die Frage