'Appends an iTXt chunk.
:param key: latin-1 encodable text key name
:param value: value for this key
:param lang: language code
:param tkey: UTF-8 version of the key name
:param zip: compression flag'

def add_itxt(self, key, value, lang='', tkey='', zip=False):

    if (not isinstance(key, bytes)):
        key = key.encode('latin-1', 'strict')
    if (not isinstance(value, bytes)):
        value = value.encode('utf-8', 'strict')
    if (not isinstance(lang, bytes)):
        lang = lang.encode('utf-8', 'strict')
    if (not isinstance(tkey, bytes)):
        tkey = tkey.encode('utf-8', 'strict')
    if zip:
        self.add('iTXt', ((((((key + '\x00\x01\x00') + lang) + '\x00') + tkey) + '\x00') + zlib.compress(value)))
    else:
        self.add('iTXt', ((((((key + '\x00\x00\x00') + lang) + '\x00') + tkey) + '\x00') + value))
