Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hughsk/png-chunk-text
:scroll: Create or parse a PNG tEXt chunk for storing uncompressed text data in PNG images.
https://github.com/hughsk/png-chunk-text
Last synced: 12 days ago
JSON representation
:scroll: Create or parse a PNG tEXt chunk for storing uncompressed text data in PNG images.
- Host: GitHub
- URL: https://github.com/hughsk/png-chunk-text
- Owner: hughsk
- License: mit
- Created: 2015-10-04T14:16:27.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2015-10-04T14:16:52.000Z (about 9 years ago)
- Last Synced: 2024-10-17T16:39:15.952Z (22 days ago)
- Language: JavaScript
- Homepage:
- Size: 146 KB
- Stars: 33
- Watchers: 4
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# png-chunk-text
[![stable](http://badges.github.io/stability-badges/dist/stable.svg)](http://github.com/badges/stability-badges)
Create or parse a PNG tEXt chunk for storing uncompressed text data in PNG images.
Can be used in combination with [png-chunks-extract](https://github.com/hughsk/png-chunks-extract) and [png-chunks-encode](https://github.com/hughsk/png-chunks-encode) for adding and reading custom metadata in PNG images.
Works in Node, or in the browser using [browserify](http://browserify.org/).
## Usage
[![NPM](https://nodei.co/npm/png-chunk-text.png)](https://www.npmjs.com/package/png-chunk-text)
### `chunk = text.encode(key, value)`
Returns a chunk object containing the metadata for a given `key` and `value`:
``` javascript
{
name: 'tEXt',
data: Uint8Array([...])
}
`````` javascript
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:
``` javascript
{
keyword: 'hello',
text: 'world'
}
`````` javascript
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
* [png-chunks-extract](https://github.com/hughsk/png-chunks-extract)
* [png-chunks-encode](https://github.com/hughsk/png-chunks-encode)## License
MIT, see [LICENSE.md](http://github.com/hughsk/png-chunk-text/blob/master/LICENSE.md) for details.