%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict'; var hasSyncZlib = true; var zlib = require('zlib'); var inflateSync = require('./sync-inflate'); if (!zlib.deflateSync) { hasSyncZlib = false; } var SyncReader = require('./sync-reader'); var FilterSync = require('./filter-parse-sync'); var Parser = require('./parser'); var bitmapper = require('./bitmapper'); var formatNormaliser = require('./format-normaliser'); module.exports = function(buffer, options) { if (!hasSyncZlib) { throw new Error('To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0'); } var err; function handleError(_err_) { err = _err_; } var metaData; function handleMetaData(_metaData_) { metaData = _metaData_; } function handleTransColor(transColor) { metaData.transColor = transColor; } function handlePalette(palette) { metaData.palette = palette; } function handleSimpleTransparency() { metaData.alpha = true; } var gamma; function handleGamma(_gamma_) { gamma = _gamma_; } var inflateDataList = []; function handleInflateData(inflatedData) { inflateDataList.push(inflatedData); } var reader = new SyncReader(buffer); var parser = new Parser(options, { read: reader.read.bind(reader), error: handleError, metadata: handleMetaData, gamma: handleGamma, palette: handlePalette, transColor: handleTransColor, inflateData: handleInflateData, simpleTransparency: handleSimpleTransparency }); parser.start(); reader.process(); if (err) { throw err; } //join together the inflate datas var inflateData = Buffer.concat(inflateDataList); inflateDataList.length = 0; var inflatedData; if (metaData.interlace) { inflatedData = zlib.inflateSync(inflateData); } else { var rowSize = ((metaData.width * metaData.bpp * metaData.depth + 7) >> 3) + 1; var imageSize = rowSize * metaData.height; inflatedData = inflateSync(inflateData, { chunkSize: imageSize, maxLength: imageSize }); } inflateData = null; if (!inflatedData || !inflatedData.length) { throw new Error('bad png - invalid inflate data response'); } var unfilteredData = FilterSync.process(inflatedData, metaData); inflateData = null; var bitmapData = bitmapper.dataToBitMap(unfilteredData, metaData); unfilteredData = null; var normalisedBitmapData = formatNormaliser(bitmapData, metaData); metaData.data = normalisedBitmapData; metaData.gamma = gamma || 0; return metaData; };