1.0.0 • Published 10 years ago

png-chunk-text v1.0.0

Weekly downloads
3,091
License
MIT
Repository
github
Last release
10 years ago

png-chunk-text

stable

Create or parse a PNG tEXt chunk for storing uncompressed text data in PNG images.

Can be used in combination with png-chunks-extract and png-chunks-encode for adding and reading custom metadata in PNG images.

Works in Node, or in the browser using browserify.

Usage

NPM

chunk = text.encode(key, value)

Returns a chunk object containing the metadata for a given key and value:

{
  name: 'tEXt',
  data: Uint8Array([...])
}
const extract = require('png-chunks-extract')
const encode = require('png-chunks-encode')
const text = require('png-chunk-text')
const path = require('path')
const fs = require('fs')

const buffer = fs.readFileSync(path.join(__dirname, 'test.png'))
const chunks = extract(buffer)

// Add new chunks before the IEND chunk
chunks.splice(-1, 0, text.encode('hello', 'world'))
chunks.splice(-1, 0, text.encode('lorem', 'ipsum'))

fs.writeFileSync(
  path.join(__dirname, 'test-out.png'),
  new Buffer(encode(chunks))
)

data = text.decode(chunk)

Reads a Uint8Array or Node.js Buffer instance containing a tEXt PNG chunk's data and returns its keyword/text:

{
  keyword: 'hello',
  text: 'world'
}
const extract = require('png-chunks-extract')
const text = require('png-chunk-text')
const path = require('path')
const fs = require('fs')

const buffer = fs.readFileSync(path.join(__dirname, 'test-out.png'))
const chunks = extract(buffer)

const textChunks = chunks.filter(function (chunk) {
  return chunk.name === 'tEXt'
}).map(function (chunk) {
  return text.decode(chunk.data)
})

console.log(textChunks[0].keyword) // 'hello'
console.log(textChunks[0].text)    // 'world'
console.log(textChunks[1].keyword) // 'lorem'
console.log(textChunks[1].text)    // 'ipsum'

See Also

License

MIT, see LICENSE.md for details.

@infinitebrahmanuniverse/nolb-pnguangdaiexcalidraw-hp-test@everything-registry/sub-chunk-2450tavernaiteaching_component_dthumbnail-managerimages-metahello_excalhello_excalilinearpad-skmagical-canvaskoishi-plugin-chatluna-character-card@weiwenda/excalidraw@thenewvu/excalidraw@zsviczian/excalidraw@zhtecinc/excalidraw@atyrode/excalidraw@100mslive/hms-excalidraw@guangdai/excalidraw@edwardw483/excali@edwardw483/excalidraw@edwardw483/excaliwhitelist@alkemio/excalidrawstencila-convert@betternotion/excalidraw@chaitin_rivers/excalidrawtry_excalidraw_whiteboard@dwelle/excalidraw@kristiankostecky/excalidraw@mikugg/bot-utils@opentechiz/excalidrawmydraw2324prompt-extractorsahil_ccsahil_pkgsahil_ugpng-text-metasillytaverncharacter-card-parsercollabted-excalidrawd_teaching_componentdemotest_excalidemowork_excalidrawfriday_cc@tdtdev/excalidraweducatewhiteboard_pkgexcalidraw_inside_checkexcalidraw_karatexcalidraw_master_sahilexcalidraw_master_test1excalidraw_new_test_00excalidraw_npm100excalidraw_sigmathexcalidraw_test2excalidraw_vrandaexcalidraw_vranda_mamexcalidraw_white_test23excalidrawbasicexcalidraw-collaborationexcal_inside_checkexcali-customexcali-toolexcalidraw-customizationexcalidraw-gdexcalidraw-jbexcalidraw-local-collab-forkexcalidraw-ua5excalidraw-with-storageexcalidraw-zhexcalidraw0990excalidraw_app23excalidraw-custom@jim-squirrel/excalidraw@maposia/excalidraw@innei/excalidraw@elsci-io/excalidraw@fileverse-dev/excalidraw@notud/excalidraw@npclown/excalidraw@niren-ai/common@excalidraw/utils@excalidraw/excalidraw@evgsyro/excalidraw@hungnguyen157/excalidraw@oatkachenko/excalidraw
1.0.0

10 years ago