text: module.exports = encode
  
  function encode (keyword, content) {
    keyword = String(keyword)
    content = String(content)
  
    if (!/^[\x00-\xFF]+$/.test(keyword) || !/^[\x00-\xFF]+$/.test(content)) {
      throw new Error('Only Latin-1 characters are permitted in PNG tEXt chunks. You might want to consider base64 encoding and/or zEXt compression')
    }
  
    if (keyword.length >= 80) {
      throw new Error('Keyword "' + keyword + '" is longer than the 79-character limit imposed by the PNG specification')
    }
  
    var totalSize = keyword.length + content.length + 1
    var output = new Uint8Array(totalSize)
    var idx = 0
    var code
  
    for (var i = 0; i < keyword.length; i++) {
      if (!(code = keyword.charCodeAt(i))) {
        throw new Error('0x00 character is not permitted in tEXt keywords')
      }
  
      output[idx++] = code
    }
  
    output[idx++] = 0
  
    for (var j = 0; j < content.length; j++) {
      if (!(code = content.charCodeAt(j))) {
        throw new Error('0x00 character is not permitted in tEXt content')
      }
  
      output[idx++] = code
    }
  
    return {
      name: 'tEXt',
      data: output
    }
  }
  