From 0530d3767a6bf58bc5d53e097aa9b4eae471b800 Mon Sep 17 00:00:00 2001 From: Pavel Linkesch Date: Tue, 13 Mar 2018 12:36:14 -0700 Subject: [PATCH] close #115 - add resolution info --- lib/psd/nodes/root.coffee | 3 ++- lib/psd/resource_section.coffee | 1 + lib/psd/resources/resolution_info.coffee | 26 ++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 lib/psd/resources/resolution_info.coffee 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