title: Create new UIImage by adding shadow to existing UIImage
body: <p>I've taken a look at this question: <a href="https://stackoverflow.com/questions/962827/uiimage-shadow">UIImage Shadow Trouble</a></p>
  
  <p>But the accepted answer didn't work for me.</p>
  
  <p>What I'm trying to do is take a UIImage and add a shadow to it, then return a whole new UIImage, shadow and all.</p>
  
  <p>This is what I'm trying:</p>
  
  <pre><code>- (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;
  }
  </code></pre>
  
  <p>The result is that I get exactly the same image as before I put it through this method.</p>
  
  <p>I am doing this the correct way, or is there something obvious I'm missing?</p>