Sha256: 47d349e8098333255fa9fb38c7a2ddb5cb3837cd0f47c70b75dc393d1fb4c4ee
Contents?: true
Size: 1.47 KB
Versions: 68
Compression:
Stored size: 1.47 KB
Contents
module RedArtisan module CoreImage module Filters module Scale def resize(width, height) create_core_image_context(width, height) scale_x, scale_y = scale(width, height) @original.affine_clamp :inputTransform => OSX::NSAffineTransform.transform do |clamped| clamped.lanczos_scale_transform :inputScale => scale_x > scale_y ? scale_x : scale_y, :inputAspectRatio => scale_x / scale_y do |scaled| scaled.crop :inputRectangle => vector(0, 0, width, height) do |cropped| @target = cropped end end end end def thumbnail(width, height) create_core_image_context(width, height) transform = OSX::NSAffineTransform.transform transform.scaleXBy_yBy *scale(width, height) @original.affine_transform :inputTransform => transform do |scaled| @target = scaled end end def fit(size) original_size = @original.extent.size scale = size.to_f / (original_size.width > original_size.height ? original_size.width : original_size.height) resize (original_size.width * scale).to_i, (original_size.height * scale).to_i end private def scale(width, height) original_size = @original.extent.size return width.to_f / original_size.width.to_f, height.to_f / original_size.height.to_f end end end end end
Version data entries
68 entries across 68 versions & 2 rubygems