psd 2.1.2 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.travis.yml +2 -0
- data/README.md +60 -20
- data/lib/psd/blend_mode.rb +46 -38
- data/lib/psd/channel_image.rb +11 -5
- data/lib/psd/color.rb +14 -5
- data/lib/psd/descriptor.rb +39 -16
- data/lib/psd/file.rb +9 -6
- data/lib/psd/header.rb +38 -33
- data/lib/psd/helpers.rb +2 -2
- data/lib/psd/image.rb +21 -16
- data/lib/psd/image_formats/layer_rle.rb +2 -2
- data/lib/psd/image_formats/rle.rb +4 -10
- data/lib/psd/image_modes/cmyk.rb +18 -5
- data/lib/psd/image_modes/greyscale.rb +6 -1
- data/lib/psd/image_modes/rgb.rb +17 -5
- data/lib/psd/layer/blend_modes.rb +15 -13
- data/lib/psd/layer/helpers.rb +8 -10
- data/lib/psd/layer/info/black_white.rb +33 -0
- data/lib/psd/{layer_info → layer/info}/blend_clipping_elements.rb +4 -2
- data/lib/psd/{layer_info → layer/info}/blend_interior_elements.rb +4 -2
- data/lib/psd/layer/info/brightness_contrast.rb +21 -0
- data/lib/psd/layer/info/channel_blending_restrictions.rb +27 -0
- data/lib/psd/layer/info/channel_mixer.rb +27 -0
- data/lib/psd/layer/info/color_balance.rb +23 -0
- data/lib/psd/layer/info/color_lookup.rb +14 -0
- data/lib/psd/layer/info/content_generator.rb +42 -0
- data/lib/psd/layer/info/curves.rb +78 -0
- data/lib/psd/layer/info/effects_layer.rb +174 -0
- data/lib/psd/layer/info/exposure.rb +20 -0
- data/lib/psd/{layer_info → layer/info}/fill_opacity.rb +4 -2
- data/lib/psd/layer/info/gradient_fill.rb +14 -0
- data/lib/psd/layer/info/gradient_map.rb +69 -0
- data/lib/psd/layer/info/hue_saturation.rb +41 -0
- data/lib/psd/layer/info/invert.rb +17 -0
- data/lib/psd/layer/info/knockout.rb +22 -0
- data/lib/psd/layer/info/layer_effects.rb +16 -0
- data/lib/psd/{layer_info → layer/info}/layer_group.rb +4 -2
- data/lib/psd/{layer_info → layer/info}/layer_id.rb +4 -2
- data/lib/psd/layer/info/layer_mask_as_global_mask.rb +16 -0
- data/lib/psd/{layer_info → layer/info}/layer_name_source.rb +4 -2
- data/lib/psd/{layer_info → layer/info}/layer_section_divider.rb +4 -2
- data/lib/psd/{layer_info → layer/info}/legacy_typetool.rb +6 -4
- data/lib/psd/layer/info/levels.rb +48 -0
- data/lib/psd/{layer_info → layer/info}/locked.rb +4 -2
- data/lib/psd/{layer_info → layer/info}/metadata_setting.rb +5 -3
- data/lib/psd/{layer_info → layer/info}/object_effects.rb +5 -5
- data/lib/psd/layer/info/pattern.rb +14 -0
- data/lib/psd/layer/info/pattern_fill.rb +15 -0
- data/lib/psd/layer/info/photo_filter.rb +44 -0
- data/lib/psd/{layer_info → layer/info}/placed_layer.rb +4 -2
- data/lib/psd/layer/info/posterize.rb +16 -0
- data/lib/psd/{layer_info → layer/info}/reference_point.rb +4 -2
- data/lib/psd/layer/info/selective_color.rb +32 -0
- data/lib/psd/layer/info/sheet_color.rb +36 -0
- data/lib/psd/layer/info/solid_color.rb +36 -0
- data/lib/psd/layer/info/threshold.rb +16 -0
- data/lib/psd/layer/info/transparency_shapes_layer.rb +16 -0
- data/lib/psd/{layer_info → layer/info}/typetool.rb +27 -13
- data/lib/psd/{layer_info → layer/info}/unicode_name.rb +4 -2
- data/lib/psd/{layer_info → layer/info}/vector_mask.rb +7 -5
- data/lib/psd/layer/info/vector_mask_as_global_mask.rb +16 -0
- data/lib/psd/layer/info/vector_origination.rb +14 -0
- data/lib/psd/{layer_info → layer/info}/vector_stroke.rb +4 -2
- data/lib/psd/{layer_info → layer/info}/vector_stroke_content.rb +4 -2
- data/lib/psd/layer/info/vibrance.rb +22 -0
- data/lib/psd/layer/info.rb +106 -19
- data/lib/psd/layer/position_and_channels.rb +2 -6
- data/lib/psd/layer.rb +13 -16
- data/lib/psd/layer_info.rb +0 -4
- data/lib/psd/layer_mask.rb +61 -50
- data/lib/psd/lazy_execute.rb +5 -1
- data/lib/psd/mask.rb +7 -1
- data/lib/psd/node.rb +142 -49
- data/lib/psd/nodes/ancestry.rb +7 -6
- data/lib/psd/nodes/build_preview.rb +4 -4
- data/lib/psd/nodes/group.rb +36 -0
- data/lib/psd/nodes/layer.rb +45 -0
- data/lib/psd/nodes/layer_comps.rb +93 -0
- data/lib/psd/nodes/locking.rb +36 -0
- data/lib/psd/nodes/root.rb +87 -0
- data/lib/psd/nodes/search.rb +8 -65
- data/lib/psd/path_record.rb +5 -70
- data/lib/psd/renderer/blender.rb +10 -5
- data/lib/psd/renderer/cairo_helpers.rb +46 -0
- data/lib/psd/renderer/canvas.rb +41 -20
- data/lib/psd/renderer/canvas_management.rb +2 -2
- data/lib/psd/renderer/clipping_mask.rb +5 -4
- data/lib/psd/renderer/compose.rb +59 -69
- data/lib/psd/renderer/layer_styles/color_overlay.rb +45 -27
- data/lib/psd/renderer/layer_styles.rb +15 -5
- data/lib/psd/renderer/mask.rb +26 -22
- data/lib/psd/renderer/mask_canvas.rb +12 -0
- data/lib/psd/renderer/vector_shape.rb +239 -0
- data/lib/psd/renderer.rb +18 -7
- data/lib/psd/resource_section.rb +13 -6
- data/lib/psd/resources/base.rb +33 -0
- data/lib/psd/resources/guides.rb +6 -4
- data/lib/psd/resources/layer_comps.rb +6 -4
- data/lib/psd/resources/resolution_info.rb +48 -0
- data/lib/psd/resources/saved_path.rb +19 -0
- data/lib/psd/resources/slices.rb +7 -5
- data/lib/psd/resources/work_path.rb +22 -0
- data/lib/psd/resources/xmp_metadata.rb +46 -0
- data/lib/psd/resources.rb +17 -21
- data/lib/psd/slice.rb +44 -0
- data/lib/psd/slices.rb +13 -0
- data/lib/psd/util.rb +4 -2
- data/lib/psd/version.rb +1 -1
- data/lib/psd.rb +31 -45
- data/psd.gemspec +2 -3
- data/spec/files/alignment_modes.psd +0 -0
- data/spec/files/blendmodes.psd +0 -0
- data/spec/files/example.psb +0 -0
- data/spec/hierarchy_spec.rb +5 -0
- data/spec/locked_spec.rb +8 -8
- data/spec/psb_parsing_spec.rb +57 -0
- data/spec/text_spec.rb +13 -1
- metadata +115 -75
- data/circle.yml +0 -6
- data/lib/psd/layer_info/vector_mask_2.rb +0 -10
- data/lib/psd/node_exporting.rb +0 -20
- data/lib/psd/node_group.rb +0 -86
- data/lib/psd/node_layer.rb +0 -81
- data/lib/psd/node_root.rb +0 -93
- data/lib/psd/nodes/has_children.rb +0 -13
- data/lib/psd/nodes/lock_to_origin.rb +0 -7
- data/lib/psd/nodes/parse_layers.rb +0 -18
- data/lib/psd/renderer/layer_styles/drop_shadow.rb +0 -75
- data/lib/psd/section.rb +0 -26
@@ -1,18 +0,0 @@
|
|
1
|
-
class PSD::Node
|
2
|
-
module ParseLayers
|
3
|
-
# Organizes the flat layer structure into tree nodes.
|
4
|
-
def parse_layers(layers)
|
5
|
-
@children = []
|
6
|
-
layers.each do |layer|
|
7
|
-
if layer.is_a?(Hash)
|
8
|
-
node = PSD::Node::Group.new(layer)
|
9
|
-
elsif layer.is_a?(PSD::Layer)
|
10
|
-
node = PSD::Node::Layer.new(layer)
|
11
|
-
end
|
12
|
-
|
13
|
-
node.parent = self
|
14
|
-
@children << node
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,75 +0,0 @@
|
|
1
|
-
class PSD
|
2
|
-
class LayerStyles
|
3
|
-
# Not ready yet.
|
4
|
-
class DropShadow
|
5
|
-
def self.should_apply?(data)
|
6
|
-
#data.has_key?('DrSh')
|
7
|
-
false
|
8
|
-
end
|
9
|
-
|
10
|
-
def initialize(styles)
|
11
|
-
end
|
12
|
-
|
13
|
-
def apply!
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
def apply_drop_shadow
|
19
|
-
|
20
|
-
end
|
21
|
-
|
22
|
-
def drop_shadow
|
23
|
-
data['DrSh']
|
24
|
-
end
|
25
|
-
|
26
|
-
def drop_shadow_blend_mode
|
27
|
-
drop_shadow['Md ']
|
28
|
-
end
|
29
|
-
|
30
|
-
def drop_shadow_opacity
|
31
|
-
drop_shadow['Opct'][:value]
|
32
|
-
end
|
33
|
-
|
34
|
-
def drop_shadow_light_angle
|
35
|
-
drop_shadow['lagl'][:value]
|
36
|
-
end
|
37
|
-
|
38
|
-
def drop_shadow_use_global_light?
|
39
|
-
drop_shadow['uglg']
|
40
|
-
end
|
41
|
-
|
42
|
-
def drop_shadow_distance
|
43
|
-
drop_shadow['Dstn'][:value]
|
44
|
-
end
|
45
|
-
|
46
|
-
def drop_shadow_spread
|
47
|
-
drop_shadow['Ckmt'][:value]
|
48
|
-
end
|
49
|
-
|
50
|
-
def drop_shadow_size
|
51
|
-
drop_shadow['blur'][:value]
|
52
|
-
end
|
53
|
-
|
54
|
-
def drop_shadow_noise
|
55
|
-
drop_shadow['Nose'][:value]
|
56
|
-
end
|
57
|
-
|
58
|
-
def drop_shadow_antialiased?
|
59
|
-
drop_shadow['AntA']
|
60
|
-
end
|
61
|
-
|
62
|
-
def drop_shadow_contour
|
63
|
-
drop_shadow['TrnS']['Nm ']
|
64
|
-
end
|
65
|
-
|
66
|
-
def drop_shadow_contour_curve
|
67
|
-
drop_shadow['TrnS']['Crv ']
|
68
|
-
end
|
69
|
-
|
70
|
-
def drop_shadow_knock_out?
|
71
|
-
drop_shadow['layerConceals']
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
data/lib/psd/section.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
class PSD
|
2
|
-
# Helper that lets us track the beginning and ending locations
|
3
|
-
# of each section. This is for debug and error catching purposes,
|
4
|
-
# primarily.
|
5
|
-
module Section
|
6
|
-
attr_reader :section_start, :section_end
|
7
|
-
|
8
|
-
def start_section(section=:all)
|
9
|
-
@section_start = {} unless @section_start
|
10
|
-
@section_start[section] = @file.tell
|
11
|
-
end
|
12
|
-
|
13
|
-
def end_section(section=:all)
|
14
|
-
@section_end = {} unless @section_end
|
15
|
-
@section_end[section] = @file.tell
|
16
|
-
end
|
17
|
-
|
18
|
-
def start_of_section(section=:all)
|
19
|
-
@section_start[section]
|
20
|
-
end
|
21
|
-
|
22
|
-
def end_of_section(section=:all)
|
23
|
-
@section_end[section]
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|