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