lib/sugarcube/uiimage.rb in sugarcube-0.13.7 vs lib/sugarcube/uiimage.rb in sugarcube-0.14.0
- old
+ new
@@ -195,6 +195,29 @@
##|
def alignment_rect(insets=UIEdgeInsetsZero)
imageWithAlignmentRectInsets(insets)
end
+ ##|
+ ##| CGImageCreateWithMask
+ ##|
+ ## The mask image cannot have ANY transparency.
+ ## Instead, transparent areas must be white or some value between black and white.
+ ## The closer towards black a pixel is the less transparent it becomes.
+ def masked(mask_image)
+ mask_image = mask_image.CGImage
+
+ width = CGImageGetWidth(mask_image)
+ height = CGImageGetHeight(mask_image)
+ component_bits = CGImageGetBitsPerComponent(mask_image)
+ pixel_bits = CGImageGetBitsPerPixel(mask_image)
+ row_bytes = CGImageGetBytesPerRow(mask_image)
+ data_provider = CGImageGetDataProvider(mask_image)
+
+ mask = CGImageMaskCreate(width, height, component_bits,
+ pixel_bits, row_bytes, data_provider,nil, false)
+
+ masked = CGImageCreateWithMask(self.CGImage, mask)
+ UIImage.imageWithCGImage(masked)
+ end
+
end