diff --git a/lib/psd/nodes/root.coffee b/lib/psd/nodes/root.coffee index 92f7bd4..9d5c5e8 100644 --- a/lib/psd/nodes/root.coffee +++ b/lib/psd/nodes/root.coffee @@ -7,7 +7,7 @@ module.exports = class Root extends Node @layerForPsd: (psd) -> layer = {} layer[prop] = null for prop in Node.PROPERTIES - + layer.top = 0 layer.left = 0 layer.right = psd.header.width @@ -36,6 +36,7 @@ module.exports = class Root extends Node height: @height resources: layerComps: @psd.resources.resource('layerComps')?.export() or [] + resolutionInfo: @psd.resources.resource('resolutionInfo')?.export() or [] guides: [] slices: [] diff --git a/lib/psd/resource_section.coffee b/lib/psd/resource_section.coffee index fb9a5cb..d0c8085 100644 --- a/lib/psd/resource_section.coffee +++ b/lib/psd/resource_section.coffee @@ -4,6 +4,7 @@ module.exports = class ResourceSection RESOURCES = [ require('./resources/layer_comps.coffee') require('./resources/layer_links.coffee') + require('./resources/resolution_info.coffee') ] @factory: (resource) -> diff --git a/lib/psd/resources/resolution_info.coffee b/lib/psd/resources/resolution_info.coffee new file mode 100644 index 0000000..a05a719 --- /dev/null +++ b/lib/psd/resources/resolution_info.coffee @@ -0,0 +1,26 @@ +module.exports = class ResolutionInfo + id: 1005 + name: 'resolutionInfo' + + constructor: (@resource) -> + @file = @resource.file + + parse: -> + # 32-bit fixed-point number (16.16) + @h_res = @file.readUInt() / 65536 + @h_res_unit = @file.readUShort() + @width_unit = @file.readUShort() + + # 32-bit fixed-point number (16.16) + @v_res = @file.readUInt() / 65536 + @v_res_unit = @file.readUShort() + @height_unit = @file.readUShort() + + @resource.data = @ + + export: -> + data = {} + for key in ['h_res', 'h_res_unit', 'width_unit', 'v_res', 'v_res_unit', 'height_unit'] + data[key] = @[key] + + data \ No newline at end of file