Sha256: 301b338a674edb04a27a2143640bd832ef4424ce0a97e5a4f6b37338e60f9160
Contents?: true
Size: 1.14 KB
Versions: 1
Compression:
Stored size: 1.14 KB
Contents
class PSD class Renderer class Mask attr_accessor :mask_data def initialize(canvas) @canvas = canvas @layer = canvas.node @mask_data = @layer.image.mask_data @doc_width = @layer.header.width.to_i @doc_height = @layer.header.height.to_i end def apply! PSD.logger.debug "Applying mask to #{@layer.name}" # Now we apply the mask i = 0 @layer.mask.height.times do |y| @layer.mask.width.times do |x| doc_x = @layer.mask.left + x doc_y = @layer.mask.top + y layer_x = doc_x - @layer.left layer_y = doc_y - @layer.top color = ChunkyPNG::Color.to_truecolor_alpha_bytes(@canvas[layer_x, layer_y]) # We're off the document canvas. Crop. if doc_x < 0 || doc_x >= @doc_width || doc_y < 0 || doc_y > @doc_height color[3] = 0 else color[3] = color[3] * @mask_data[i] / 255 end @canvas[layer_x, layer_y] = ChunkyPNG::Color.rgba(*color) i += 1 end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
psd-2.1.1 | lib/psd/renderer/mask.rb |