class UIImage
Public Instance Methods
resize_image_to_size(target_size, upscale=true)
click to toggle source
Resize Image target_size: Array or CGSize upscale: Boolean (false = do not upscale image)
Code ideas from stackoverflow.com/questions/15653953/resize-image-in-iphone
# File lib/formotion/patch/ui_image.rb, line 9 def resize_image_to_size(target_size, upscale=true) image_size = self.size # convert Array to CGSize if target_size.is_a?(Array) target_size = CGSizeMake(target_size[0], target_size[1]) end # when target_size no CGSize set to image_size unless target_size.is_a?(CGSize) target_size = image_size end # do not upscale when requested if !upscale and (target_size.width > image_size.width or target_size.height > image_size.height) target_size = image_size end unless CGSizeEqualToSize(image_size, target_size) width_factor = target_size.width / image_size.width height_factor = target_size.height / image_size.height if width_factor < height_factor target_size.height = image_size.height * width_factor else target_size.width = image_size.width * height_factor end end UIGraphicsBeginImageContext(target_size) resize_rect = CGRectMake(0, 0, target_size.width, target_size.height) self.drawInRect resize_rect resized_image = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() resized_image end