Your IP : 216.73.216.86


Current Path : /home/emeraadmin/public_html/4d695/
Upload File :
Current File : /home/emeraadmin/public_html/4d695/libtiff-devel.zip

PK沐\,��html/images/CMakeLists.txtnu�[���# CMake build for libtiff
#
# Copyright © 2015 Open Microscopy Environment / University of Dundee
# Written by Roger Leigh <rleigh@codelibre.net>
#
# Permission to use, copy, modify, distribute, and sell this software and
# its documentation for any purpose is hereby granted without fee, provided
# that (i) the above copyright notices and this permission notice appear in
# all copies of the software and related documentation, and (ii) the names of
# Sam Leffler and Silicon Graphics may not be used in any advertising or
# publicity relating to the software without the specific, prior written
# permission of Sam Leffler and Silicon Graphics.
#
# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
#
# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
# OF THIS SOFTWARE.

set(docfiles
  back.gif
  bali.jpg
  cat.gif
  cover.jpg
  cramps.gif
  dave.gif
  info.gif
  jello.jpg
  jim.gif
  note.gif
  oxford.gif
  quad.jpg
  ring.gif
  smallliz.jpg
  strike.gif
  warning.gif)

install(FILES ${docfiles}
        DESTINATION "${LIBTIFF_DOCDIR}/html/images")

extra_dist(${docfiles})
PK沐\�#Bw��html/images/back.gifnu�[���GIF87a�$Hm����$$$H$m$�$�$�$�$H$HHHmH�H�H�H�Hm$mHmmm�m�m�m�m�$�H�m�����ڑ���$�H�m�����ڶ���$�H�m����������$�H�m��������U$UHUmU�U�U�U�U$U$$UH$Um$U�$U�$U�$U�$UHU$HUHHUmHU�HU�HU�HU�HUmU$mUHmUmmU�mU�mU�mU�mU�U$�UH�Um�U��U��UڑU��U�U$�UH�Um�U��U��UڶU��U�U$�UH�Um�U��U��U��U��U�U$�UH�Um�U��U��U�U��U�$�H�m���������$�$$�H$�m$��$��$��$��$�H�$H�HH�mH��H��H��H��H�m�$m�Hm�mm��m��m��m��m���$��H��m��������ڑ������$��H��m��������ڶ����ڪ$ڪHڪmڪ�ڪ�ڪ�ڪ�ڪ��$��H��m��������������$�H�m���������$�$$�H$�m$��$��$��$��$�H�$H�HH�mH��H��H��H��H�m�$m�Hm�mm��m��m��m��m���$��H��m��������ڑ������$��H��m��������ڶ�����$�H�m�����������$��H��m�������������,���7� ����ת�Ç�#����V)�igk���)>�G�Ó�P�B�eK;���tH
"'�܉�a+ 71r����-���I��NRRN����b%�H�-T���P'C���HJT����CϲmKX"��H��$�n�$ujmH�* I��H�[6pJ2����Ij�G�d��tش�̞)a����d�=;�"Cj��֯]���* ;PK沐\m���(f(fhtml/images/bali.jpgnu�[������JFIF��C��C��k�"��	
���}!1AQa"q2���#B��R��$3br�	
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz������������������������������������������������������������������������	
���w!1AQaq"2�B����	#3R�br�
$4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�����������������������������������������������������������������������?��o<[w,�ۮ�f�[�\�;����y�iKu$OmRi�Vh����.w��6�/&�2��<�e�eK�&���=�[έn���2ܸ� ���noˍ�șH�a圸K�?&t15���F�3h�Rh�#Ba�ȶ�����FaDv�Ku���	�m��I�d�#e�ca�
A��<:�P��a?s�r��N��(�)5�N�8ƫ������kRR�n�55gF1sU#O��H?g'B�JJ�qt���=�V�'k��g��䷼�dA��#X��/?}��62.^���M˧��6�Mq$j�����<�d*�1,P
���I4"�ìA���E�n�h�W�_�O��?��.u����~֧�5o���J���|Y6��1�f�>��_}�����-�5o�p����6~>
�b�ۻ�/����=�OX�h���;����xb+mW��C�
�k�w5��|s�j��>Xu-SG��7������xOV����ß��9pK�S�LD�qXj���mEa���*`�q��%Y��R��xx,}Ƽ�R���S�R�,d1G�W�^�πp�qF_O���O�uጎe<��t~�*��Tú��'.�
��!��S�,&36/�����y���!]�I���&���72�~\r�%[ʘ��y<��MkMB�D��=ì�C�ڱ��G*OR���2M��J�����Ue��i��O~�_�i�^=��ĝvmc�_|mg{u&�qw`��N����4i�Y�o�v���h�n�gm,S��>��j�WZ���B?X4�Q�e�E$R0����X�����*$%%�Qˋ�2���fx%�2��-��f�zX�<q�h���[\��ؘBpp�)�*Ú�5,�'�\'��L�7���T�eϨ�A�xy�IIO	*���8:n�?}Bt�T�/MmK��2��,nPʡ�4L�fvF�Q�����GW��c��ӥ����˻Ί"��Uʈ
	
*H󺺼���R?�-��_�?�K�;��k�Sៀ/|i��i�5�p�5k�}+G��j�1_xV����M�6������to�>	�#��
��?�P/��o��Þ8�m�*������φ��'��Sxv�G�Ŭ���i7��M[S�-��`��ź��|g�_jv7~��^!�o���K)��.���f8���9T��t!B�g��c�P�"�':����	G��jcU
�]baV��'�_�s����'+���;.�Y}yW�chdX�{�g��jP������50���G+�'��8yA�p��-���r�YU���v�IK�P�	$K����?m�����_x��1�z���V^��p�W�4���I3.�d\,�A}�#[����g�G�*���i_���|3'�~��_ƾ�4�v�YO[k���&���=>�\�֥
�a6:���Oq$�+/����_~8~��0����Lj�F�G��S���K�t�cP�4o
O�5�>�ٮ^G����VzN����2Z�r�jɦ���[���n*_Z��Β��~��f��G���Q�
EΚ��aRR������F��xY�y�.e�a�*T�Y,j����?W�&������z�+�<�mA��r�jQ���|3����ݴ�#�ZV�ue$pj�m��m5��y,1^Ge{3�a�hζ������YeoPp������#gp7�,6K�����p���=����*7������^���xS�=��7>'�K
kJ�_G���:]j�^�]���A~.a�R0KiΉ�YB���o�Y��
�L��=cM�G�7��4�x]���uNm�?��=m��/.%��9�l�~u����ŚG�?G����9.7����'^x|
y�̈́�&�,&"�*�a�c��s�����>z������6|ę�E��j�'�J�.�*i}_
��5d�7�J��I��F��.�����P�nI.��3a�$H��Q���fF����r�n�$��ގ����<�f m�UY������/��5{}E��N�S6���,5++�ү4�Uo4���K�j�2�Y��O���-��#���d�$���B��̂f���}���K�h� ��C�/f(������̪S�.�gNjp���q�y���Smk$ݑ��L�Jt�{��wM4�QOU�{.n]'�D�K�s�*�T�Y�	�@պC,�M��2mP�ގ�:�ۼ��o,�+�
3�\1�\��Ǽ�1@�7���J��?�sx7@��i��x�ǚ\�!���]O^��mw%�ƻsgs�ߵ����
?I���j7�;�kot�%~̟�pW�#�Y�n���SV��s}����j�)�g�����źv�7����5�7�N[+�i�^֎�k�jZO�M1���ڬ]\�"�,ljf�})�	c(_�̫��hՊ�)���x��TZ��G�:WG�G�s�T2��|�0�3l6k���3�<~$�U�fu0��֖���8^UiҨ�)Mr��2�f�!�4�9Q��TD~\3���e�Z(f�0�X�Ay
K��T��\G4R=�B�UX@� �:}�Y[! 3�!��!���{xGu����ǜ��8�mgsi;,��o�-�
,���%�3��F�s?�Η_��	��O*8fYcy���G����}�$dV0��(`��h�q^��K��m�Y�9�r��z���5���|o�I��?y�N1qmN��,cʛ��$ۏ���W�ݺ׵(V�'M����Y��MGq���f� A����6���2���N���ɔ]o�W*l�`��<l�d	QD�*�^�%���F+���uڑ����rH�b7V���ۗh����*����j�ι���b$Dld��@�"'�.��������[ynM����	F�qvq������������FO��JVJ1庫���0����ԥNv�:�r�b��)8�qr��J�9��d�x6;)�u��I$�[i�����Iᅢh��X�Lq\�ah����+_��y�&��z����.��o�W�.��'��,�_S�ޛ�-cQ��_&��h:�<p��.���C��k�kr���Guq7��ÿ�/��	���_@��u'��ԒFM�g�ɚ�]$�W���[����Id.0m��u'��[�j�㕗����r�#[🍼m�$�m<��|}�=JK_i��tm��l�n��}oH��ib���k�
h�������#��8{3��̢倫Y^/+X�,=\d�*�zѯ��/�j�}����t����Y�T3N)�(�UY`�Y�သ3����Ɲzx<���<T#)�R�:j�'���(ҩ���|q�A|Tӭ ִ���h��狼].�ma�|�[jϨ��h��^�"�5xm �L��t6���H���g�Ǐ�~�u�\�w�v^ �𦗩�7U񦅣�Z׆�|g+�U�uK�SA�Z=&�F���m-��&B�v��{�+L�����������_���k~"��۽{S�WÏ����������x[A���㞣�
��[��(ⶕ���@Ҽo��]�C�:V��/��l��	�����O\A�x������h��2h�Z.��䶗�=׊<U�lu�[�����k�&7�|4��x;D�����|;� ��4�
�����ͩ�0�KFh��V�i��+S�2���<.9�ϚU*Ԫ�S�A�w��i[����qvSY��J�
��2���R�9��S�(����A���!N�ο`�h� ���g�W�֑$�-�g��/������.��v^����#�ܯ�7�^3*ͧ�F�(�+����?ioًI�
�����o㏅�*��O�Z��յ�;Y<;�M�#Z�4��<.��|Gs�_�d�>�,�φ&�u�:�G�i����F�UԿc}Y���Ox���<I{���Ò�Ũ�^�ԡ�N��֕�_�6Z'�/�H�[�K}R:SZ�isZ�iu{��~����ǎu|*����J��t��~-��[x������/�t]~(tl4]O��/:Ԡ�j��j)�4��Ӽ�"��b�xC���\a���fc�d��=E��2�5igti��b�7�.��O����C���
�e�E�e�mO��&�g�lsN'�a��z8����&���e9P�;��&�%AףN5hR�S����~K�������?�<���<Ywh����h����k{mI�:=����?�V��-xZOof���Q�������m[B����_x���t���z��]��0�ھ��%ݷ��,`�t�^�gq��v-u
3H��T2��è�Zi��?��-A�������>��?f�z���=m|
�]OT׵)��5/�to�]��q���k��6���1�W���;m�]��'�G���V��wᵟ�⿉:D_~k�p���^�~"xz�Jե��Y�f���-$���MZ�Ķ���<i{g�i<M`�P��ω|�<��q;�C7�ӫ��Vkbq��;,�,E
��i֕<4 �.nJ��}GV	�np��x\kxlu*x,��U�XR�WS&�c��n��s�˱0�*8��ԩ�
��OB�q/�J�������v�2𿃥�ӵ�W\�I�ivַ��G�>kN��GP־�wq�G4sA��VH�"�lKow`��7��~
�|5��.�'���_���M3�>����c��ik�MŔw�^���J�L��m:�T�X5�Fno�I�-����_��
�O�y�M��?�|L�f���7�[N�?ßi2x#ᝧ�]�xW�>=��lu�iڟ�mk�
��C�4k��t�*��?�z=�k��-�<s��>��_����ƾ=�úN���Yx�_�Y��|�x6�>'{H$�M��Ƌ��򥍞�c`����a��^4�(��XDž�������0YDp9�{����<&O2�������0��2��K
X|��>��w�؊��05��kO����i��c0y&+0��e���8,F
�UJ���T�*�U(`3Ol|�}��Ŀ<�s�#�/Y��M��Zv��֭���;k彾��ܶ>t�\�*j� ��w�COKMS۾j�~����jK�|P����^�e�E������oO���l
]]A�
�F�ʤ+Z���r迲G�O�[�W��
�PԾ$|��uu���/��?|;�o�_�^!׮Z&�5�ߌ�]B�c��$�E��|5y
��e��usgq�~d��㟃�#��xGÚ�ڦ���C��}�6���������Z�ӮoZ���}P��۪Z���:��0ԙnd�z���̵b3<Wש�Ī5=�rl�3�U���h��0��qX�^5!�˧GJ�q�b)�洲�>&q?�#���qfO�ʥB��y�q�`g��q�e<}*8Z��l=,��"��)�i�ewI,Ez���'g��'�o�/�<���#��!����+�V������{��_�4�׺���Xi6w���ς�5�y�֛�z7���ss��g���F|i���?|u����Y�Ma�K��o��xM�;�?<#�x��I:��y
�ڌ:+XGx�󽍝�>l��2��w�~$|/���|%�o6��1���OxRgK�5�+I�Y�|D���]�Ri�߃�nuOA�	6-k6:��^�<z�������o�w~�Zߍ�c�x�I���C�^�?��j��oo�����s��+ku��t�{��n^�_1�5��>$�
ޗyk}s�/ѻ7ϱy/eY�j��6�f�5LT�S5��U��MVs�z4�O	���g͌�1N�f�ƥ_�>�Y'�9��&�0��Qxy�<C��*4��b��Q��VU1�j������*a����������5���ů��;�|J�5;_�6W��~iK��K��U�ԭ�9��<���v%�.�-���	�ã�����g�F�m<q��R�m�i���ׯu�Dkh���{�Ɵ��l�tW�o��Uk�L\Es�H[�o�p������o���g���~1��o��t�Wޡ�蚆��x��A�C���}_���լ`�l4�ont}
����'�/ƽ[�~"Ѽc��g��i�����n��-v���{�J����qu�]���{n������r˨Y�/��\-��R��.,7�Î���U§&a^9�j�Y�	^εZ�(G�'
�P�x׌��?L�q��0�~�`����t���Ϣ�4pu�O:ppT0��X:�r���b��}N?�Ek��w�&��[�ws"[�2N�=�0���󥵕���!�-v�wj��|��k��>Ck�v�Ь@	�Đ]G
���ynL�M�I>cT�O�_��šG���I�Ү<]��.�y����}��_�V�9�-t�V�L�4���F�[�2�;��l�1guwoqy7���J�z�|��n>"h�M��~2���P��=Yt�'�WW��`��W�e�_A���{{�F�C�}A�ͯ�]�j��[��fO��3��
�a���a�*��#��^.�Y�b�|=l<��X��F�7҅*��q��dY�1�a�^�<[���a�px�ʭ�s�b*Д�B�ҫ��,$�֔�yӥ����O�;�+�Y���>�C��V�u�����f�\�L��I���Xy^�t:dr����*A
7�
���~�<gg�7�υ���O�<Q�k�G��_s��������Zb�����'����K)�����?h���?��x������(�~(]��C��-h�
�qk�%ާk��=��Qa�[[%�r�@�z�:[��j*�W3�>h��;j�k\�<�=�F��jz�|3u���i�N�d�ږ�	�5D>�������a�m��6wO���s��e8:j�+���=<672�f�O�_	��l�-�ܸjy�����1���0��NGW�\�����p�[W�qVgz<3��3��AN�w�����R3��V�pPU������������4m'O�<+�%�Ήoi#��=�ɿ����K����W�>�i+K��5̃H����~����&����1���C:����
CVbjRAqg��),��vD�����u�m�ޥa�|!��g����~��ص�A�^�K�_Hլ�,4���>��_��զ�>�7�����tmEl�� �8�H�|�2|B��w�j�0�cck��F�oqk5ծ��c��}��w7�SH�u�;��22�����^�?�ǀcV�e#�έ\U=l&V&X�]X/d�Ш�M�5VT�Q���Y���*�}��kp��P�Ҏ	����fX����88T��*X�pK^p�X�QR�cFt�C�T*L�-��w�_�<Q�}.���X��msV�M/ZCqi�kVz}��a���6�<�g�����i3�q�]Mc!���O|1�W�X>-�'�/�~%��&�i��h��!��5-6[�.M�L�@E�.���ź���G'S�e{/�ه��,</c��:?�4!y��Mp%ӼI�]_�2��M1�(�u⽱�<�d�a�Y~��o�X�/�=�����}g�^�l>&���ך����%���Q���t;!�ZK��s��=���ŗF�%�R~K[2�o�4��A���
*����[:�t2�5(Tͪ9?a
�F�JnU!��sS���NeXZ�8G(�;�)c�ui���0�g�|m)���T���z�3F�R�7_�ԫR�%S�[����k��.xc��3�>|$�]��.��
�/�<�i6��ᆭ�MKþ
���;
�Y����u��jF����*��#����3����+m_�K����u�{�^�X�o�x�)lm�K�mD�H�������_B�p\�m|R����!Ӭ�����{[[i���֐Z\jW7��nk9�=B͙/㵺i��)H�9�?���C����94�7��4����ė�2��M�E6���P[�%Ɣ���Ŕ:���O$�Qņ�c�}o��rl41�9(�R�J8(,Dq50��q�*8�Xh*UhWu1r�U��q2�HO��
����!��rn1����i����ѥS��V����7�U�Z�.�)NU'u
�u�^T��?�7��]���6cM6�4v���Hg���RI3�>�,5O��K��m.�<�-����φ�0|��u�i:"��J�E�l�/�/��4�#V��:�^�����sP���-��{=:8g�%�"���~.�5�Z|��׮o��b�V�C�t���U��s=�s`�b�\�;�n�i�Mk������_���S�>�׊t���h�E����o�4�ԑ,t�.��3¬m"���1H����_�~S��3����EL,*�T�*��b���F���F��3R��0���	ҩ�(r�*b���S��é��ʞ?�I�)C�`+f3�J�,���"�.�)Q�UCZ8�^*i�p���S/�#�>#��M�M�O
X|7��,����[�~���ū�K����6�o�{��8�u�,����i
!<�5�D�Q�B�o���y
��lm��}N)dyf�/����V&k$2$���Gw�ާ�X�|�6s��j:����%��yy}�{��\�v�L�5�յ�0\E%�8��Zc��E�H�-;X�4M%/u�W�w�"�Ӎ����ǯ\����kdH�1�+K�?L��	��R})&����Bo���|�S�4p��ҭNs�__	ˊ���a�
����X�^��G�ѶTܪ{j��!�'��đ�f��F�&��V�/�����q��9�|��!V�"�,,��盌(�ӥG��sW�'����<I���^о��mS����[��ti��au7���6��:C���崾��D�S���1��;��
2�ƺ����}�+-GQ�R�u�kx��-D��d�m�K�.�C��[�[ʖ���%��P��x�/��I����Oto�n���9,�1���	.a�,-uX�i��e�?��?��9g�k���'��Awc5ij_�kaw�m���As<Ok���5ē\�.tX&��Q�N-qjާ��%�Q��Ʊ���L�Z���`])VJ�+	��byiJ�I�i�t�l�ԫV����usN2���}����T!��pXFa��ʱ���u�b����G��Z����^�T�F^�a�}U��Y�_�e�|?�<y�k��H��
x�[x�_h�&�k���լ/.�7���.��߷���ӭ$��h�j�ks�~��[_�?��ދ�)|P�o��KXѼ;`�>�<Wv�ҭ<G�A�
����eԵ��bқ�F+�I]/D��/��}KP�{���Y�x��~6׵_���=N�[T�R�[Ox�=3æ�;i$�����L��G��I,ͧ�x]"��?ٳN�Y�	��үt눭.��q"$��Z[^Z��X�h�m��K��Q4o%��[���\�T1yc�<E[+U��%,�*��<-|$_�����x�V!�[��2T�%����Kٯs:��0����dX�4�\Ɔe���c��م,jO	J�<��Ab���Ӷ>n�G�x������<�_��5�s�?��7�߇sk�#дۉ`��xg[��ֻ�ڵܺ���n,-�M�H�oa�x3_�ƭ��c���ӽ�7zF��-OE�Ԭ4Bז����/��+H���H�)�E�-����R3
ϰ:�}�O
|!�Οg��&�2x���b�6��YY%����.#�zd�ش��ç\��u#jV��w�m�F��|�k�_�mn-|#�^�մ�Bi�Ik��s��b�2�Iltk�$�fho��a0�b��	���q��ZX<VI�R��,]z�U�ƌ~��B)a�S���ܹ��hE%G�q^����8����%����j1�ʍy�+%yW�%�+ԫ��_*���aq�*�������A������� ���4�3L���t�"H�{�VRKj�$7p��X�b��>�:���D�P�<L�>��Ɩ�ėZ����Y�s$�w�����kkv.��{=�M$���-���[�k��_^�6�����W�N-����o ���o�d�Z����ۙ�/}x�
����d�t���f=cV�s��D�R��-�΍o5̓G�6�t��5��V��і��WH�`w6Ms��sn�项����J�l=Z�����U�P��Zx�4��w*�c�cjG�R�*����W\��\��3,�>̱y�<5LFK
��R�W/�V�8j2��hS��%��*��…J^�4%���o��|���SA����MN�L�����3^-���Ý2��J�o%�g�ҢmG�V�[
���U����:�ς���v�*�|=��3Om5�׼1�Ͼ7��t�Ȯ'�
�ޛ��\Cs�����n�!�nT~a~԰�?
>/�7_ҭ^	i1D,�m�?jq�w:G��{��΢�Z��鋢;ܝ.�x|�D�|5�O�}���?~/X�M�_Zh��,4g��o?��nt�uk�,��z�����Mӄ��דH��I �pX����\fx̾�<�U�q?ٸ��b��\-L<iU��l;��z��B���:4�QU�n6�_��09V*<~'*фp+2��gJ��<U��
|�hR�P�c*~�tk�le*Q�A��h?���|C��w�N����ջ�\�[Y�s����I�m���q%��iu'X��a�Lڄ��Me/M���u�ľ�m���@���[]OSԴ;��X��o
�D�
Q���e�0�Z��c���P�u�t�h.�
��S^�!�M��-�]�-oY��n�w�ա�5�mĿm��E��zF�aq%��t�%WYmn��\�V�ޜ�������C�|*������~<�4��R��y�|
�Q��m������Z��/��֕����}�隌�%��>����x�Hv�WL���7�������5�R����+է�tү|L�iV��J��b2��x<L�bb��y�ԥ��I�
U�<p�9�R�O�d�Z3�b(¥L�����JM:�\e<uJ4�5q|md���ޗ�Ú��[^�Z����z��T��,|�j:N��˧%����VW�c�x��R���{he�D~#�,�*	.uk��~�~i��%ߎ���q����b��v��?�u�e4�-�Skᛍ�F�f���v��O�GӥӼ%���\]��^��U�j�9�������ζ�j�V���:F��մoM=�S��/��'��|S��5��Vm#���wĺ&�m���M��Q��N�m�1|u�<!k�~�?>�~� I<���ZN���u_��֞�����'�q-~i֓|�^��~����V�<g��O��X�N�s�d51SYuHR�.�#���(�V�[��#��+Zmb#O�S��G��N�W^�������8���R�0����q�`0|V�8`�ؕS+�������P��l
mJ�S�`�7S
?�>#�?����|G������S�xIV�W��R����Y�ܵ�ݖ�l�rG���F���cW�����߁��xlx��	��^#�a�7O{y��`�X�Ev��}asi5��
`�d�6w2ʓ-����x�W�v���_����⎭��-����~��9�^-���]i]����x�U��S��4�u-;Q��tK�V��_i���s�^����o��i����=ޙw:Pգ�}U������:u��ime���1��ZI�}�i5���-��]_��7�YÏ����9O
�>&Yl2�YS�ЫBXjΕZX�U����^���kK���J��'�2LvM��M&{��8�Tsh�XL^��x��,�\|����hMVTppU���]�<)g�>?�X�y��ե���<��,��b������A�N��Si��[��1tY�M\{��7]�^|�=��u���	�~"\�V�rx+R�7�O|N�P������������G�xSQV�}������
_R�����@�I��ִ�0�s�#L�~*]&�syg��\F�ڞ��amsd�wn��$���.�mra��5{H����b��q�S���WK�V�+�Zi�dV�m��.�u������3���
ŵ̒��ε����������5C�����a�1y%*8:t�5�C����Z�
�{��͆�;¦9ʪ���8�X:\E��_����f���Ү',�
��W˰����kF	T�?m
�m֥��j�x\�h���;�J�R��|/��ji���a
^iv����#�:����Q[�V��K2����
:��|��o�.�q��j��k-B�Z�>���nZ
GQԮ�U���,�K�"�����g�綍`с>��~	��𵾇�_i�Ko���_�jJ��:e杩Z��O{�5�6GO��tӧhQ�z�OK��WGf��\�l�5k$g�%��YR�+�����h K��d��[������@��lH����_o�8����x��T��7Vx�N🵒�N�wB�aF�,iT�5R�4�:3���q�c�%��cjf\+,}zXZv0�eV2u*�q��Z�Z�(םzQs�:T#5Hb(�����~�&���ams�Sok���[��K�!l#����uݫ�Kwg���^Njڏ���mJ݆�З3Mmkh��q>�M��d��<3�,�%�rF"�䯴�N���������)�+q������
[�e��$�q��q�+"7��*'�����Ldfu_%�ΎW���W���q�T�=��'*�N�N.��+|��=��S�W�py�a�ThB�5)өS��=YFt�ʤ%��s�}���C����ṵ��*�n�I���X|agi6�����[�S�~��~��h��º��V��{�L�<�j��e������|us�Oڛ�)���ǎ����E��mm�I�t�/;�#�W:-���w���h<�:K�o��5~|K�-|"��u�_l�@ӯ���~�JC�\ˮ���K�h�0E$�]�j��!�)��D�����cRѼ!��Z��mc�V�o
M�.�wr�^j�N�������W�=N�S�nn,�&�%��H�MV�~���+�8-\�QC%N�,-|�2�����UOh�9n��Y*7�z8KʦV�o1��S�R�6��0t!��J��u�}W7�~���3Bx�vR�N)I֌h���7�#���m���o�m��:e��\y�N�������ӵ�I�I��Ȅ�G�|Q��x�{Xe�P�9���M	l�]wD��L����5U/��������R"(�4k?����Q�u�ir(��%{���(�I�(X�e&�{Ty�o��;�jaH�N����o�x����O�uK��'U�R������j�Y<�S^X�Ӆ�����TE�+{��R��k�}�4:�b+UXl6���iT�b�9թS�F%��*S��4h�IV��h�E_�2L^�-��*�9�7�����5��¾�,=^j�jP��\?5G	)�V��$�œ>��e����Z���q���C�\ͨ[d�_�V�t�y��g����]]$�12�Z]��n����?�JmU���ᯇ��uX�ψI�8��+8o�)|I�m7헑�y|������@���}��Y�[kk-Z�~�x;L�>'�<��g����Z����Z��iQ'�Y�3�0�g�̰��Z\\]�}��d���'S����I�$��z���!�Ij��c��QҼ?�M%��t�Z~��oG��t�
�j�G��6�����3��_Z����xo0�g�C����By7����p؜,F75�����N������Λ�.�xr�qS�?�������Qң���
S)���x<v1Tue%*�V&.U0�e[[������
�i�A�Hi-��-���6z���RU�I���MZK��[�-�e�kyL�a
�r�Mo$K}yf�}���A��W��_�a�E�G����� �k���Oi�eݽ��~n�k
߈m�n#����N��GF�#���
g���� �+�o�k��2.��ٵ��*�i̯sz�VӒ�+���e�}�O�n#�+;��_�'�m��8�=��߇z|����fе���wzU���i��6�y�XΆ�P���R���*�<�(���/�	�ࡒe�I��q&uW�<L��T�x\���GC��<��Z��*��ԩ
�����p�M��s����ʩ哯IT�ʆ+�x�m(N�T�F��6��ps�QT�[���~%�
��m�����x�?���l�|��>;���u�x��n~ _O������&��[O	F&���Ҵ
Z����kZ���5�ß>x�?	�.j?�Ey�h�_'��g�7�>/�:��޵/�K��+�1�Ʒ�C�%𢶣��k�#�[Au���~�v������wҭ�O���X꺅�����x��>/���J�,b-_Y�!����C��n����n�	��?f?��gMTi�!�|�]_P��=펫�Ɵ��m�އ>�~t�Km#�i�a�Xj�#��+��
�t�a�@���)��p�s�Q�8k4��գ���vg�����
UW�G
���gu�a�Q�Q�Zj���2�sK��r���a2~-�e9���Y�Xf2�x�r�n[KW�:�O����2�V�*�0�W�F����B��9��2Ѽw�C����3��jz���x�g������z=�OG�|)�q�x�ė�"��|m�x�Y�6��[B��J����|y��j��>���� �7�.����Go�k0���T�����D���7�d����_D��宵ok�]�zu��`�}����ɚ֝�o�CWо�:�n`g֬�o�x����KT�ơ��~�-D��������@�}N&�����(��Oh^�4���U��"7�d�#T���X5��}.�Q,�$�-�u���D<o����m��ӡ[-gD��q�s��sLva����|�7S��e*yb����^��Ua�˲ՉU�y噫��U̱��s���”2�*�r5)C(���^�<nV�A�F�6�:���~���IU��p9�_��e�+�
?h
ᧇo]��������z�[h:��h��Ư�ė�
��4��-BͮJ���6�77��hڍ�O����|��u�'��|w�w�zV���|>ӼQt��Z�}�iV��:pӴ)��Ӯ�<��^�����i���
�{�į�>�o?����v��ks������M���Xx��uǿ�5;�}Z/M��Au�$Cv� ��H���̳�ߏ�
�(h?�u���x��'��
��5���ď���K�'�c���Ҭ��̺��Ί��tye��T�=E��	��neÜ;��0J��pn�\���U������|�֝<��~��b�⧍�
1���O��'�p��OżS,�`��m*x|6�����lN�(��(�+Q��
�t��|-Z�1�B����v��Gĺ��<QZ|p�ˣ�V3�"Ykztx�3�^5(��.�
e�/o�dP�ϋ�,�G�X���5}2���?��^ç_��o$�A�Z�i��7�l��w�Z��kA}�����x~��mu��Osh4}Z�I�7ԖKX��4۴��uMX^���K�K��i:tv�F�H>��|7{~!������[i����Dn�?dcs
��uk<������-�����Z�:�����)e�S�b�L�.�#.�_G�W�J�ʥ�`���U�j����8�W����S�:��
q�*�/��J�3�G����h��Q���GIO��t�S�B��Z�yЧ5]ʜxs/nԼyg��^A�Z\�Z��N�|���!�2^i�P����]B-�d�6�d���f�G�К��g�����x�[��-��j��p_h��-���Ks�mekuu戁XuIl�K���f��{�	��^k�f�7�~m���7z��$B�X�}��5�����ˤ��B�R��K���s���.�Ꮗ�E��t�3�i#\�}�ú�ڵ�[Y��L��,�Ms,�~�=B��LMR�g�4�ּ���(��[��g�s5J.�IT��U*Pt!T+֡:���牞-V�+��Ө������'�q7&24q
��y��J����)�a(R��ӭ�K	8��T�Rr�����Ɠ�O�|�Kimyk���
<�m[J��;[��خ����~1��K}1u���m������Y=�$�/�d�����
¤�o��33+ڬ��k�b�h�I��G�+��+�)���ि�Ļsy�~�4��[gO�tߎߴ7�G��h^w��85�WU}f)u;I4�xa���K�,�����[u�xj�H�MJ��R
���K5�����9f{+KI�d�������RO��p�#����Z��')˳,��[����ᣊ���a':��S�*�U#)��U�Z��\u���3��+a�W4X��N�J�7�EE8���֮���R�:J4RT�?��Z|�<����M��#x�����6��[P��
T/�l&���\�O}���hSZ\�����9�mt���_�*W�/~�����=X���x�v�q���h7S˥����|+k�?�]��]�]_�����0|Q�θ���,,ƒ�[\i��߳��
����
g��P����t���"�|Q-ƣ��GŸ��/�{(uk]Mt�ƱɦM��h~�
Ѿ�/Z�1~���8�o���:�UH�m�w�W�t]2��(�5
zK��p	����4�ݼv�Vw�x�׭�����#:y�q�ͱt��W��x/k�������W�9)�9�a�ԫ�q��Z�f;��;C��-���}W
F8L%9G��Eҩ>zs�צ���*xxsҌ�/�n�g�kz���s%����"y� ���5��E�h���+G%���1<�D��؟�NkO�C�:��/g��-�[���h-�g�ӯ%���{�b���[��^l1��k<�$1�w���w6��ZU���	��]���,��2b@F$��#��́5�������5�_|T�r�~mw�Zƛ�x;]ӿ���l�t�3ځ8Ԣ��֑=Օ���O����q�-���	C�0�T�
XY�b!��}ead�ҩUFq�͉t�Jv�pSNQ_�\<;��i�uq�L�,�X��^f�:���p�J8yҌ&�Rq�o�ʊ�RT!)C�<������j����m,�%�֞]P��m����?�}��`���&��YEq����Q��)�6����!��"ǃ��[՚���?��K�_$��@����ZL7)q5�n����Ӯ�5
N9/t�4�k��������5o����쟣h�_�<c�_��Z����Җ���j�[i�s��h��m^�Y�
]�wo��bk�-��ۿg_�n�|�y�?ڭ���t�
i���7������{X�5�OK����]^[�3H�Z]�x��Rc
�ia��C����T�ҧ����:�#W�d�=��:�0��eK�~�QA�KUR��}���M�����ax{*�R�*�f�"���+�18�ʾ�	ԝ<N"����%R��?�O�k�/�>$�x���b�_�Ğ�ޥ����:]鯨X�cH�-��h��޵�	c�a��R���[���4����F��?f�s��m���%6��
&9�M���J[m��Auoe�y,����1I�X�9f�F�?m-<O�w�������%�ϋ~7��g�ѵ����W��oo��_�w����Vmk���N8�V��)=��0]߰���F���M��~"��ᗊ�g�X�i~��FП�Ƒ�}g����
ƛ��O�ۼ��y�x>'�VڍΣ?ۼ`ɥ�:W�q���Lrܛ�ܿ"�18~!��3>[[3�C��2�+�_�RXHc:jO?~�l,��8��<�	_�դ�9�?x	�u�\��bi�����ju�yW��t�U�BU(�5�n���wּ}�߇Z�����׊t߇��hs�i��^�k���� ������zo����5OS�G�J��%��w���w�:��t�X�x���_����j�7�N��뚗�/.�/�xWL{]=4ۭvm;C�զ�6-
���x�\�F�o�1���K
"����Z�����^"�&�����h7kԡ�|E�
sG�Y{��2,R�k�7w�5����cF����]���W�0���ZƳ�i��o�k���,uI-tK'�O�'���a�K�[����Ӡ��R��"�|�ʦ�r�>	_��#7�W�SS���E��T+�e�U�7�����ck�ZXiIH�2�Gq�u��~�����)ҥ��8�ׯ�b',^#J���px:4��eW
Nx�����/�7�����G�K��ׇ~j�7�����N�`�-��zŧ�<H��-��͟�,㶆=J��O���=V��=3�����'���R�P��z���ti���n��F���׋�h=s^�m<K�ź��4??���9M�Ѡ�W�|0�>����CG�����e�꿳���,�K}Xt	Lt����iw6�_�G�
6��;�omm������V�z��/ow�+�_��>"�x���w�~ .��Ko��Ԭ�M��}vO����MVK�wO�f�>�gk{}J�K�"ݷ���\'���a3fe�c�W<EZ9n*��J�R4'��ZylcC2���s�S��c0�S�2��8ؕr����Y�I��:T1��6�`��+fxz�����X�NX���:u0���g�f�����K�x�e��Z�?��jZo��ٮ���a���7��O_�R�4�u���^��lgĭr������9�q}w��~o����ɣxS���3j����Khd���S6]x�ᆫ���.�a/�N�=煬a6�9�g�>�`�	.K>����O�|7w����5�P����i2k������tky��4�Ep�ymmu�CX���DW����<W�?�H�9��Q�+o�p����_Q��ڮ�y{7���kx�m��9��|)��x~b����^ct�}���?G|�5�^,�^��1��a�s�x��&4�c8r�t9}�#�b�]JxEN�#��fs�ի<m\Uo�O�o�8S/���	�NU�*Y�|p4�|^e��ax�	VU�U��x�>�
���O[�5�c��a��?N�do�:'�㫝?�~��tI.�#�-HU�t���i��]B���.&f�Ѡ��#�E
��I�h�e�y�����w�A��!�Ɲ��i���ы�^��Z���p�:L��RG����o�����SխG�<��^�,�ִ\xwO��� �K��t��;�^Io{�q�<W:N�������K�jww7�zf��X�a�����C���:TH�/�7�9�k}:��R�N�t��ڝ��,3��WX��;��%Mr���Σ4���O���ΎK=Z^ʦL�G(�0Th�:xlvW��ucT��haun�[�AA3��f�����=J��N�'QN`�R��'N��x\E=+AB�%'R^&�_�L:ݎ��̶�3��h��������0�s[�5b�ӣ��SPў�P��a�o,o`�����im���-�O����O�4�V�c�Kȭ5mZ�Tm��ڴF@jm3����ޫ���J�M���M'P��\O�yc�K�eo��
E��j�}kw�iZ�6�j6�ew6���݋h��cQ��-�U�x?R�doٚ����Ǐ��:�,���X�n����73�V�vq��ն�w��[i���M��)K{k��SC�PukK	bqt�[�#F���U%5
_W�)R��ԡ	}b�5GU�t�f�eN4�p~�0���,CQ���Z(�2��B�"o�Z���ui�+�|#�/�(t�~���2��?iۏ����,,<G�{�r��t��!�u+[ȼ��,x���V�}�ĚV�m|u	���7�8�>8j8���eᨼ#�yV�/����j�I$�y����h����Eq�h���I�ˬ'��.^|S�ߢ�o�V�|+���x2;���ƙ���j2Ć'�
�LB� �Iq����-�kOҏ�z��?g�����|Egi�=��K�6�����pͧK���v��M.��6�\e�����w�Z2�vs��wpɦ�����&�!f�o�&
S�*�_
����R�����^��S�8�0�EQ�iT��Y��X�r��ؚ�,<EXJ�<[��ħF�a�ƕ9J�){*�pU9#F�>�����?a����Q?x ���,x/�������\ǫh60��{��4
&�u7J�kĭGP�W�N��
�ug�C��%�Õ���.�Ֆ��.�H�i�4�.���ۻ�i�k����w^i�6z���s�i��Z��
c�z|^�5œY�rx�[���[�����v��
S�:�ӡ�����U���x{E62j�r�+�W�'���W�^"����W����Xi�V6�j�QjZ\k�[{[Aomv/Z�l����-N�Q���o�}�_b~��χ0��P�
��z��3l^����J��|>�2���!K�>L6��+�1��&]<�������l*ʽL?��c�*��*�(bf��V����bd�S�Z؜G=Zt#S��A�7�_~,i���K(�Z���R�.�դv�Mq�l��3�gc�Z��:i�]����Y�x��O�7஗�������Y���T��6zn��=g�z�K
F�蚖�/i5+�˴�#ӵb�u��hVV��0�x#N����z]����Ok{�k�Ɲgu�_	l4{=>
^�R�D��o�ѥ�5$����-+Q��]�_����~̟�ޕw>����_����b���
i�����E����]>�;���},:L�7o�>���O-���gٹ(Ы���l+�a�;[_�ʾ>x�Y�+��b�apR�
y�%�����O.�g,�<��(QP�s�d\h�ia$�9�a:��x|,pr���haiV�:�}�բ�*ѧ���g�+ms��������G���V6>�m��jz�K�Is캠��ow�ԗ:����奰H�R��,����K��A\��>�_ᯉ6�֫���V��x��mWE���I��/�ivIp�� 7V�/EŎ��^$w���������zo��<�>��i4�3X�^Ew�h���T����q��jz�iZl�����]"�M3�2���KK�6��[�������ȶ���+[�%�6�8��i�{i$O2ն������e��I���˲<VwÙ1����L���P��4i,N�kS�y�3	�U�c�����!	���k�d��O�]jy~?^�],6'��𘺸��T�ʦ_��<E�����Օ�a�$��5c���	n>��|_
������ɬx�Ǎ�ܵ������ږ��#@��L��o	x~�A�ٸ��š��5���I��4WY?�v2Z��Xǝ=��@5��&�'e���甧���dچ�T+�#�<��Nbx�˷��^�֐�o��5�8.�JF"�&���č�K�lY���	��mB٦&Y剡���khn-&��T:��~t�I:��r�*iN��*q�$Z�J5�騪j�n1p�qå�/i[��;C��q8iKh��Qj��EJ҆i���t���*���kaiƴ*�G��|<�d�SL��O&��^��Jo�����Oie&���1i:����N-.��G�{;�wE���{T��~�����\��a�\�CD�"�4	���v7ϣ�?�6�|;�iZ���YxS��<I��rť�K�N�RӍ�wsW�G�JX>+_|$O��_�-�0�x_Ú<�>:�K�I��z����K�^[�!��P{�Kg�����;�˩��e�sT������u�������ZK�jv���.�����PC��ז6w&(��[x�����o�dž�O�9�k�g��Zuc�㣌�(`�ӫ����b刯�Q�z��G�A,C�)�C<��9�3��2�xk+��ȱ�����U���KG���J�12�OAҍ*4c7��J��St�P�����tO�����.�{�J�ׇ�=ioD��4
���/�4}7L��nmV5�SG������o�	m���Y�x_���S�:?�5�{����������/<$����#�Y�Դ�Nm2}&�K��K��K�i�85Q�O���.�����	e�I|��/�4�Lҳ�ifiz�HZI%��?�^��K����_�D_g �����5�����Y�ZAm<�8�bKx�,;�\M4��xu�
��?�8<M�"�q|q	B�1xjYGd�0�\�	��ʦ#ꕳ��$Ŭ��Yf�Ƥ#^>�.����3n���8��L>}�a��v)�q���."�)R�s<E*�;�f^�WR�Z<ؘϗ������>�>]��l�v�-��<K�o����,�����ou���SP���YҼG�ؾ��'����K�(��(��⟅��Ɵ��q�xZ�Ė�<3ᘷZ-��<��~&�
�J����L𭾐-�5����Ѵ�7U��o�����޹`�z&��:�ʚ����=ՌW7��>>�&���k5��I�t�I�H"����Y�������VZ7�E[�,�_�>*x.�[����|+a���o����t�����$��g�1�*�?�~�X>!����m��a�|7��͸W�կ^y�[�e��M�C��`p|CGE`]B�����ZT!J�#_��<W�x71��b�����a��LC����N�lF#������R�*��J�&��W���
�~���~���m-�t����;}2;My����9�5
N��K�5��l4�V��ԥ��kY!�̆�E��o�>�Q��8���u]J�ohR��C=�ws]\Ez-�-SQ����R��.��c���S��.�(����|'��V3������kdz��x�-WTxX��9�<�Z�`�}���x���7����5�-o�Z�>��]�SGs�_�\]j3iky.��3�g&��f���y�+�/�֫�b���TXl�9Na:4e*������)�N>���S��N؊�����:�j8,��ju�K�ʵ7MBJ�;	ʥF�:�ngF5�F�<=H�E֢�5�1����^!��q
��;i���a��mk��iZq�h���>�ke��:��k]b
:�դ��?��O�<-���ۨ-u4n����N�lb��C��5=?S�T�K[�K;mN7V��ה���k���B�%��lX_�/��M��ͨK�*�����F�(���J���յ=CC�J�_]J�Wz��r�g�nn��l����a1��o,�,P��G"�(�}~S���,wp��8�8<ʺxʔ�(�T0u(կ:0���c/MU�R���!i{:�//3�r\�1���x�+�:�a'�[��5,U�ê�ϙFS�jN�,=Jr��
?����狣��ֱ���ss<�
/�K�95�4q�̈.&��ZF�=��gk��1
�l�a�1~�;�+�O�R�Lj/4�x�Z�D����=�\�j�����,t��n��RK����D����U��k�g������g��x<j1��U����k�&��U��N���Iqa�Z�@��upd��[y�Uݱ�O�c�~�>|��e௅��宫'��MB?LD[�L�l촧24��|PK k4d�y]�.[����O��I�'��p�'4�sL^m�����y1�᧌�V��V�+���NX5<*ĺQ�:ԣ]�0�Eþ��5���1��	,-,֞	[��[FR��+W��a�U���4q՛O�}[�N���꿲7��]�xn�~*�o>+i����5�hZ2j6%��ĭ�O��C�tt���W�u[�>�D��5_j���c�kwzZ�@�|{����e��^�χ.�_�>;�Z��|7��>��?k1]>[�6�k]CQ��tP�mݦ�m���ok��'?��+��c�Qx��Z����>^Y˯��՝ơ��ھ��w����ݪ��:^�s{
���vmb��9!3���V;=s����i:^%�]�K][U�|=��j�E�柧�s����,0X�#f�_M�jw&mKU�.�>ό���>��3�C��)���ѣK���~��Y�"8Ic=�IbqT��1�*Ч� ʼF�K�2�n|3��8���e�5�q�K�乢Q���zk
Z��j,4�Mb*�4�x�_�#��ً�_�7����4��.�{���Y]'�Eխ��W��˦�]��]7�2��̂�R���k�я�_ٻ�S��o�[?��ö-������x�
jZƝ�|J��㿁������uY59�N��ܵ���&�,�WWzImsQ�o�|����փ��[�e����.?��(�~�?w�A��^��M��/>��ui�I�`ײ�@�0�����B���~�z\�o��_�'J��tg�G������w���D����֕-�ͤlR�Eqp��(q��iĜ;��a�ן��a,��QT��t����tp��z��4�4��l���k�T�C��O����?�3�<F㋥��Y,֥S_���0�qR��)֭��2�bq*S��J�HVù�?�߀>�|�.��B���X&�t�{=֛46���E�j�us��,�xu^uĿ�[]SP��m-G�&(b��Fq<�ȭ+���iĮ��NfK9�[���]��u,Wf��6�H������f��>�ප�HbD��il����̼����$�{��Y���IyF�2�M�}OD�KHey<��2	���B�����gP̑lV9���_��G��#��0�j0���ج6�8U����=���oi9ҫ�*�jN�V�֨�u9��6�m��VUeV8IQ�R�"����N�E�]�£���.*�ӯ8Xu����ygl	k4�2(��k{�ak�nDk0��-��x�QŎ�#��Q\y�0Kwҵǒ��I��GYeD��&����+?�[�Z{�B�D��n#trO�����C<�NA`s�}+Nu��ZE4�W2	��u�+o%�B���K��m�,h�K,��Ydv���I׫)J���q���*nN*��g���.Ji^�R��S��q�*�
MR��I�U-M�����^Y)�M�j
��NmJI���PK沐\��0�0html/images/cat.gifnu�[���GIF89aq��������)eBe>hgMRgPg�{d�a@M=CM%HgJDh7������+.>{A=y+�·���K�HI|Gq�Gk�Jst{mno>:M<;=RRQGLK011%142M@0H0	(}�nVgoZ^\�����+,*:&CIDCjlCReJ�l652
%&&666L9L���h=a>�egd "",q�E����&,��Q���v��m���|+Q�K�mR��x���'���G����V�&�%J3K"3B"#��6%>57v8+$$8$�3�!T!!84}5>?�#24K%"��?r#6"+!%?6�3��#�%$33B��] ����42Q">4nVnk�V$����"2%�՞2���"NYl$#?�n�W�8>$4M|Ĉ��C�<ܐA��$n�A `dž!H�;����X�fb�����2F: �i�N�YB��
V����>����0z ���	(Ȣ��`Y@���U��.�!4FWJ��""�M	-\�@�#<�����.V����,Zk�	�]iаt���1j���	X��X��=
r`��F
;�!���O�06h \K���C��yL�� 6��7p�СE�
#Phగ��<�n����?ĸ����=h����p��R�jB�@�8F;y��w�uQׅ%�@B7�p�C=Ħ�v�q��w,h��x��Y�$�§4���ţlЅ����e�0C,?�Ӓ��PCx�	7(�"+#��0"�� †
�eFA�
`�q��	�U�/��B�ip�v�‰�(ڃ9*#7|P
5 ��1��H��$j���?�[1Ȣ�@U�gl�c
��A5� Rw z�w��ɳi
ڑ�
�i�Y�E�CoFB"�D��%t�Z��805Eb��/�C���y.h��m�A��m�B
�
�B���q�]=�rbP@�]P

0��c@(�oݦa�H.#B�?� ���â�rP�������	��i� t��]\��]�\(<�C�I�Y�"Ɓ����z�fȰ�Fs!n�,j�����+h�f>8@�){.���brp@���d@�p��tN�s��\;$��;,A\PA.���rDJ��+���O�	�b
����a���0P�
*(���'�6?젌
��� lRC,�u#���
UC��B��_9�*�������*ht�Qe��M�z��1.��JP	q�>��`�>h�
2X�0�)@�P`^;P@I�N��6@��qNr0�F� (���1�НP<�Z�
j@	X��������Bp� +�n�`{��@��w�oIJPL��~�b@bw���B��h�IBX@Ը:D �N�p��IKZ��@����>X�� pJ>AЀp�`�A�<���@4� �!��8sO�@r`F�����@Ї|�1��B�)|�ä	��Ơ2��O���|`H���A�1@����d�2�7�M���_�Ŀu��e'p< U`*S$�`0S����`��dT��KB@�)%C���3����5
�$��h�b �@{j�i/vѿ0`:��0A@�� �
@P�`�
��
���Q@l�n��8�\������@	^���S!D��
�����^���
@{p)\��7��z�(�"b0�"��
Y,���AVt.,Y��
v�4�"������+�f^"D��
],F	�	p�x�xw�u�bĐA����%�8GHpd	漦o����lWT��QV��}�3 A:B�q�/��!> 	*Ą	.�~A$��l�4P���E�1QP���%��F�0О��)dp���T4��P���"���WΈ� �ƿ�@ �r��
k�K�HU&@�`��8MS�R�J.,�S��@8�m.�檄-���-Q����74(l褚��i_ي�n�p�`���p@8��A�>�.��(p_
�GN@hP��BG-x��PX'D��O��"�Z/��Hƃ�<� p��xXNu�ˢ�o��3.��iF����5p��s���� xQd���Er$wF�/G��awP��4y�����ā�)(���(B���"N{�-J@ ~��B� �A M@b�K	8��R�*
4�H�>G{Q��}����8�/k�g�Y��9
m�!�����
N2�K�h[@*��T*g|ʀ�%���+�i�l��u
�8E�^r�\�f<0�`.��DmX��6 >��	*T�*�����ĕ�L���~F�aR���<
)��c���0G&M��=�a�<íz���$#�Z�<���A��Y��\�A
" 	�퐇*�Z�^Ѓ��	=<����eaક���	�ȅy�YMP��R^,��zp���-�AF6�`A!Y�HD�D����Aq�d1n��0��u4�sv0�zP�/�,�"1"< 9&02Vs`5<p��c�5@'h9!h6VdEh�n�P�F�Q*g^�7Y��򀈆
38�g��s20"<�
�����8{�ou�W��0P�VP'@=�~����0���F��h�i�{+����ͣ"�j�V+���C9&�W�B��s�SVPAB0�F���%0���/�p0p~�6��E��?��䊨��Ӆ��E[t�D��|aA`p$dpI�T�B �!-��Ir �޴L�-pO5H~�,i8��ņ^�,�H>RG$8� 5��3�x�����{Á	p�q��#!�>��Up:.�X
�����4�4|M��U�;pYP�%��8�ݓ)
�L�N�	:�N���������Tp{�	�Bj�X�XY-�f
)L�44�p�	��D7
�q���Qb�Pe0�IS3���%Gr�m$^�Mu�	�>�R14Yj�p`�T*Q3&cO_fDL�m�p�/0��W0@�j�7 �9e'�)�rKT2.N�� �Y����$���F�#�p8���h�$���$pF�x
Q	u%9z��#a>Y�&�x0�\��.��2�q!4�\ñm��Da�Ã8@��n��#w��
ưbgaliaA� F!�1	1F-�'BI�q�ab���^�0W��2�����p�f	�6�0&2@	9)i�R3�b`F�Kk>!T�`��BRk��
D���@V�B7	�!� X�8��A�W8�?O�!=4`
N���5��`�Pp	`bÔ�!�ޔ��h��@���yƑ*e�{aJx#P:�J�c!�
eB�mҀ
F@Ew�瀨���@m$��{i���`
"�;`@��$V ,�`xQ3�b�T�B��`�0�	���0��Q(�Ghw��i}�;�=�i
9/ Px���Z7�y�p���`
�Ud�tqG$<:b:IRu��y�HP�>P�S�b��8J��=@*��Z=fD����
-��.��q�7p5c��V
XpgkFg�h7�w`=�e��#[��z���61�Ai�M��“f0�*+�	l�?P��a�1�W  �#%16`�� 	ĵE2�����Ba�)�&��r�z1t�n�3��aO4�Y7�:ܐ�*e-���A�7�-~�
�R\5�>g���/o'6[tG4��Q���t�7|D��DU7
�u6!�2�a���''�k�12�6�����(���Rh"�Ѹ�;!��)�-�Na��utXPpW~SDK�
@qO,��a��m���}8�9`(@-a��5����Qp��bO<r�P�D�va���V�'��]���	t�M9�$l*�`��0�J�9�=)��$2f�+�FvB!�"0v RPSw�8�`!!L:�]$�HA!V.�7	��)�]B��P�p0���X�h+�>�.�,�;1n�"Z���A�0*��*_�4h<n�x��P��WOc�`�t�@�r3�4� �{|�FoNT�G�>�3�"(秆��|A���(�B�/p @$�,
b7;y�hC�,��ti�{r��6`��>!�0(r[|'¬/`/\��da4/�'�B0�?�3��na�G<�<��4��8/'��\���m�c�5��ǧjо��D�2��Ёc���7�ڀ�t#�� �Q҇#e�1j�r~���w��1ƤR�P��/�@xR�$�4NX�2�NF��&�a4�(�k'�`���c"$� <�&��y��[|PS��+6~��]P7��dg�4F�i�Q��{ k�"b%��ю���+0��
Ұ6:7nA�n���q(x�0c1[��XA'�B�0t2r��������2hq�ߣ)I��"J�'�b/�Q���!(��}�bQ|By�W�Vp�d�H~�nI[l,�@@��F�[�{�%x��0M��3�,�R(�-ہ(
8�%(Ō�[�V�h~&�~!R�deި~z}�:e�3��M��ajNܠ.�7�pRp}q!��+)����b"e�4�5b�8��`��с��&�9	���dc6�&��\�U�iE�bt#3F����1HSv@��Q f��h���
q	1|�l&�5��+�Cƨ3l��c���� ۂa6W�)���ZqR��
wp�;"ZD�e�;J@�������$d�1�#�C9��R(`���
`���}39F!b�g4�$;b]�ma��҂V'b�ԕD�R�� A�a�TP��.)���Z�Aa���G3�H�V껆��?�?#��Cq��$C��!��)���"���<̳��i�)�H-:�@�F$B!ts3�]Y��A��:e���0�M�@%hNW.H,�ƣ�|�j4�Q)
0�_X�! P#�%`B F�Fۓ:T&�qw�sHs�ԙ��>.������IqD�댐")B��f&������)
��2���XB&PV$��X;��ڮ�P��Y���b0��C���n�|�%��*m;�������X���XA�ftu.�(I$�S I���v��.A��#�B(ydQ˂V�x�;DH���Bg�?��H&�?�s��f��E�g>%���w�zY� S�U��рA=��/;��{RL��M��f �
�Q+��F�s�T�}��Z���M�J&a��V�����:�K�ViB6D�A�f !q�˔BQ�
�����ܫ�CI����gl!��?@[@@��h��Ǔ��p�D���J��V�P`�n�E���/t�}j����j�
m�� Z���e���#�$à�'G�l��.fg����c'�&��G

��f�ge�ӣ�&��ue@��b�k�d���c�&d�me��f#�c�c�F@c�c�e�0�P1�Aj:D���L��$�أ����X�HԐ���p��a�>x2%,��L�!V'{yj��O% ��`)58�:Q�L	�g��)��x>uƚB��J��P!‚�Q�P�Pk�;>� q)��)8��#�Տ�2L��!C�G�0��pQa���@lX�D�1t�2C'��%	���@(P�f0����^�J�\AA18ָ(�-�!:K|��Vl=�6츜Y�
,���
�1�0���2���s08����l�
�(�bMP��%L� 7�!�}8��r ���<���Lj8B�0�@��{`�=���p�Al��޲�1V��|�!�cP��'j�l�yb���"GH1�M�Bޚ����H�N���
f� �@p�����C)E��D�apr��be�'t�(�Ha��K���H�a�DE`��E�\��l8QGg8�M+���p��������Km0�(��a1C�"ŔFٱ�Zx1"A*h�a�q��P7ZQ�m�2;t`�4�Ñ^�d�D��
\J��f�l�!/J����r9�J ���|u�l?�GE�	!EP��j��C�=����@�<᥁Odq�R�jC�p7a�}�Xr�W?R��F.]����Ć�i�GlXCC84w�.]8J��!�Rc��]���BU�ʹ��RG��~��!b�a�VЁ��>���`��To�@���>�|�p�3��0S�e �h8r
B
"a#C��@�;��J+��b(G�W�C%���5�a��=�$U<���T`�X�DNg���6M����ݜ�N�n�tl`ی��JҠRU��zQ�Ldt�!=���&��2g�F
c��PEQ{�[*
�o5m�@Aj�QЁ��B�K@�D����h@f(Ѥ�T�*q�l
ۙ��,�8	�<�@�= S��T��4�dt�
$�"zGh��I�'������i'�c�54
ZkMԓ��D jL�T�{�植�P%:^�з���>U�؉
��-�cPЁo=ߙ�3���d�����=�Q�?�3ڥ�&��a�R�LjСH*k'R��X :@�C�&��P��Z�p�	�X�ܲ  �7��H�=*�h	�H�r�)X-��(J�"�����Q�C=�`I�6,���v�@ < B��`w�%/	�
�-�@P�ġ��H!x���>�DJֆ������~?`��,*��ɏ���4D�1N �GIJ=�R|��$����%2Ѓ�o?I����;�bY!+�2J���<8
^0�y%XgZ�4:X�����qr��R���d
#b4��e.q��r��0�؆���
TX�_P���oh�'0��<�<�@vT��q�Z�:�?����D@�&L9<���6����'NY��}ր���j��b�Pn[�*AЂ#�I#X
Z�@�6�`z�t��T��#!�F�&� 2��M#@Ʋ+h�9�������U�xzˁ"�-�(ծ�c��b���Jp
�4G������z�{�C��J2< �����
^��6��.Y`���R= ��Q`��#�R�Q J��{��%B�Үʙ��l�
���:C��Q��"�>�L3�N/��ɏ�K^p]F�	G=`��[�61l[�!RL�:���������n��
���X䓵2��=�/s@��`m@%�pؑ��kTy�d�/�U�Ko��y��)��*7�3��X��a���@����g��4@��4`@E]KM���v͒u�G[z��u�kBp������9s`!0�7,�	D*S���Dj�h�c|��<g��M�-[ˁ�򥱴+��j��rN58���h��k��[�'�<�+�& KK�DŽhP�!cRR��X	�����$0��X��`>�P[/;|�FA>��`�l��uq��5!6��8!��F^D�7�@�a�s���:o��9��3�/Ѐ��IS�9!`���Sh���@j1�#i�-�]`�#�ڠ$'��l^Z�@�Y@0aс�v�-/5�ꁨ��F;x�c	��;~����y�Ne��/�v�)��h@Ya������2(b2��<� ҭ�5r�}fpxp�SN������( <�?o�.�a��{p�����EI*�#<Y������>J� �K�>b�j�Ev�/@`�F��f!�ХL�o�~��Р��+���< N���$�ζ����\-�C<mBa�NB����AD
,��I�.&����JX@]V��tm'⁵؀�$�2��p■+�^�5b���؋�4o����j:�"��p�n��+H���"H�$:@C1��Z�Et�&D��xN |����fJ���o�x@���z���A9m�JӀ�f�h�B��\`
�0 xF�0|G؀��,|��%k��>ę�kJ@9x�ԺPZ@�'�Ͼ�/�f��
���l��+���N`언�"
���/jdj!
�Z�!�>>&t�{j���	
��`6pkwI�l)Kv� ��������(���/�>2�"�P�� @��
�õ"j����G4d���l��q����n�Mӄ�y�f�̗.�or�tD8`8.�֢і$!������ͱ�ޑ: X�F<�B&bB��LFQV N
��v��
v���v$)�.NG��C0bX����z�˰�ɲ����B���Q]0u�S��F�`"��k�CM��긨Rd�j�>D��Jx��d�
=mBZ�$�CH0D`
�Qz����f����	njˌ3"�꣆@��8�&�/Lք\̅lz���N��� ����2�q	�a�M�,���<��Z@���8Q ���P���P�����dRJք�%�|�����O9�-"Nji�P�v����~�Q.&J�̀�� �� ��(�rϖ��P9 ��
x�#@І@ ��Z����IR��6v��Pd��� �*1d<��zGj�����1F
�`�xJ�$
X���4깜2#�aBB�/Ch���(e��a�X�𺐪j�Bd�
���)��0$+�r� ���j�a����ý ؔ�(��Lv�����Yv���QҼr'¼
Xe�d�Z�"�J$�&�!�#��J��bJ�4�� ѠS�l��GY�9���s�1�gU�u�"�Mf!�l�Lr@��A�*$w���1f��&@�9�x�/U�O�b�P�L2�Z��v���`�2 �#� y��{�e]gHLD`��9jQ��ClПp����I�0�ӝZі��ն5�.�[��h��ܯ��G��#����#`AJȨ �q�8�dgd�j��
���JJWUj_1���
�*�����1�	
�x������,�T@;��z��ޑc9vx��PO)V`-����Mc��ԱB���rC����d�&
%ƠTa�L�a]�o��`o/�(ֵP�;z�v
��~�����LZ@��:D:x�u�s����`��/p�!��n���U]���n7�|)@@�����疌�$axF��rƍ��tm+�_���"�W)����`mB�ac�h{�|�pe��*��n#o��N�a�m`�`)��{:p��D'Φ��U�C*{b\)σ�H1R�ZD��6�wO� b{J���J�����tw�N
< ��*+�@NB�Y�ř$�-���"����\Ù���	:aM+B��䤍
nئJayNZ7:�	�{
������z*�)��l��fMf�&��>z"Yv�B��8�'���\��~vf��HMF�l
�L33<�6O��}+H�O�
�p�-�3�
�v��n-<L?ޤ,j&T R@"q�x)�����Um@�� p�|v �`����o�	n���v %���R2P� ���G�"'�-T��a,4�4`�Y� �xI]4�T��EZ��y�Z�J��`�&�.�+��	��$�@].֊�ر-��P����A���)��X`�<4Z������U@D��|�:�(LOj�N@�+�w�`�� �r6�"��N�g/ܬՈ`ݎ�k�+P�	'x�v�P ����6��k^{�B�� ba`%��5o�����.*��@�Z6��N�E �P�,䱀�~_�<!d�c��'��_d�ʮ{��4�}��"� �Ƙ�Q�HA,�(�������*@��j@5"��~����2 ����J;ض/b�U�������q[��x�VΡc�!���;(@w�>{�+� ��.cf�.2�\���#�h�ց9�ݼj���V��0��Z�d<�- (�,���,@��D;F;�#��� ,@�7#j���#0�]J�)��b�CQК�ќ���^6d�_�K�0`�-��-[��%��g���ۺ�S��� ·�"`6�`)Zm��>^�0�{CB`h{��9���!Y��"��(v�kk�Vx������7h��<p'��-��M "�C�/���ϡ���Td��׬���Lȩ�ᖼ����
A2	R�bA)EÀ�Ņv�2J��a���8�w����E@T��2&\=���$�z�E��jj`�nk��Q�!3!�z�(x,,T'��x��	��	�m�
�`�- �
�F*�HA���J"�:`�:� 36��nb�B���"]=��}<.��'`���(�8�W5 ������9�����)"���N����� �aBҀ!4�b�T'Y�f�}^;�x:�v����\w��*���+<"x�OH��X��W4�k��E�P`��@�FJ�`bx���
,�(��8 
���:ձn��n��2Bc4��)…n�Nr��sڄ��@4����#2z@��/6C2�[ʣ{��p�J:������m��%LQ��/^A��O5d	x�e�q�/�/@��E�j>�K"*n
bNbU�bH�EqA �A�"�
V���G
h7��Vh>��-ڀn��ureN�)���p| �hpT(���0�݄�p
@�|���|l~�����,��xx�.��|$ЀDU�@�DA(��x(ń�,���dք�턜	|��il���`��`n������ lh����} ���m��x$!�����Ĭ�A��
c,`�D��/��aS��p$!����D�q	��)7v@�Ë.��&3��}�/4�(�#���4�h�"ӏ+p���#�N�_|����@;F�P�/��h�
&�#�2|�-���΁��aGF₰s���ڴ�h��G�g��Q°�%<)�a���p��#C���B� �豣X�hW ��Z�a��Ȉ<��f;�p1d�((
��Qࡿ'x������ݰ����sq	+tDX�A�;Xpz�K�FK�a��	�e�`
��@2l�FM�C0P��{�Ԡ��
���>,&k�=��b�	
�Cp�@-D�Z�\@AD�P@�
��mfQ��	�(:� [� p
.4X�{(d���&��
�9�
M�i�u>��O@ �.p�A)�j�#���TPA2� U��rݱ&�������(0g.T ��0gL�C0�y><P�b�uw�] ���o
0'.���2B�� W@��	3J8���MGbg�-���yȟ{;@1Ceh�Ёzd���0��#j�����N�܅b�(P`��!X����Þ6l	��
��w�YL`�l>V���A���8��qxiJ����6�v��o�j�
B�3�<3��9f��B8�`��$�(��`icMƴ@e�v�:(����R[�@�������p�1��Hq�'@0(`
L �
���
}K0A��pC�,�
	$�A�l����@�R��C�8��
���^	Br(��;���{(l��T/|��\;PK沐\�r��N�Nhtml/images/cover.jpgnu�[������JFIF��C��C����"��	
���}!1AQa"q2���#B��R��$3br�	
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz������������������������������������������������������������������������	
���w!1AQaq"2�B����	#3R�br�
$4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�����������������������������������������������������������������������?�?�(��
)G$SVD��0\���$d��#'�4w}�ߢi~my�&�+�s�,[�7�)$ϖ	!�`Վ���z�Z�n�{q�[Z�]N�Y`�O2fU�I��HY��2<�
����W����� �p���+�85�K����5�K.��X�B��x4X
2^^[�ػ�(u�X�a<��u��?f�|[���K��G�e�,��&��
6��xYm48t�.hmVK�/.5H����8m�%�0�I-��ZZ��~;��t��N�S��`�,f&�wVx|�h�3�UW��T��S���5g�~Ml��1�̋��G?�>_��Q�5h,f'��:����
T�֣5*�)��R�mS��Gi�ꗱ\�����i	��1!a��ai�1�+;�>t�#32ø�ʦ���NJ����E�.:�;I��5�m~��G��M���CC��~%xBQ�Y����,�]SP�������'�"�"[����}��?h��ӯn~}��~�}�__�u]I�E�>��/Ꮛ���t�O�:It�lC%孷����KD��=�K���H4�4�_���xg����x��f�|���c���֧C��,Lv;�W��
R�������3�NRX�Y��?q������Q�ܿ�(`��]I��:��n
�Z���j��1�f�u+ڟ5h�N��h	��� ���\����z��
����P�I�5�o�		�G�?�h�_��|A�5�9{{,v�ߊ���Ğ�[��<��z��[1����j��x�}*�AԒ���C��C�z��
i�ן�4��9Ч�n,���V���!MSJ�X�l�t�su��_*���i,�R/���t"�r�1_X�q�(a��ѽJ�qrK����U*ӗ4%U/t��c��a2������b�3�U��a���p�VX�z5!Vt�FN%���4�R��kˆ�gr�e(�i
��ćr�B�2a��Uj�J�,@C��S��H��U��V;���*r�N�M�R{�d�OT����R啚�^��MZ��t�qwN̩EPHQEQEQEQEU�P��H�,O=�x�}O��mٓ�@���'�Ɣ��?8�[s-��wJ��k^��W�]#(����c� ��o�~�g�/x�M���?�Q��>%ԋ�	n4M5����1Ha��|V�m�It��ָi�������[S���x�TX4�I���fk�R�;�5$�Mmq��|fT����n!�?�a���~׶ڭ�s�=SF���Ԥ�%��h�H������JJ�QF�ŸX𵎳��|o�-@��Lj�E�!����ۄ��ҵkpZɔh�Z%���5�J�D�W�'�<��?գ����x��.�
�:4�ೌ�(��1�
��F�hЭNP�5UJ��9SG�ne�&�|,�xS-�����Q��|�.���g<,�FQ�cr�t��k��ԩ���J�uf�;?��}e�|o��|q/���J��>�mq��+��M�Oeo�ݬ:u����&��w#f����L&�9���Ǜ�����g'����6��;S�$IO�>/i�]���CT���ki��CU��/m�+M;H��t�[Izv�{%���;�߇.�Aaxt8�|p��!���.t��4�	�x�}*MBIn�̖��<3k.��Ckwu�%�q�%�_4뚷��%�{���𯉼8�.մ�����e֐��cP�X�V�e,gM���u���K4�wpKk=ů�ය�����OG��qop�M�e�$��p��`0�,q�cs�e�2�EF
yZ�A֯��Zn�4y%5/��_��x�G�q�O�[��˃|)�2�Kq<�Q�.��%�x�V6��xʵ(���b�:��ӭJR�`�?�/i+�_���ŋm^-;���~63�A�3�
a���,L���uk[I��BK�Q��!��Z�J���<cß���M/����u=c�V��~#�+D�~&��n��it��> mf�T��]�4�|_�Y_�bg�h�<E�k��qkZ��i/�|��ž$�{��(�4;�NԮt�^���#���z_h�[C�\�~=��sy�g���g�Y�^�j:���춋�K�t��wT��m�y����N��Y��4x~��i���\��
n���E5̰ZjV��^��~��xg��w��2ȼ��f��eCɳu'�V��\UU3�ӡ��R���u<>��8֫/7�k�p�G����O�!R���H��X����Y��;/�l��c+幖Y��ʥ��aO
��'
���u��;���U���L���>�o�����y�_�:*�L�f�=���y^���+߅�׷z/���CK��P�υ�u�{L��Z�~�X�y4?���񷏾,|>���^6�~j>!Ӽx��n���)�1u�[O�����CK��F�̏����\�e�N-n�-?ѿV�֥�ox�t[-&վ����&�����4�{~+�_H�×�^����5���Y�:eޜ��^�6'��;�=�?��x^�J���	�Oi�~ i�z4~�f�a��^��w��{�h�2i^/�WR���7�.��+����3��kz~�w�K�?��3�,�8�>�?�z�q�q52�~�9~sC-����y��0����2�#/�"���R��P�4��<$�>1�o!�x���,ӆ�O)���)��ؘ���egR4j�X|oC��b}�j�NXT�V���	���+pNx<sޙ���|=�:���s�^��
�#|t�|k�z�P�7�o��x{�zn���|]����<M�x���
�K�m���ͨͥi�����iZ�K����J�CֵM"�9��WS�$��˧^Ki1+ �͉����جW�מ+��8s6ʳ\�<��{��fX*�h<���o����2^�G���jagQP�P�B��V��ɚd�̞N�M~�t)Δ��ZT�4��Jp���B�k�E-Nj�(�� (��(��*D@�䜌`�;�����y��;�On��_~~��Ÿں����kO��/��M>[�|\�Ǎn�)���'�|Y�kk�?Z�=�1��������ki{,Oa��a�T*bqu=��^֥�����hݻJK��4�Ju��������I�vI���\�`iLJ��op���q,��0�xp�w�1�k�4��h=>��ী/�#�e��h��4;�[G���3&��<
�*km:e��}��F��b���c��&ύ>xWƺ�_���x�~3���t?��t����� ռI���:g��f����<;�x{��x�H����t�^�H�%~u�V���/��e��^�ޟ����o�h:{|B�#}��@��~*���мGe�?���<7d`����4=~�EԿ��޻w��<�G�?
���|�p�
�ḋ����fi�ק���-�2�6s��qO�#��ౘZ�	�l�.��R��Q/3�'��A��Wa�\_���Y��َS_���c��c��˱t�Ǘ+�BxJ�1�Ƥe�~ҟ,�͟�_��o�?gmG�_�O��~�O�}k�i����'��Y[j:���kR:��h�[k�M
��Y�oK+���F�y:�Z�X5�}I���1�m/�v������f���P�{+�g���XOl�+z�}=��\c��o�'W�~1��/�3�?�u��j>�ܺw�4��.ҵ�Qy}���!���&��΋�igS��/�hlH��oƭCᾧ����4_�~��,^)�|eq�ꫩj��=V��pi�\[�!𞫥M��d�Z�~�O����i5�i�]~w�ӣ���2�f�{W5���	����Ù>���k����a������QT]YaV�F�F�?vQ_Q�F?5�Ox��:\uM�k�fE�
�3�>�*�]��v������U�ʬ+ѩ*p�Eƴ�9x�û�7�~'��Ɨ��w�U����%y�y{f?�.dY]c�L6ַ����\8gw�/�_|5���#�Z�_�Xj%��+Y�!}}�=�~"����4
.���:]Ͷ�x�˧�6��궖�"���C�x�ß
l|[��
>�[�lZ$v�:m̳[��H��4�{[]/Y�-�c�'����T��8T�Nd��Z/�|s6'�v_���4�t���ೲ-0�`m�@�C��	um>O���s{m+"'�M���>��)��'�C�8���~7����xL��eU*cpIS���C�j�6�i�ףR����8�Zx��u�x��_�\1����c8[��O��a�e��Q��5�Tq4��a�X*Uq2�U����Qԕ�mk�2�G��?׼ii�xj�G��N�Ioi�]C�f��~�wi�'S�5{H�5kk��.t�����ִ�2�3]�m;���8�<s��7����}/�>�$Z\����r�_�;�>4мY�w�:����j�����O��j1�:f�����z��q�<�q�D:�¿x���S�����t5�&�_M��[�kV���\x�Mit��9�l�5�h5���+��^+���dύ^��,5O
�J����V���@�K3��x^�–�W�,��W��|k�j:Kš}͖��A�K&����7��?J�	��&�8k	�>�)p��9�[���Ox����w
�R�J�:�y��a�p�C'�ի��5��+�.�\Ng�䙯	�8�� ���x��pXN���'���.���{<FKW ��q8\�Xx֧F�f�a{��]*�x�M����w�v�i�S�jPG}�md�W�5�>++՛T���Ha�{�C.�omn��qwV�|D�w��]�:�F��5/	x�Is��$6w�7[j:'�-"�aq�}���uk&���š���n�5k�F��O��5�>&x:-w�Xk�P��~��V�K�|-�t�*�N}3�Q�'�]V�R�_�e��������^[���B�Ǻu����jx^���^i��u��qM��:-��%��<7T�V����l����-���I:^�m�����x�6��x����*5)qnT�O�?�i�q2���U%�̽���9��b�a=Zo��u�4�D��ѷ�x�)��2�u,�üھC,~K�^f��S���G�),�8�f9n"�"�/�מ[���UG*�?)$�g��Ht���^Ե������������\��2🅵+�_�~�T
�5���W�řG�P�Εc�2-&�R7�W�_�9|}�����[k�/�����Oź��u+!�%�M�okz���t���{M
�Ӣ�ũZCp?��IM�s��Ÿ���Qqkck��z߆��d�o%��lg����TE"�H�]�Q����,�2=��ƿ��읯��b�g�Oi�l|o�N���{K-"��F��ƅa�A�5�2y-u���Yg��5��k�����=����I���Q�^&��3ÜFI�p�`p�̫<�s���^�B�'5ɰ>�.v�f5���ha#)�ۦ�N�����N���7�y�I_�x�8e,�$嫘c8����'2���|�u\i���W�,(S����$)?7�3����=+�/������m�?��_Ż�G��χ�_�/?���HZK�K��G�<7��v&ym�^���GP�Г���s��qm��A��N	����N������0U���a�,V]���B�"+��F��P��MY�b�*R�V�j5�W�T�F�m�qT�Uh���~��v�݉E.���b�(�O�}u�=/��į��Ğ��~��xk���5Hu�A��xs�����O<���[��eq,W����}��.�}
[x�O�|)�J�5];W��ⷆ<Kd[K��Dž�?Y�2{������_�<9f�vw��坉���a���]�h�2���5�S�}�ԑ.���7�m���h�y�7�
���3����m'�Z�1�A*���-�����7�x�V�7���~|/�.��Y���G�4m?V3���u�8|I��:�R6���	��z��}��_�%�����f�KW�˱��2�&:�8��:�o���ѡ��SV����a�U�[��S�ӟ�N���8.�3�����I�8SG���nc��jY�;-�ҥ��]Ԫ�O�,�x�JTa'	J>Ƣ�4���
s����0|7�m�O
xcO�῀>'���O��x_\���8����|!��gG�W�猵{	xR�}[�:����Ιue���L�3�
I����G�|;����|-�c���~+�y���{�5
��&�s����Z[
�i��W�s������?�<W�;�3�럃�_ş�^���x���M#�:�ɣ�U�5�2��;�{-J-f���W�[�h��K�EЎ��e����|9u�����[�W�	�Kυ��G?,4�J[x�R��Q�x_�ZV�_�^���-�:n����1xf�V�|Ua����x��X�m�ʏ�L��J��g���ҫ��d���7����t0٦�+�����b�Fk�K;a�B���՜ړ_̾:g��O�^9f9V>�&UK ��1exn�Lj��%�L=ia����V�	_����O�ty��|K����������ƿ����D����zDŽ�1 ��M\��[��h1[�#O���Q�t�+	����?��=�Ϳ~9��'���3��|)6�{���wzͼ��5����k����.�L���]:��x�m2]V��K>�,�K�?��o�u��_�<g���t�x;Wk�MNx�TXu(���R�Qk�Yl�#�Z�+i<�/>���mR������?i
2��oŋ�#���"����qu5���JС�����V;}Z�g�Ke�݈g���g�M$�cm�Wq�#�8���W�qFi�i�e\IV���e+�0�02�*usl-��0����N�)�n�H��d�>�v?������n���'�S�����8jT1j�\
d��p������r�����Q��o�ϋ��O�?ڼ��W��Ss�x��K/xL_����R���4���V�n��0�w
g{�������nt�J���|q��^�X��ů������(|�o"��Ii%�����VV��Q5���¡��X��K�Od���i�.��?ࣟ
�;�º��?|����L��l?��a�˝rs6�ȱ�u��W����GhC�|U�Ě_�[O\����x�/|q�i^"���Ƃ�+A�Y���m-����@9�l����[�GI�x>�����xe�^������q�#��xa����s/�Ɯ>�Z��8�k�m?���\�^Q��e9>y�e)�xM���o���	��d�-*T�<J���Z6'?eN��\񦦤�p�|G�O�GԼ/�s���c�K����ב�F�m�\Z<�x��7�>�{-��,��%����d󍥼	�_�>�4�WS�����ty4=J��D>3_�BK}?F�o��uԢ֒�Z������%Р��Q��Q�mlY��τ_�N�xK����7Qѭo�����^+���ge�]yS���X���)k�H�5+��C25����a��_����O�ߏ>6�֣��5]
�K��{�MwB�����m.����K��([�
��iז��ڝ�֥sa���O��>��g�u��?�eS��'�0ؕ��y�0�[��e����
u�F�j1�l?��)J���^S�o�k�:���~S�P�aW&��B�	���'G4�U��F�XgZ
��(�5��W��g�Uh>�D�<A�^6��躭�Q�{Ÿ����>�u=����B=}V;�a1G�+īmge}yk�	�k��<I�x�%o驫�ՃC}d�1��)^dI�ɖ�D��؈�n.-./���-e���f���=k��/��}�G�Q�|W���]�^*�h���\�kuҬf��dž�A�
R���t��@�2�����=ByE��_� ~Գߋ����/�=[B�H���C��z��[�>���-Ytx�㎑��q��mu�#�U��e��_�H?�O��1x��y�u���e^��Wΰ�\�#��x����c�Z8�<�^ֲ�5p~ΝGSʥ�g�8�)0f~�;��߉xϸvX�y��O7�p�T���e��+찘)�1xl,��V�R�f�ʧ�'��>4��(nu_�^>�摠�Is�Zdz'�n.淸����ѧ�Q��J�5��ҥ�hb��p]�1��7�/��/�R׾&��1�H�l�t�[��~�H�{�T��÷:&�7���Z�[�_i^lڮ�����4��+�c���Kk��v���9���x?ó�Xׯ'��K�}B�Z>��kz'�mo��o5Ms]���J�Oo<�z�إ���]�ě�	����^�F�8���t��q�/4Y�[��W���&�%�����.�{k��:=�R�q��}p���/���+Ğ �2Z^-�Y�)�C��0��2쳆��2������ή.��򗱕ʝH~��%�-�%~
�+�x��8��
W5����f9VE�üV]CÕ����1MS�����b"��F4q
���q�)?g����Z���&x_����.��;	k���A���I�Ko	�;N�Ӽ]�˽ �u���]�6��f|P�sG���������[��w�/��hQ��)9��iᕽ����C����Id/�/c���d�Ú4p���M��Is���m.�G�v�������&�L�X|R���\�W��C�h�%�����"G��s
���m�+G٢�i��V�v�1[E���D|-�s�[�_�_�M2��÷��̟�wD����c�ڎ��/�Z_XIַ������i`ե6v���e�u/�d�*e�C��U�*b�|wUαXl��Τ�?5�x�<�U�'T�!N*��#��	q�yñ�p��Ӟ>��_X���je��v���Q��W&�2�Q�*��8Qte�*��/�du
����g=�=�ii���aU��0��x�V�1s�ظ���f��I��"��?�.�u[xn�W�+[�f�,n`Q|�ơ�� ���]��c���9���Z��p����%Q�A�JO�F�rk��p��v����஭x]T�/v�$��ҕ�&�f�8����m2)O�CIY��:�Hx`��*q��g�_ӟn��.m0%����E��Yj�Nn��{kg�T���!�(�0V8�0
2�<'��֥F�['���Lw���릆&�?eh�JU0�:Jxj�p�IY��vog��ӯ��G
^R�*sw�&�(J��/)Ԍ�Er;;�������V.��چ��]^[yB�C����+���R}5����}�Bne��f]F;sw����a�LxW���7��O	x��3|?Դ��ZMc�^��MKT�<=y�ê^xt�t�o��m:}KN���/g�O�����{��>�F�i���q���DTG��BK+ۙ0�1-"g�bq�O�^��}{P�J��hN�m��_d�E�����	D��!��m�/��f%�Am迩��b�4�`3<~���x�%<D�V����קuQ�hr]��{��r�����+�a�����򧁅xU���e��-Փ���aj{9P�S�a6r���zm-�.�����.�����ҥ}�P%���DX����n7�"[��"��e��[{�S,�lbH^��x��VxDx�h�Ep���pF�E7��n4�WQ��"�E0k[i����dc-Ħ[Vc9���&�XI�e+�~��z��;��_*o(��y�Ց!�M�����6��e;��xQ�+l`�����#Ns��%��8�<��S��~�HǟI�T林����g�Ͳ|W�Jy������A*��\���(UK
8(J�xϕV�Eih���&��;�OC��Ļ�K��ռ-�<r�m�?��c_�ɾ��)�h#����_i�wZ|�����ے�q�dд�O��O�.G�.��|�D6�S�/��2�X�m����|G�<?uu�jz���dM./���Z}�wB}�YU���J?�t��$2Ay5���k:K�k���V9ȍՕ��h�bt_)����]�=�o���N�;��ZӼm�O�/�3�g�j���m/�M2Iw�].�m�W]�X���+I,!�Ry���YS�YnS��\j��O��y�&8|_s�1���<�yp�k`0P�G��>J'f��lOg^x��x���ҏP�[�9O�4jf��5�΍x��5Juh��wJ���Na�r�ͭ!�}R�[R/����$o�\^Aqz��c��Yolw7�{;;�BX�}:�L���dž?c�B�s��|{-iem��zǕ�/YA �DŽ�mF��s]X9���l,�{ǹ�>��U��m��F�_�F|��3-���u��u?���k�m��xcZӬ�����ؼ=c��b�5�/N�㺴k���ג=��🈬<m}�SM�t�OAA��m֙{ƛ�Y�����s���u�[�{�.����$�����G�~�yf;%���y=>'����y�Y��[��`1�Z�P�J�>�:��S�U%Fxw)Βu%�G���'�R�6༟��2Lƿ��瘬�?�g����U-z��7��+ú1����=Z���p��Jr���"�I��c�"���Oxz��7�ׇ.������:��wZ���cuk��7Ww�V�q���:��
֒�w�h�~���ߢiw���Ɵ	Y��xw�S�[�i���&�Ö�z��T��K?>}�c���ɯ��t�wK���Tv�siv�,�6_���oo�2�{�<M��_���<I���]
gG����^Ci7���-��SC�ۦ��j�T�j�x~�LMCC�����#��w�?�9�ۭk�t���/�> ��K�D־�&���)�u�+Hգ�M׆�}�}�{M�;����;���/����0㼣���O��쾆c�Y&<9�L%F�*u���W�����Z�h�e��s���㾖���u�O_��k����iT�if���8�-��/��8r�6qU�xړ�����Ua�Ia�0����7��uo|&�e_���n��~'�+�x3I�%��iW�ͷ�<c�����;��<œN�U�$�;�1�+C
Y�۾��ÿ�~�~&~�>7���ia�����G�i^�����	�n��o���Y�x�O��]/P�����-�R�J��V�a�/ο�A�� �S�^�>*�	<1��i�~���S���t(c��u}e��_�C����w:�^:^��Vv:�v��vw]���O|Ӯ�+��Ŀ�w����ѵK]m��&��\[�\�
�e�]ƺJEn��R��Kr$�c�qW,�'���Y�0��͖m�p����q�L�c��8nt�ueVuq��wNԩ֮�ϩ�7ѣ�o
1<[��q��,V��/��G_1�_�'�1��|]��X��P��fk�8�ÖT(�q�a0��]a��~�_�����~x�U�Ц����`���v��Mso����Z��4�hz�=�ֵ��O��ó�Z|���T���k��K��Zg��R�_�<}���MB���T�Y��Oje���t)t�n�tȞy�mM4=wZ����5X�u���m/	�f��>|U�>4x{��Ιo�د�|
��a��gM���N�L��Q�?隶���\%Ί�v���^����Y�|#�v|;��v��ix4���Y�VԮ4��<���]6)��|=p�!k����ID-p���A�w6W�/�/ⷁ�*}��>��=ϸo!��x�!�^槉�6E���[.��4(M��^b'��������
q���?���o�|/>�p����c�y7��;���x��K
�U��<=�aha�m���Q���p41���έJ��'���VhW^�I�j>6�W�/�Z���ח^#�4;MSY�Fю����ڗ���!�Ȣ�����7^�$���iȑG�x]����搤Xe1#1eL33
��|�ǃ�5�|����n�1�Oj�I�}�V�R�f�k[��\�%����ߘ���o��Q���Vv�gf����g�;o�׉�߃�|6�;��k=B;K{��/���-�N�m+�c��qg��˛���Z�nG�pw�5�&
�i���2���K6����T�"�8:Q��NjT!Jr�9II��2m�xA���q<Z��.8���ke��f��p��Xl��K��\}��RѦ�����J)OS�4����J?N��9����P�?����W��1�&����I6%��ج�l��*+�i�C�>Y{Vau�*g�=��J�1�L��ίx�Hd��ᵺ>z�I�E�r�c��@|8�0��i਻<E9S��u*6^�4���V�M��4f�=�T��-/��mc�MU��U�_I$е��$�B�\�y-��.M���UB۽�L�1�m>wJ��u+�,tx�3���s�	��Q]�Xlc���ٞVeD���j:���/�[�L��H|�:XZu[�Y�in��H�|�¨�w��\%��[�Գ���Y���{U@�,n��V�	�����5�,a��<��jч�i`pU��jEU�EJIڢ��&��~G�p�:�
X�>ƞ�̣��?e	:�	F�S�2U��ԝ9�B�mM_[h�~�=޻�K������wҢ��\Mwkcqx�E��������y6��X�����^$������Y�Lд����:�a�m����V���u,#ȁ_Q{��M;-�K$����|�ǧ�_�ɧ[��
ݴs�B�b�s%�i&� �20�'2*��l+g�6�h��kyQ�
�<JR�㻹�]D�y�Zܲ���had�S�9�����j	���FZ�k)G��4j�E]j���1�����c�f\C��O,�����P�R�T�B3�%���n�i�Ug��=�0~�_���_F����x��Y�K�o�����[Dn�[�!}I��V�̷7wz6���%�IgN�H��_��֟���G��s�o�⟉�#֯<]ag$�xf�j�VmGM�4��]�d��n��c�R�P�mT��K�o�����_�ZcG�o[j~!����Rh� y��O��g�N�Q��jVKs$��ϛ%ôe"�����>.k:���a��[�����w�;�qZ�kkwdF�m��j0���mSRxC�gu����<�.+����2�����f�Ζm�Wq�,�X��}�=
eZ1�?$��.��W�Ox/�k�pFG��V�����t�������P�R�"�&�֓���<ܦ������^?ضo�8����hiï���Z�4�6���?��6�=1�ZG<1i>-�,��Ѥ2m�����n�����u��V�����­s�ݲH�
�MgF�T�=�pj7rkV����z~�+�F��_�ä꺬3A�i����D��kɧ~�|9���_�f�O/��io�����F���<�SU���\Yjw�-��ǎ4�*�X��k�.����cl��y��t=R_|��֛��kW�n�-����t��KE�t�"!�D������RӮ��Σ�\Ky���_��i�\;����n1�s�0��,�
�y-j��Y�Jw�`��׬�8�p��=*�+�h�ԛQ����u�>;��*8I���p���(�
�6y�W��0��T�N�j����;���V�������5���~�^����O�^:W���<t���O���t��5�~˭���]�G�����t�xm,V
��5�6�a�g�
�����3�_\�VVWpx�%����"�^*�4�u�t{��-����j�t�����+p���ƳE�ƺ?���|c�C�5��ֱi�;ׇ�F�V�C�[D�����L����O쐲E���G�Z�w���٫_�χ�>,��7�>x���[�6�Kq�k>�o�{��xzQ5��L��
�F���V?���^(pL���a��ʰ��x�.�LN(��c�8ƜkEA�2wQ>c)�B�~q�·�s��,�8>&�a����2�O�����}NX�77Q��_��R�a��BQ���~���}�6�㎇�h�1�B��V��ѡ��x_G�ԖmZ�W�G�&]n�\������<
�5��O]$�/eq&��zO��=G����v�|%e{�]O�񆅯h�;�q�H4�"����<:47�Hܳ%��$��E�KQڛ��O^�/�&����6�`|)�-c��������3�h(t��4�}:�Xҥ}_M��gHԭ>�gմ�Zll>��~���m��g�⦡�mFCe��x[U��ž �.'��v�D�-�B�nD�t��^ ��k�)c�ү���1�*�2���R���e�jY�0�]*s�ʪ���p򒨱<իN�:Ӝ�)s�H��v�@�_�ׅy�<k�G��K=�«����k��%�Waq�,7R��[��t1�(�KO��%R/�km7�ß�3��ն��7[�Z�kf�mnu��Y�\��Vm=��NXI��9⺳������r\-ǀ��?�����o
�#Ú�k���&��Y�O�����w�ޱm��6�b]�Ş���6z嶇k�kv���'�_�j��g�t�7�z��!��m;I�Ě������JLך��\<�X[jZv�h�l,��8�ԵI��
���{�:+V�����o��
�
�m{L��R����K�5(l</���7*!���EՔ��č�ڋY�� }�|�������5l�0�x�ϙd8lUU,�������9O�J�iՌ�)F6��.�Cpg�S��'�dm>=�e8b��	�U˪q.|��6�c�eXY`��m9�K��z��eZ���C�R����O�:JS�M%zG�/��QE���H����Ec�����%ŢKu"�z\^��1�s���4A�`����#��;]O����٥[�Z�J�+8�9&RP��iX��颒5��HV���
x���Z]Hmu��[�:F���
��s_��t�J�El=&���ɯ>of���]���t��K�
f�o"��1�"���|�.7j"&���n�
�â��[E*���v�H5i?k*�D6r�)I6,�%[���r�R\���3&��	��vhn�[�����&�N�E��X]�ȑ"H�ZIU��t�6�m �GD��[���Hg�|���M�iI��'�✒�e�p��*~�)���K�{�捹�i_��l1Y�6�#��o�R�e�0q�)�iO7����Ty�7�RM�ž�Z��a����1}�糖,���-���H'���%D��ʞf?r�sc�Ӯ�=:�k�6��o��4�N�X���|�<A�"Je��~��jo-R�$Õ�`��I�qt�3��ഐ�[:����<I��I���E���qk1k���Q,��!�P�b�i�$�C<��|��r>
�<F,��x�C�*�t��JTpi�r����}�KC�)f�6UO
O���,^*���_X���4���YNRj.1j/�������u;8�!���7�w
t�֋5�w�0�h�.��ʭ*�%_r-m7źΙq���O=u�F��kq�4�42I[�pےx��۴��ŵ�Z^O#�M}%ݬ��f���gK���{}��<�H��&!*V%�L����qE/ڒ�H��=�$��GĶ�J�
�['��A�t��x����+��q�+��O��M?9;��Ec�_�^"�3��*�q��!��ҫN�jaUNxT�ESmUZ�M]k�G�����C�O���+�>�@�:M�zn���:i�D��e���+�����#�I$u�(��Q#�����G�
�nj~,\�.�o-���_M`��:��iw�i?m�%�����Z٬��[��Y��K繑��2��֖�ڤ�-�ZN>�e��v�Mh-�Pd���_:��Iu"E��n�J]+K��-�Q{�-��d�q%���)|��#�asn�)H��į�xl�Ϗ
�1�^3S�2<���Uup�f,���ʕ\����S�7Z�W*�����`�?���7�8��p�ZT)JO�d�YFk��Ul�F	�nu��<��.m?L~~�?~X��I�<a�i�3j���t��wPg]x�Vk[k;�->��c]"K7/-�1<W
�&I|�Я�z�T��`�׈4�i���ŏ��޹a<��Yk��˨Z�[<w�f��V:�����Ņ�ט�Q�-#��f����ދE�b��.�{�7��O{�����R�#B�G2�u����sG�Rx���7�j��kwVfh���OUͼ��,����6�)`*���F��*~�ƞ#c��V3�0��,~u�ɱUa�ңV�:4i��ե��ϴ���Fq��*����N�j�^sŜE��a�f���Jr�<G�xHe�*��8�5L
%Ntqm�7(ҭ;S��^(��4�ӭ�v����yf���n��-��>�%�_!�K�>��h��oG��+�l�v��ⵙ�S�/�~|�_6���=�l�_����Z 𖕩]jzd��j�|�a�{�ׅ�/�&���ϼ�) GR�|/�o�j�^�m�~
3N>*��,쯮�</j���E�"妒B���V�����jlE���2{��s�����������K+���]_޵φ<K�����t�m[��f�nu�l$��MWM����ͯb�����n)�Cb���
p���.U1~��׭,f1�F�ja��(P�2�V���W%M�*.P�"��)�%��	�\Y�S�X��8��`rʒ�a2LƖ	<ڥJ�q���帊u��BW��9V��g����ׇ<K�^��>3ޯ�<Q�]Ia�GC𵌾-�,o��^�4�i�h�qGk.��5������ x��v�(�F�����R����:(�]/K�j���%��J����j�l����
�<��(pz��b�,�s����*(
�g\c���?�|��6?�s�Fy�ԡN�+������p�J��A�����	I{�q���,��xG$��p��~��e����S���BS���)�'�މ�--��~���+叨
(��uZ�o�/[i�Y��=8Z%���n����Eic�!�F�˶�H����K������D� W���x�b�Pq���8��qT+�n�"�kڥ5�S�]$����C�.�U��t�R�Z���:Sp�!V�I)%�k=���|i��+�qo�_;�m.b�|+"L�΁-�Uy�]�raL1�ұ,`�y�}�џG�K���K=����YZ�5�[}6Pe�����#�WW�ϋ�m�{���%��2��0�ʗh�p�l�X�4��+|L��~Bޚ5�m}c4��oi}d&�i�-o���"����K��Ia�����'��S�U̲�t�N�\M��Q��6�v�~kr��{;�7����&y�e���e�X<n_^5����5��!*
	Wupq�R�>I{�w��k=�w"�ae���Eat��"YyԐ�#*# �D�.�df$��I h�B,c��i��<�k��o�0&//z�db:6�k@�\Z�"�2[����!FTKv��RέTu��|Ɔx�. Ȓ{yV5�i�!�[(݂�O1/.q�x����7�d�sz��k�������U��*�J���^og��n[m������(fYv
j�|.i�U0��h,}�8��j�Fj��J3�����2d�ySp#x���'[�������|��x�-�E�r���^���ӼK��ص��ۥ��[W�[#�!gi��=�����oqwK��Xyo��{_[Zj�eJM��It�k�Ԯn!��y睶,�
>�cB�� ���&�m���亽vH��<����*���� ӶC\ˉ�&A�\K��0��N*����ŦչU�Rѻ���|Gǿ�/1ʰ�Y��:�y������J;�<˛ݺ�S��ďj7����M��DWvЭ��"M��x���(U�H�9��|���f���>0�of�� ���&����3�{�2�$׋<a�+���u6���������G�'�?�׶=*<�S�ꯇ�RUjQ�9�r��������S��*�$�QI8;����Uj4�F�kA�Uiʜܧ��v��ۣo[��F�?��Sd#ү쎠���It�f֣�m�H`X%c-�fBD�u��I�[s�
�/xL���m�j����2Z���.�a���ua"�Q�٦{�*{x"�t�.�UOͨex�F�ee8`ÐG�{��w�K��Q��Y�y?�ݽ��NY^TR�?sv��D���w�$o�@�lʬ(c01p�\mz��kFIb0u*�¥JQ��a�����S�i�Ǘ������k*P�18w)P�^���<\#Zt�5��—���J�Qk����=i��j�����5O����ÛO������<-�Xx6e�Q������g�c��7�&�ew�^�8c��T��h߀��S�~�F�G�?hςz��/|7�cB��|a�h�����w��%�ܷ�0�,�[-#P���^��84�H4���Z����^��k����`i����-��3�2����V�[��>��;�mŗ��K�)t������@�<*�٬�-!-�,��i~�O��;sqis.��SH��K��R��ӵ+�Y�P���o��HX��B����{id�⑾�6̲
\)�eXl,��G��R���L?��<L*a�7����*ӧ:Xxr�pU*79=�~b|\��Y�|/���ɞA���va�p�pۧ�,%hb�l]lt3�UJ�g��
QoN�*s�-*�������*��~��5~u��ʜcwd�3Z뮝v���m�{]F+Ek�+[]�Q@��(����D�h��I�5��=�D�{�,�s��q��A���c�u��T]B-F�I�	 �60Gus+E���$Q���$>\>V��1<U�_	V5�gJ�]ԣ'o�]�ד���F�T�R�f�*ӳ_b�T*�M����5ug����u(�O��A&���ֳ�ͷM��>�oĶ�]]�E$�4�v4��2�nx�/�ws�s�����V�Gl�s22���|�Գ�@��@^B����<���1�`q�MǑ��^z�}q�=+,4��b�XyJ�|d�LD����z7�&�:AEu�SX��)¥XC


'e��'�ۭ��߈�-~�������rP�Ȝ������c�5�\s�c'����n��)JR��'v�ܟ}.�[��.�k���m��-ۓ��v�QI'�jJ(�n��pi�B8=Fs��:)4��_���wM�f�mh՚�L���4]�c,����2>^3����g�����H$��Kgq�1�8�t6r!��ˢ[/E��V�z^��4�ܚ�JM�V�G���b��ѻ�J㙳�1M��(��(��(��(��(��(��(��(��(��(��(����PK沐\E���Q3Q3html/images/cramps.gifnu�[���GIF89a���QQQDDD			nnn```������222!!!��������ָ��,��C�0��X����A��ay���,���*���x��:�a���ábX�{9`G�UT�8��@^�qz!X&��[L��dCA�@�
�	]��}	�v�~	�~���b�����iv
v�c���rD
GCmD
Gxi^c^o
�be^�	C����b
��l��v���������v�����p�*�_�:�I�!�a2`�!��"�܌�'f��цI3�Jcɀ���E
f��B�t�_+a]b1������h�>���0�g	�7��)�E�89SFFT4���5�(0�5*]E�Z6��E��aD,8����l��"<�4kLj�-ZC� `�-\^��0�m<P���Vea<��XrQʼ�d�R�J�@;a���Z�Qӂ��)L,�P������lM�d�U`���d�Px���T�y�>`@ҝ��Z�ꔯ�(i�e	+@���
4s�{؃W�e�dJ)�H �D�ʁ>,݃`Y���W�`U�%3F:
�F�`��@�4�O�- �{�tR�yMƎ>v,6�P0��J=r���E����D
�2��X�D�\W�gl��x	4��8���h�@:X�@�:H�t�(�a�f8��"��s>�IR�=��(�JO;�Hhنe �LJsS�m�5Ѥ��x$�Řg^��A~B�<�3��.^2�bV������!�!����M@���f@8^���AO��&�$2�%<8��0���eؑ�`���9^-��h���Q���U�F^��IVpʼ��ڮ���t\�����N�EJa�嵀��:q�o2�1D :.��ŒKʚ:0��	�li*�*X�& ��
���fX^�y�_>��ԛWm4!��G4|ld����&p=�>�1d��8��j�	@`1�O�\*��D���Hj���x����!�x��T��M
��(����dkd?+�e�)Z��ܜ�{$A�Y5�����m���������eo7�������,q6"	Ĝ��L�������٧�v t���WO�,N��XCO����"
`E7����h�1����97z�����t�8��a�WH@��w
"X��@��,*����,0���H�a��GB�=�)��ֺ���2����7��9����+
�3���c��N��5!���NT�:�t��C�8��	�i?9�ZU���D��Fr"" [@�w�9{�/�	���7,�`�0��ط�3m-$:H�Z�C���B��	�M�vR��p!�3"�MmJ��FH�NF��J�Q�p2h@EY��3��*�@"�X�%��1T�{#��C>6ѓF���!`<ok�T*��F�IE��O�&4�'���1Bp&d��(�����.u)�>d��؆��e4G#��`��D�@��)�uU�d&���Ƕ���P�@�n�3M�����h��L�LA#/X8�̊
rr���5{�<�!������M����d��!.��X� �6�oN�b�)�RXJ4����"��C������L�
j��+�4`���R�ZR���� �c�g&? �\($J�9��XJ������KX�b'�zZ�[�x�<�c(�|uP�pV�B��B��3��sCh�)y���ME<SENt�6e4x:�,!>ځ���*�n3)"�FF�!K��!�^	���2���a�P4��|�4�:
���	@�K^�b�|D��-�j!YF26�5�!?yX˾��I�+\x����aa�#0!��VB�)L!���p�MM�[�0bQ��Q5�]��J��P,��-�CۜH'T�gx�dQ^tc���@�)BbN���X�QbQ0�@wP�K+�}A�	`XKo���$#;ӕYk�s�e�-s�Np��D#{|�
)]����#�CB�Fj�c��a�N���”������(!c֡�U:��%t�+�8���o��HR.5����l`Q���N�Z�4 RGM#AJ5�<(a���P�<U�d(�s3F�0_ ;M�?�[����f	��ϊ�
�%��GHZ� 1�'mPJ��ÿq�"L���{Q�A�����le;	��Hx�P宀�,��<�����e�0�픀L��L.�,v��XiCS��N���	�Q�Ȱ1,`}�Y��XH��}��6����4��>��0x�B�5�s�8=���褻Ln��VIT".Ɛ�� ��pz�W���}�(l֦+q�u �Y�TѦ�U@T}���Z\�6#�[���Y�͎�Hr��\g �|��P��#bNz
3x�X{@a�߈y�Vx�U�Y�ng�LE J!B�>&�M.�S��L鍊��;	9�~�
��}��0����F����&���q�=
`R�$�/��U��a�r}(f���R�db`�D���yc"�_¿3M�u��H�-5N�����@?�`)��;v84Q�Q�W1�4���
��
�'7C!@9�1.Y�
q
�SD��R��Z@6��Li�0�"T�0�1�I�$�8�r$2 hh@v8�Q��5!<���
mB>NRLQ��OG�3xGH=˃p��G
rk�"?=�
��y�V�b'�PDl� �/@s���<��pm�?�r�QF���"@�Z�
�x�.B65&��&�TPlPM8p$8��C�K�%d6�2jda+��/��Z<��}��r�A$��;�s�C;TD�V�C���q=��*$"z��7`ZS�T�:�$I|�Z�K��w��.Ts6qDk�qԘ
GGyO��3�CA�#E�B=� @t�$ ��l0�rHES�K�8Gq5s�
��jX���i.��PH�7 �"PMINw�&�<I-�s)JrP��66A�P�-j�^X$/{rHa�5����@�d�t���*or�&�b�{������+�`�d*b	�G�c�bv�PS˂��!�%�tF�SFYD��G��%)rcRnnPH/�!�5M�� �B"�٢"g"N�P��89�'7$����%Y�
��1�r-%I�0M�*�P����4�g'l	9��*"(?0YM��vE��"j���R��0ޱ�m5&^�&l	?��>]�E@v2.�CL�rDG�&=0)�&�U�����u�LgB[v�6ˣ"a!9 �p"�xwH�&���02�DLpD�a'p6�rڸp���,$r94uX�b)桬�oݓr�C��c�?��	v�"�r
�B��6Q?�# F,�q0�8^L0�Xr��,���f�
d&�p2��9�s?pS3��
9Y	q	BqI�"}�����P|s{�f>	ZxE�F$��"��r'�eG0o&�%L�?�r�^�1;����Hx
�x`�!��(�4�B��5��rnO��f�~�H�/ǡ��L�Pj��ud!5*�W�=�Q:�0	b���K�
��d�
�b@�J���i���v@�M:�MQ]�/�g-oq^�%e�E�p%!҇����0k}���p�0^�����N��WӒ��aM��B�In��W3(�z�|�d�:��[���e�u
:P	aP�a�P���Q@x1�{v8�0�&:�GmP-�ʮ�ኳp�H,��l��x6�����F�o�A_k�����\@�
�p��T�@��fX�{h��;CQ,k���c5+0�p�Ul���R=���ef�u��Fb� �p�{l�k)[<k��aۣn���m�PEAH-����'���^��0LBf��4��9͠�vE� a5x�a#���3ǁ���8�6b�#r�b�ⷉ�@��iiV�e�j��\CX����+z�'��Q��m�g>�1`�0t(,Ff}���'f��=�� �z2��TN�҅��e�+�j0&�@��!l�\h�9r�����5K��_�,� ��:|q#
�)g��[�1o���w@!�A���[G%d� 0�P�U�gӍ����.Z�J�P�a�����Qte�n�Ы�����8)1i#�
���C��s��l9<,�
�(��^T,�s��Tj0�����pvq����[���Q_&��V�ekl{��FG��Q����Ss(�m�!V	�—�P8�C��}yf/aZ�Z�
�,_���=ȋ3A��'���%3�&�Լ�@9�4�ihS�#�	��(�p���5[Q
�0�E�4!G�t9�����!��f0v�.\�&[��J'��g�O��J�zQ��x�&^�����g�p���y��BW4��$?c�>���d8@����W��`}`��P"D��GK�d�e�A`���#�R�0�������{dg"�`X�Nh��-��8�����9��u9ڨ��iE����WSMe<P�C`!{ DK�a]��=�c>��GE`;!D?�g�� �qG���t�:���[W`�"N�[ Tj�Ho6�-�v(�i�m�c'z)�����@L�rE6���ʸ�-중	$����11>�79��S63��DL�S�3Q^�n���8{(m^�hL���σCqL�
�!_8�1`�l�@
�3E4&���*ұ]��jO�# bSd�1�9aCkEP{�a�F/�g
��_ނך1����6n!�[S.'N�PD����r�r3�����%Y&)�6��5��3#*!I}��R�7����E��X��X��6�L�"���%*8�jR$�6�9��z6m@��)F��}��מX'S�@\��hflcYC�m��C'hj�P7sFH��<���b�N�]�6-�rS%
��Q:��"J��o.�>ӣ�f����S���T��q�@
�w��#C�n�#KvP^�C��=l�@qw<�&��@�G��C�l*�A�Б�e!BЉ"0L  ��xC"{�$B�t"�Yqw���m�irr=�0�a$6���dSdX�\��9�t���W�=��5
��,BCkGKA�C�P05#��	<#��n�D
����})�3�<���:zrU��Y3�i	�>���N8���
:�S^���L������B��1-�Q@���&lr�
cb[(e����&� ?���A�_�ߑ>�HK����2�as���=A��^`h8�T�*=1�rI~�*�BKxI�S��!*���l+-�G�艉-��7BqRWю�R[O1i ݃�/z�E�-9#�rH�	0^!?�4r��o���9��L�$}{O1�_B�q`���Q]W�8�C)s��v4�#S&0�cs<�_4!X
] |]P:�v>�Q:�=���6q	"6(I*+k���{5����i���pQ�T�"�1+Xt���A��B�c�wFH&!�x��3bTO$� ���`�����9��q�A\@�f!~�x!�GdR�d6�O�0,8�A�0P���E����.���&<���p|(3�)#!���F�GH%����������I	������,���	��D���"#��e�弤���5�����ӛ����	13�I�[��!mP"!Z��f}DŽ�)�
	 !�������nsBP��w���"���f�pPbҬ�!�8(����}1�4P�m�d��r���1����(��,M=h|y �
�3� ��h�@�6#
����Y�͔!��㌋��D O��v���ٳ^�	�4)`@(���'pg$����c5��`��h�x���|qe��v�
�72X}�3��1� Fk���.�2�-a�b�z��1܉��C���Z(�/�p��ț�e3�t�UY}�l�?1�W�h��Ұ��Xja$�\�S!�E8KɇO�A`�R+�m2��p�p�B�;�dR�X ��`�i���)�„/2%�jT@�c8�
/��-�Adq@��l��(�
�17cJj��cB�@h����!Vb��
 �7@���,���~�qěz��al+��2:(��x���I�a� ( ���'�ljG/��p�!B��ި� (�e�Wn�ʲtX�F�j��Ҏ�f�A��@�B�<��-�`�AK�QËE[(����7Y���Xpi�44
��8k�F!�#￐FS�VL`��2L���H�z��YH`�!G5\��ʍ�I����*R��!,�a�X
����#Pl(�U0)��xa3;�9/_�6˗��⪯�E[,�
�����F j��X�t�Ai�EH��0�Zˠ�6�)�!�|#�����+�Q�F�iꪢ�(�^#�3�n��H#U��8u�5v�o���!�~���*�#��N)�?n:�fc�馔2n(��ι��O�֎�p�Od�/X@��8Υ��i��c?��40���/z�#5I�+��#��\��_���>���櫱����[@4��ҽG�ŵ�Kbo���wE5��ϱi�;j�g���h�T<ʕ�D��UC"��Fk���FԨ��NWN�V���p�����D�F��$�`�`e���L�!��8B5����H�)���@�]�?8�6"g
��ys�҉3�i��|��@�W�x�fL@�E1	M�BLx#���"��i`��8�12!�KM���;R�>\�Cb�0�mK�0���!�m<�D�p��T�
��4#���dZ�s����,������H�@� �3Ԃrut�w�d�-ȁ�����mcȓ��=(�
}n�h�L1x-/ɑX�#.�:�Q�Tz��x8��g8�9�C�`�@�M
T�:��	H�����w	���
�)X����l3�B@M#�����+\Q.��y�2�QX��9�R����3(ECSx$�x��mq��+gW7���mVP��j"+<\N09�+�I8>C{[��R�4�Hz _K�F6���T�MY�#S������a�4��)':�"�&���B
��7P*3p+~��>�
D��8�†rt���[����*�����琦܀G�����&/�/nW�ƛJX���%��Z�x�xH�
:�q��u`��Z�(:Hvj� �;���J#l�y���炈F����A���L�A��1(!��7��%�T,�'/q�镳�PM
���AoNC���‰�xFo���%I$����7P��Mp��8�p��U�#��^��ƜĽ.
�(�ipG���h0�)x��z�E�)�b��{��qibG���-�lg��-8�R\8�d��z%�k�4�)n<�;l�l 8_P��ipOSȠR%��/�a
�ɮ�(O8�Z7�<]p��?��~�Ӂ\����) �H�#��JI�hUp��f`�	��I�x�̒��S�tD����&��P��
�#���M�D����t;�R����봃]�Lj�2������V�#�.��1����=��	a1�y�T�q�+�-���۹�vg�̘� �YXq8�/��l:��_eO@�O\�M�(5R b#JŰ��a6�m�)m
uC��,~�	����<�J�X���r]���V�!�y�gEw�TE�,�>���!qt�T���P��)-uݵ�qT�A�)�#b�\A��v�p�����V��h��I_�;�uθ[�Ѐ���)�
W������#����b��4J���j�uC�6��R��r�T����'�a�9C${��sn��y3�t����mIP�81���G���ńs�(a��Yvm������=���۱Y3dTNJ�Na�=��ѣ�N����_GL�XP�$�3� .�	z��G��\�޿�E���F�WM[�i=яW ?7X.@����o���&���$�Y;:�*!�K�@��s��Q�Q��țl8����ʂ�k��J����r����@��,M	���K%Iؾ� �P����X&���3ȲV��ڛ�˽�[��j�8-�Q�Ԙ/3-�c���/b����f��L�z��A'C����)���
Yq7�2�;�ڛs4�h73%B"W��x�<ə-�n(�[��j4�J�m��Q��:+X�x��)ӳڲ9���1�s�uº ��9�x���åb'�#�H3�A0�iIx�!\�ND��� �����I�=�@�7Ćĥ*���:��%9����4��|��E3���/Lp�R=�)(�!F�*��E�u�/U�2
)/��%�C^�1�ن�+n@����5(���7����G���Q��
P��7�I+�p� �(�8��0�������:�I�l�4+�#&i,M��9J�B	���D�%�"S@��qh5�6��<���ۚ����X�;ȇ�X�\���H�2�
P8	�sE;Z�M������^��m#h[
�+��h�ȩ �¨��t���0�y��"(�Q��b���ܠh�8;1Y���3&�3��ʚK5#)QP����%����kZ�m�Ǹ��z�)������r��x��eQ�<h0����7Y��۴�$��۴��x�r>uI� �qz����9�A���q�?�� $o!�c�� �b`"�=����������8��s��Y�岆:,��)�E�B�Th�(�0�� �)�)�B
������Y���a�{�Z�W�\�j���`��p�ѡH�Q�"��qS0D�*���ӳͷ�.V3jz��i���N�08�K8/�*H���Y�:(Y(�e�:j���#�,J�QJ����tL\Ӱ�A�J��$e�Wr��ȉ��=��[��YP!p�U�3b�(�р�:m0:�L��գH�*'��~�9s��[�̀
B�Ey�ي�>��V2Y	�>@8x��y�����q�*�#����`m�1�[i���{K��^�<RP8J�%ϙ&�B�>4Pp��9ZP�	ycx�dʼnX4؀�*�C,2�O�0
��D`�@�S�29�Q̀C��������I���P��9�`���\P�Y������J�����x�$���$��0��Ks*��*L`J0�J������/�X�뢤!�aP%��!B�ӌRJp
ڒ�z����H�x�܋��2�	26���u�ЭZj�s`��3ʣ����ZI��G �c"7É)����W4�ר/�P�p+��H�`��x�m�*�Z�vz/�A�l����ڇWe�h�p�%�{�#�V�0Q��r�PH����ݬ�  I�01�9 ��p��Q�x]G ܸ�7�XJ*������m����EQPP،[i�-
�T��#WS�ֲZH�޸���r����#��2�F_<�G�8՜x�-I�6�-(8m�����*�T�����b8�_`�����XJ`T0Y�h�����(�XȄٖ>��:�������9��KH �T��h`X`�
�3Cv��T؂X8�G�9i$�&��L��c�����3�P��6
��T�.�� R<�{5 n�7T���=z�UC7�2
�(�-3�
I�s�Ø��;v�h!�Z��C�TN��LY�`PvJ�����Ԃ��H68�T0�2������éNn��e�XeI�\Dx�CL�/�� @�d��q��b؋�PD0HJ���M�4j���`��#�Kx���v�?
`;�G���:���QZ\X��x(J��s5$r�܈�ڛm9�H��I��ѿ�\����Y�WA�P�,���b��1��QX�t-��E�X
�^�8����A���P�Ә�RT���-���U�~������e�u�R��ޫ�<��F����Y��K{���E�X����E���#p8�	����D0�B��Q!2)z�(��Ghi�
؁IY;&�泍(<��k9�c!�I�p�|@�Ѐ���r���G�P?RNk4����4�t�X���cp��
)p�M>�TIWf�00�H8ruj�i����î�����C?x�IysJ�����p�_XM��#eP�ep��0�wQ�~2�!I��ؔ�6����kx ��� �-�B�w8,!
���$�u�(0
������v��A?����ʨ��p�,�״pPEx%
�,i ������f0
�3�9^�,�E1����0�����V�c��a�B1m�%j�jo��
E��'�s7�4�+,���z����g�hIie�s
B�F�+=�j�s��
)Ȥ�+�����뙁��O��	�����#5�:`��|^5����ӪBv��=�ۮ
p�d��R�R��4$b�J��#��?G�����PX�/)	��eIS�K�QKW+ሑZ�EP��uHx5�u��ŬF����vj�@pa�?��
(ohr�z,��io�.�(s�h����90B���8�b��|9����Y82���qE���xo��=��PjD O����qp�(P������x�G�W]j,s����&���h��;S�G1�+��›.1XP�q'z�viԤ�p���.�]�N*�,t��#�`��!�T*��)����p�7 {����x�H!�K�^E��iy	}�%AM�K���
��X������(���p��m���,4�	�T��虩ӆ^�o�
VXN!i&�`�DH����?$`�#*�C[��n�Qkv�P(w�H��*���l��)��M�)1k�l���9�X�-��ـ��X�1��!P�:P����J�o�Xh��7I
Yy����4��(T5��<P���� �j/�z��a� ��G�0	��R�A!	�HM�B��Ёx<�b@	��Px�',�3F��$����]<���0�����@��TA�@�����CBC��AI�C��R��f��G������C��+BB�B������A�Y ���̪����݁�ˬW����5�0��N$��sC�߀��B��BAÂByW`2"T.�4`#Fu�1l�AJ�N���@���He��}
�@�g`A!{5*�f�o�$�@\�:�D!���a$<@��Q�,HC���@ �6`��za|����J�~Y`)�KFm�G�quD��h��@$�
[@A�!����[�����4���-6|^�F��;��(�����L��
��u����������+�49�����(- O�,p0B�|�X��jVW�`�,�
Bpl��M̢�V�ɷd�J��hF|
�@S�P#��=1'1���*�AT3��EEy@���`>��#��DMT!��Q4p
.�L��d�t����.1��3Q:{e��x��pRF���ZOM`�#}��[`1�]���!��v�M��#(ȕNH`�`�mq
D�K��pK3dd�y���[��0���k���#9q�4��pX!�)#p��
2r�
F �`<�t��`A	z!�]�$��u	3U{��I(1a�N(�Ԁ� ���S���&��R��q�=((�$��[��g6SJ��F��E ���7��S���* k|؂*ij�\���h]��#��&CME��BK�lU�Pl��"E�Ђ.�(�|��h���4�-��d@��q���=ԁ�7��B�	1�T�&`��x!�Q >��H��[n�T�W�ׄ"h�O�{�&m=�PeWFU�	#>�"Kc�V�t@����u��ʔSeʵ.1�f]�@�y�c�KA!P*�a�@*!���s�j>��E��dk^��f\�@Imxpq�����������fŸEh'0Q�C��B�D�=��3��@��^˲����@�r8��}QK�q�R�rG 
i�bτ/�3��0����rA�yj/��D�[����T��@�{�(J���R
&��(|��U���n��'bB�'Ĵ�'��1@�!1 r�ȀN����%��Z����`��Ȍ(<H¢
��&��E�r��dg3�	��R@�cH��:P��f+�+����:�
�0��(t%���A�P����(gH�*"�25b M<ÂW��G��E$֓fc\.�-�<*����|q�����	ppG����QC:�|$��	!�[D�@	w8�C=�cL�?�U<���D
�ВB&T�l��܄a�=sZN<L0��'�ELh^L��͐ƙ����1`��0�N9�'@*� ��N�'8��^ӆ`ř���IL��!����&���@
(�#s�@��
rF�Β��-Â���&��E�d�D8��áD3(VTDa�3„"��Jed#�ܜ��6�`�Y�=
�F�����Q�1ͱ؊�)̊2Qի~H
��9�h���y�
��K�@�y������	[@��I ��PBT�qD�P�Đ���;PK沐\\B��  html/images/dave.gifnu�[���GIF89ak���h\wGit9G�5��s]�pLJ)責Ԑ�ӌeӄR�E0�?�E0�C�@?�:$�A�*�r=�_:�z�}}�Ÿ�ŭ,'`5;�e�^�V/�U/q/0�qR�bV�r<�y筓⦀
	�$��˱�ɦ潰ܛ{�jQ�ǚ
D
0�1�[#I(u%,k�E�@�G��p��p(#��%r�dV��)�Sv��o�W�a�w�e��7�ؔ#��lTK���aWlISekT�MYq�|MupRI�B(&>..����������?*y��h�dmIvp8O�R(
	.�.	�	�������ʣ����_1��mWX3I�8�B�2�J��
>����65�5=��z�xa`<xhHȰ!C<0HdЩ�S׼uѦm�t ����+ЭXA��=e���a�8sf�)b�B
6hP0B��"Xp����6D����&*�]����׍�QK�AY�f�s��(��~��a��M�=+$�
t�(
U��RyT��a�����!�Q"�kٲm��!e��)͢\[�
�4!��f����x��ď�;,�l̇��2}� ႅ�$���@��|�� Bk�ڬ�^��3蕣���`���~�|�i�f�8
d�@�����Ɓ<��y$��	(�$X�B	�Ѓj�� �5�]�
G�<�4��!"~X�w$�Hy9���{6p�N�%��XЏlu�ǃ�E�9�0��9A?6�`�h6CF�i���4)��#~�I�y��%��B	/�U��M@B0�@Ӌw�׍8FE�$�w�;��A�/\8â�z�(��z���=0B#@�)_v*
]�@f�_�Z&�+u�?�H������N�	�@}�m�#�)T@�cN�(��f�l�z�	�F �B`-�����v�"��"�j
���{�/�k@A<�y»,p��j�	;�J.1�$�B��@63��))L+�	@�AK!ܐC��ƌ
?�����ȷ��mÕ@��E6F�6��&-�W48��B

��.�(��<57�C7�P�m/�P�	r�'�`@	��4����_���$�@
�@�3.m�3pc�Ȍ���w��C�5��߀��C90@�Pt4�@!D^��%p�X'�.	ZPD�
��9�m�����s�ζŰ�{������:�
��x�]��]��ӎ�1-� ��@z�H�.�𥛞z2�`���n�
������t��C~��G�;�-4߽�Η/{��_}������.��8�pπ���>�5�|�k�.�<�p7����@���;3��#@�w��P�G@/,D�0�;�����0�I��
v�q��;q}0B$� '�"|0B��V��0���-�i��; ~��5ً�0r�\�:��7��
D$b���� �JH�$��أ�S��z�fh3�Ǭ�.`�P��MQ�8�qCf��-�a���E-��E;���b52k�/j���'>��B���R!��b�H\��c;�(Ǵ�$%AIZ�r��X:�F#9��䛷ʀD����)b{�T��,�1�V@HnHꞙ�FX�2�P�,��5�q���E�Ȣ��@��K`tEQ����a@����u��d����3fI�
L�3��D���f�`y�Ȇ\�˺��x��]`���6hZ�׀��!ph
xщ�� ���uLj2�C�A�JY���v�=���]Z���ԇ>���#m ^���*�
DůH��3��%����
��RJ�F4��4��@���7��?���NdT���h>C��S���H�:>���:��f�%t*T4�d�DY�\(�ˋ�����U��u/
XF80�`�ի�.�HP����,f-�Q�y��.uN��S@ʶ>�-��
U��L�������
��԰����:*Yk����{��]���a�}�q�]/�7,�\"��ȅ����@e��$PB��*1��؈3�M P�u/�0���*@��4Qq���*W�����4��4ef��
"���7;~[GBQ�AAko����oF;�P� jR+Y��9�]��P�|��L!�%���:���U�u�Ps�Ҝf�� ���@��9Nκ��̛�ݭ}{���v�Ɂ.�:@��b}7�
�z�N�B�:c�{�+\�$h;�=OzЎ��|]:���n��<0?���}�3��B�<������G?v�/��s`��w��� :�ߺ�����w���i�P��OH��?���@�$d�BI��P�
1��'��
_X!
UXD�����8���p��8�#�� �F0�_�8�!.����pW�r;�|
j���X��+O5>U��`g%h\E(�	c��"Hz(р�ra�3'GnD.Ґ�e�F2A�{���"]c(>�����C�����oHm��*��s-��
����m��V�xO�!�W��O�u�q
�PD����hλ��K|#���M������ь4�l��7}�Sy�"�jq�P��C�D�	����	K�l7V�B "��HdфIj�mhd���h��s���Ŀ"ЁyH�̰�n�Vw1N>�KL
�=Q��0

�w����q�4	dAz&!�z�{2QP�'R>�MyrK=���eLH�E�	q~�T!��`|�D�O��k��sGg��w��)h+�!N���e��\�N	������]�q�J��O+E���c�P{�G�N���! �NAA��ER��X�XY���f�Okg�pw�aS��BE|�+5Qb#L1Q��W��2� 7�T_�Xݰ�0}�
�M*�Jq�i��1�2q.6�b+c��YM%�A�#1�1��6��c� ��F��&e�(V`,��ҤY�e'�P��8}�&�gP�0T(��n�?p�4��H5R��X;����V�a�@�e'a>�&CE+�.����6Q�� 0TŁ$�qd��Q%p��?P,��%��]E�������"
5n"#2Z�eq5u�M��D?��++� �Y�H#�%.�X��U`E")rY�3� �_�A�1҄���X(�x>r#ye#B@>e
P;��~WR^Z�X����#`&^IV"�_�-i�S<�<A<X�P�����#��'~�Z�"2/P
��!����[ "Y "�5\%B"��4������Q�6�/0`$�qW'�+)�V�P�q(���,�B)�u%��X��%��[�Y&d2\Iq�!�"�$?YW?�E����y���H
�05PE��I(*���
���,�钏u)1�^�2*�*�%*��uVn�'�!�2+�N��4��%$��.FR,�^�5^

��-`-�B�U*�e_�b��E�bZtA+�Q�e`�rW��`�P
�E)fa�墕-"0-�)�_�_�ң�_�2e�2��Q��Iy%�<0Nc2,p,��Fa���R���a6Z�_z-�b�cZ�
�.�bRvTc+��'���3$�'�T�y��.a�p
�0Ӣ)5�d����Mk�'�.����1��5�� �VE���4=03m�im�y�Ī�a'`-҂��d�cn�z.��.�5�S�A<��%�!$�.M�H�
-���7͊3��h�2U�Y�M�dڧbR3'fe��'�1�%'��[�)f�r�1!�0�ĖH%V7nf]>1`���	K�j{v9%C����/%�*`hT��3�R�?� ��%�<z���Ȭ��f?�7z�8��;� ���d��l �(�@�8�S2��5�2�%�h�
�y&�g6A�C}�6"�8B>� B��7��d��4��i�&n�#�9%� ��9>v4tiw�;g�F�ڬ�v8�6m�v7��7xS:�fo�B�BhVi�;�#A�"���Z7�j��k�c;��d�&m��;�Vmd1d��l�[<�<�6p�Fo�
�>�o7���A�m�[�F@�;���FplK�v@�o�>�˽ꋾ�67��o�?�þ�Kn��4����ּ��A�f��VA���n��@�fo�����
0@�+?ܿ��@�@�l�=-0;�fm��k�&?�jq�:��&�v��p
	�T`C*�p0�
\ vJ�qQ�c�q��
/,3tDT�1g@sH�
C�v5���sJtD6�t"�v^�,'	>�C�@�BW�� D%�q���D���QG�EGt4�&�CF'�mwsg'�sR�t[ C}@ta�C��ȸ�
i�v�,r��1�Ej`vm0C?�1G�Vlx=�L�%��.�Bu`v��{��,�isX�(�3]�%��x���^T�A�ɞ�p#W��q�@�W��l3
�
?P˻<ć�Es,v<Dvm�������:�c~3��T��zd@}��r���w̩�r8@wF!�цӆ"
K
�
b4|��
܌EW�|0��opr��z�6�ny�3��+Y
	���Bp� '���D ��D���8C�l�M!�{���nxy�s��'(��ytz���pG���v�?4U��Dg&�H���u����C����~I�x�w��/�Jd�4�G{�(3���-O�T��j�
���y�~��O���@+p�ַ1QX���F5h���*�I��I*@V�M|�G��P�����G�'��uHr-KQ��5�a2�K1H|�8!�~�aO�4�pz�td1/=	��JƏ�w}r�'�h�`I����K�]��/�wmsL�w
�-G�a������O������M�>�VO��������h�8�pD�rG�zzD���ժ���c���&�#M�K��3X3��1�-R�����_��J�x���R�Gi����d+s�K��2�e�T���U�ub$F;�O��h���܉"�V]�y�hN�/HqD�#�A���a���	����ؑ�10)q-�O�T20�P}�$Rwr已��$�\�x�W�4$z�U�������p)����qM4��ҡ-B�X�<�O1�Ҥ(*��N�a2���&e�P�Q�B�R+p��U�'���P�|!�DA�Z����2%׿��Ȥ%��
u�ڨڕNM�A����'�Y=y(�ZbND��/��'�.$��Qg�/~��ؑ��0���1Pm9�YX��pWb#Q���/(���w�~Z��0M%A��ȍl�6C���շx'��Q��8�Dɩ��a�H�(5室X!Ϛq�}��R�����TX�ǭ0����&� ��m9�s5&s9��Y�$���%_�(B���~5�4m�-���"C��jLP�sA���A��w���0w�M2q��Uy��)��0��u�m~PحbO�@�{Vˎ2a(����F�Fv���	$����X)�a0u����H��61T+P6�a%�`�0T�3�qu/i��"�w{�������$a�O�N�%1��PvbX��2�j*'r�Q'����}�?P$�����@0)]>D�B���
uF=1��b�+�כ�fY���V�|=4��`���u�T*<
%#Cbf�F�GcaA���/2�E��b�!����I�C�4����k�,u��Cn��G.w.�f'��b#������wccq����g�DؚB�`��[�4Tj<�Ɂ�Fkukk���Ƃ�W�@__
mg��=76�(���Y#4�N(p��Ϡn��0��Ì)�ę�B��v�ص�j�t���k_�@�(0�S�P.�exఀ�0:n~`2a��?n��!��';�B7��Ȓ&U�p@��69i޴̷�gB
��a��' �e���f��TqJTF'38z|�U�:#�1��xc�;��'5
�!x��=�&Ь��H��Q����T̍��[kՊu�*B��a��>���A�_�6,�+	Rn5�Q������e�#O�0�"D�X�87�-���

&�}kpA.��;`0`�6�c8P ($�p,8D��	vG6�#��FI/?�X�o�D���b�F���,
F���c�p��|T��.~"�D��a��<(��(fS�VTq�ȴ�8��Q�z,�
�"��8p�(Ha�*�Q@p��*0��"Ȉ�'���P���F�Q�Ldq��b��^��E���TAF�	��jb��&PJ�hD)-� `O�[�J��M��I'F�:��/��4��`p���.���"��	H�(�#\�4z���"]� ��\���ʑv�����̥4^x�YN�U&Ijr�`��S�0
�VZi}���=w��u�Vؕ4��-ք����}��4	"i�`��F�~`"V��V\s5�Xb"Xw�\�c�آ���Ҿ�Pz��EP;�*�:�48!U�g1�Y�u8ʈ%��b�s]Wc�5��Vp����pI<��-�Y<y ��Nh��,���<����rn�P*'[b&�����\c������
���a_Ե%!��G8�a��;��y!�p��Z��u�r�!�:���#Ha��3G��!��
�}wp�; �÷#�J`��Rh�-���}m8�ށ���y�r��S��'1��l]A�$$����}����%|�#��W��@�C%J �U���y`��A��0
���Wñ�+Ar�@%�n�At�z�:�tH���q��`U&�O�BL��;]C�0z�^�Ѐ���A�q|�)�-ivCC_��\�[)@߶���`	Y�a'����yc<�����:�t�F�� �y��I&�_�J�)G9��J��!Y��R�C<$)�H�� �3��F"�N�L�ԾN���w�\�v�(gb��S�C?���.����?���л.}I�` ���ψO_v��d�/L!�u����^������w�X�~�T�O��Q�8�[P��(�	��
�c�?� �L����y��F����0A\����LY��m�o��S�(��;��6�h: �v64�lg
���SfD_�f��P���'Zp<��T+�M�Ҧ�;���0�7�
&Y�v2��T�bՀ��\_~�JlT�H(�
l���aӲi̩Oي?�Ц���/WZs�t�$��2`��}-lpU`�*`�߮7��2x���l
A���E�Ze�����6%.6���J�x��v�zN�`��e:֘��@�PƤ�o�ƳiRC{������i���<W�:�f�����wC@,���#oy�K��6��!�(�`�NW�F�q���:9.e�g<ⶸ��p$�I���-&.�%�Nr���厏�`w7��&[{�;#�u�Fv��o�<K��.�E�W.�V� /_�l�����k��zV�6�g�o�\\�)#�
�p���f/x�R�Ļ��B�f��?�d�.��.H��ѼhD�9���U��i#�X‡�i�CЁ1G�҈���w�W��X�ʍ3�9|�*���M4�9�k	���3.f d�:Њ&s���f�f����Yk`[���Vv��k0G0�B�3��Lnr��$�`f�]h^n�����j�s�:�u>we#�wZ��&��a\e~�X��ޝ���x��段��Lq���g8��
lk�w�j����*1k�ᅦ��#.o�S��R�k%	�rc;���8��{_��5�6��k��3K��>z��ۂp]�-o`���6/��Ӹ�O�����w�Q
���ݼ���
�|3��l�߈�cr�����ͻʻ�ݨ���8�xF3:����g��j�N<�W{��y��jPW;PK粐\��iw��html/images/info.gifnu�[���GIF89a  �bbb```����!�,  T���������oM��
x�@�&	�g���)�k�&ݪL�/g,�)j���(� gå�(2��sWE,^&�Lx���:����(;PK粐\���5�5html/images/jello.jpgnu�[������JFIF��FCREATOR: XV Version 3.09  Rev: 8/13/94  Quality = 75, Smoothing = 0
��C		

 $.' ",#(7),01444'9=82<.342��C			

2!!22222222222222222222222222222222222222222222222222���"��	
���}!1AQa"q2���#B��R��$3br�	
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz������������������������������������������������������������������������	
���w!1AQaq"2�B����	#3R�br�
$4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�����������������������������������������������������������������������?��p	������y��>q��B?�O��֚FF�ۜt��z�{P#�q������@+�RfV3~��ϯ�ϵ̶0�'����δ���Q�A/e�����[.0���{~yϮH���_����d�>g�;O?���/���<�??�4�D2���x�~�lv�ޑcʅP������ןz9�X���㯯������|������V�F�l(鷎��n��d��c��Ӄ��^�����Fh�-�>I��>��'�8�A�y�?�+P#p���t�;��P)epxq�=	�{oZ9��f���o����#����㯯�����!�@�G@1�?���h(�
�6��v�ӂ{�9�X�?�>�/��>�2��䞀��?:������E�l��c�O^;g'��~�=@����_�8ϙ�2���<�K�>q����<���!i�=zzN���
:�@�O�=�G3�߱�p�N:���}�>��ϯ�ϵil�Ž�x���װ&�+.�v�NA
^q�}�h�b��,�c�z?Ϩ��>��|�1�v������'�׎��;��P)l<
�����=:p;����o���<�??���p�N:���}��
t���~{f����Q�on�8'�ɣ���o��Y�����Y��$��Q�֗���oNz(={`?�4��$���O��Nz�G3�����V2���|�1�v���_����y�~\i���6�z��޴�
:�@�O�=�G3�߱�p�N:���}�>��ϯ�ϵil�Ž�x�;v�=�MV>]�89��x�<���f�2��䞀��?:O�q�3�d���y�61�$��r��s�
Ai�=zzN��s0���>q����<����g?ӎ���#�ƴ�G�� t��ߞ٠�gvt+�n0�>��4s1ذ�oU�S��9?����T��U�29�^00:�ڧ
0+���L������\6�����S��==���n�GP�q�����U
�'?���J�i*2�@�[$�Tm$m'���P?,z�t��)R/�`��x>�w�4�9ۻ
��H�Ӡ<w�X�ر��r���z�M��@�?�?��B-�Վz�=;�q���2)6�@s���u?L>��x�c%��I�"͞}�{~Y�(���g����=qIXdXl�WnH�A�<y��1�H@�aО�ӌ�}*}���~P�`���v�JT�a������b�",/�7n�8���,Rm^0�rw_N�s�׋1��pq����@$�@N��?_���\g�`g;���sօ@q�'�������O��Ib\�����4�r6����s����8��  œ0�8q���t��:��p@�㞽?<�*r��NY���>�Ӱ'���^N9遏����XS�� e��s�x��qI���'h�O����:f�ٌn
9�ROC�;g4��i5y���v=�9'���֟��E-��3�����Z@������0>����`j���!�h�6�ބ����8�=j<�9�d�ݻ�ZJ� Vj�b��8��#K��	$��3�g����x�)R'=�=OǠ���H�냃Ӓ9�|��>�ڟ��~�@+��H�?�O��)��kg�����L�ӧ�8_�쁴6H�9�=>��T�S�2Y��3ӯ_�|����:��O^�8��(���v쁃�������M���B����>�z��=�†��z`7^��I��A�x���9�};��O^b�8?{8�����9B0|���u�)��n<��過�G��4�Pe���'�=9?�cH�8a�p�8���=jr�H�pr���|��g?Ҕ�`ē�c��ϧ����Kp ة�3������G��b���9�\T���^N9遏����l�7�r�'����`K��=8���q�ip>�;A�G˅p;~��\2��`�8�zs��iq�1�8�x�=?
�v������q��S����ʑ��0<�n�c8���e��s���$}�܏o��OW�Cw=H����@�]�t��<��c�{�׭.и`�8�s�@��>�J���0y=��?�.�j����<����F���~%�6|�{(ʀ��'ӎ��qJT�\c��2����x�R�pW��
3�y�&��pUb�$�^3�}=֞�FP���c���p�.��IK$V��̈��Ө�u�^���iɖ@7'���Ӟ����QB�H��
�3�x���^
x��GJJ�_9�t����_��r6~�/��D��N�$u=�y�����j�k5Ψ�&>d�"���$�2v�c��[M�ΐ`�ğOO��ks���9c�c�z���Y�!Ú�z/��e�&���s�oX�<ݎzp9��'��i<;�(_�v$`ngu�;���U��q�8��s����Hq��-��{���nc1G7��S�be���f��5:�)*U9nއ��kcL�$�[�,|��{���֊�YP��1����ZS���Ď��u��Ԗ������e'�� ���p��F�mވ������F=O=��>�	ݏ�~�S��~H-��-�g���۟���Yʥ�l�U����x�1a�d[�s��9��?N9�
�n#
���瞞�����Zj\�I�ïA�>����k���aܠC�RFX�y����k��aʛ�08�S�[����[�	K+�Nr��Ol��?Z��3H�y��͎	8(�s���l#�M�1�H�v��۷O�(o�b��ٛ�s�<�>��<}g�;kcj�u=NRӡ����aX�\��N:x��#$��rFy��d��ӎ;uw����k���#��8?���x�`����۽z}YT�Ԟ���
��6��L�
�G{h''����ێNO�9#�8���2��x�aTc�?N�.�ch<��[���=��"	��w0wry�z���A9c���Ǧp}����J� ��.I�S�� ��rCB��u�O�8�Ѹz(%��`��#�z���]�mUl}��d�~��LT�n��v~Q��|��Ҝ�;C`��F8�?��������C;���Ic�ۓ��R�U��8S��=���מ���EJKuf�ORN3�v�?�J�,�K`�\v4_�� Q���I��i �`�l���1����
ۿ�s��=;�~����#�<��I��(ǧ^���F)\"�3����=(	�qܞ��ש �~8��6�[w#55�K-��!�Cp:�L}E3Ջ?�-z`J��TU�~Fu]�ɮ��>��~8�9��9�~��66�st��U������PĀ��8��{�o�tZ]��&�o����=+�!gc��R矑yU`�l@	������Sy��}?_�>���],p�J@�a�q�~��u�l��[�1����N�t��#lT�\�a�=����iU�\�'����g�@8�O����Mf��q���$s��ӿ5�Ƒ�ۼ*�l#;���Z�,L��L���ϻ�c!я'?(����2B���~��}5�,��x�c����=�k�O��=	68>��ӯO��J��3�:��?皛�	��JF������9�ᰖT��`���n�+T̑�����_ް����`��ݜ�8�q]T���G(R�����s4�`��s��x�?�+L��:�Xd�=?>�s�X��eA���_��itֈB��_����vwR~�<�>*��{H!�+�9���܁�6���~�ӽv����NC���G���z� g$׭�;�S��Js���0.
	�'�s�}s��T�8'vq���_Z~=y�(۞:�z�\�H���;OG�8���~�=?ϵ<��1�@����sǯ�?�&�8
<	����b@8�>�m��‹
��?�06�q���O�?����(��p:PxS��إێ���}���(U$G=O?�{zzҌ8�$���.��!�q�T�:�Oc�ѳ8�O8$��zӶ�A����py��~}�H�Nr@�;������V<q�rq�q�R��e������S���G�z�^�c9=s� �|��:v�G�1��>?
tl�Ȏ�Y��#�?K����@=q�:��J6����O�����zVMj
&��SӴ��e ��Ў�s�8�+^{��3��o�u#�x�?˽T:�k�`�����3������柍���������mAr�>]�4cʷ"��k��I�q�8����U��::ӿ���8��zc#�<��rE!��'��d�����˩�&����3�}?��!\L�r#��_��d����}��|�&��9'����)5�-h����H�'>���R�L�B�Ozv��`c����ϥY����~L�+�2�����"`�##?�l�/����py<��������{���zu��C��`s�$q�^x��J�N�CYᬮ��!bN7z����*[�7�$L�UW$���U�`��v���w����`�#��|��<�Z0��gV�+NG'u`��yJ2ʙ����c��PO�X@�FOnÏƵ�����u���F}=g�Bd�ܑ�0~�s���ӎ��=YEY���A6�T�s������v�8���z�?Ȯ�Q�pH��)�NO>�ΰ@!@���nO>���N:W��/���_�՗E�I�� �~�����s�1�A��_֟���А>���F?�A�{g�ǎO�;��{q��V=<#$�d�����s�~_Τ��FrA�#���v�l�ʓhf�����������3�@���=)vC�>���S���S�c�y$��,��;���2�e{�R?J^1�9$v�Rr>Pc������F@�IQ���_�ۨ�`�*�8,�ry�=�{w����n��
������R�|���N��=�垜��C�rps�����ژ��s���<�~��PA'q��c'���s�x�9���rF���:]�;�I<d��>����$����=NG���~$z
L```c�q��z��w��=�=8�㞜�pn�~�\zzg4Q��`��c�~�;�<R���WۀFI?AۯL�{rz{����K�s�=���/���#����t�p�.	�N?ǮzzՌ�<��c����z�
@�Z*��� :�o��k@�z��_�U|^&<��7����-idzb���=�׷oT��y��>���?0�z����]*�v�P@#��S�����D�0r3�	�rFI'�?���\���?��W�<��O��*����y�$������8��s�[�
J�<���������q�A��:��߃Ԟ��?>)x��w���_��\�	���d�q����I�q�<����,�%��3����X�p������j�\��Q\� H�
��q�Z�!����a�_�z�d�r���d�>�?��Z�F�r���J&$J`78��1��9�"��wd7Np�G���b٫%��<��<��=y>��s�ޡ���01�2q�1��d�98��u'�ְ
"�ہ�y<gұvn0zzsێ��'�+_[ N�*�pI��3�>����3�'r;����{���^g���-%�0<�2z�׹��o��G���y�c�|�����!�>��ˌ�\n��8���3�9gH���$p9��oS���r�+�2���ӯ��R���x�'8�=}�FܞFrs����Ҁ��s����h��8�ӱ�>���.�# g���OR?�� Pp;��^>����7�GAԆ<t�G������N3���<�9 �Ԝ`�?^��Sm��8�}>���f�t�>D��I�?��F�ON}z������v�
1�9<�x�‣�n���p?.Z������8�o����pbO'�O�ޞ�I�7=���ן��\�/8`}A����}��;�`��AۧO��I�pF�O$��?�<�=ߎ��z���T�%�?��8��3�3@��^}�c�s�����?��^U����2@8?�n�ϝ�/T�o��	��b2�B���.O���f���i^+�oe�~G����1�t�q[��_
�sm:�n�r8��O��[�c$�B��	p>��ph�}"��=>�-ʨ�<�R��<���޵c��&F���'�#�^�
ٖ"�v�s���=uH(8�4o��Ҥ-��󎝻�|~~��sG���bs�������3���u~_��q�s�}����J'm�>8Jkc�ɱ�;dg��ߍd�b��2����c�WOyq�Npy'��t�k����,`s��<c�ɮ\^&����h��~,�<�I�V�0�g�-��)�O��	I�$���x?���*ɴ����[�+I�������^e:��M'-=�}L>-�7���ٳ��*�.������V����p�{�#��UӜ66���wg�:�}��C�\/���rF{���s^�TK�ޛ�V���P��I�[)�s����e]�e,O\t�����V���y�����ɮz�[�Lu��8����﹟0-y!-���	�8�#���T�T��,��M�������e���A�D�d��#5F��f9 �=A�~�����Ro��M.E�sZ�C��ޤf0&T��Nq�V���r���	`ĀR	�p9�?���E����Į�k��F9������dw�A���o˿�5ل��j�m~G�}J���$�hP]e�b�FY��z~?���!%Z�f���}��ݤ�W�yla�מ{�����8�=3ۯ?�>�GN�<T����ٛ'V�l|����h9�=}��P���W.Nx�2��drW������JA�h�W���ۧLs�Z��mj۞6�W=Jpq��=:R�_Et�.��n���v������c#����ٹ�n}F,�I�OO���ӿZ�Gt6�
rTw'��O��׵/���O����?�����=x��ǭ��=���[�>���:��9��}�ېx$t�9�Oӧ^��i�IU c�`:���ނ���9#�<��õ
�C6�����>�R�8$��0q�3�;i8��ϧ���縠tv��?��4Xc1��.���>��(ā���ޜ��� S��ר���=���!�i�Ա����'OMԨ�Ճ�T��Ti��K�:m+���$��Ξn&��I�\�Zpx+E���y�1�%�����qs�x��\A�̀�"��
D�&�X��ۡ����zW�8���ՕY׵�-��&+xZ*�<E���9ߝI���Ġ��pq�	<t�����nb0a������mլ���d�9U�팯$�O<�Og%�1�#��{���=9J�m�n����X�)7+[VOn�U9�P1��q��S\OJ�P3�� �=T���$�8������7��Įq������ֽ�5�Z=R�J�,�:��8}��~���g��c;3H���-�����-���'�JN�c�lt�yu��I����w��;�?��R��_8�9�~��T`����Hv�
���o��S�؄n[ܮA�zt��?��~��JDM�vU\`�~�8��Yep2y�q���S��=OOZ�����ۺ�n�\0�pq��۵dK~�?*�|�Ϸ���#3eH��>�]����u���?�b*Fj�I)t)jz�u���8l��ǿ��V|����%
I�1Ԝ���Ң�H�Zd� 2H��l��""�Hn�n�W�>��F1t�����W�S�ud��� ��&���:z�fG��I�4ܘ�� �1��կ�G�6��B��~lc�_���c�X����*X��ppFG���]*�)���S�c:tiڌ��e�Q�8�;�r}9?�6[+�d<f<�����zV���'��EY[sr>��AL>!�M��0�=}N9���N�����3����K�*��9�#�H'1�`s���2�I-��b~����ȧ��I;�jbL�T���'�֮Z�\��P��;���;���_IF������+ЩF\��R8$��ƻ���o<�<u�9��#v�������ԩ$��N�qߵZ��8#��Q�����'�?��ds�A�������Ӷ��c'�������ez�c�s۹�?�<)� c'�9�|�N�B�98��Z�!�AQ� �������Jpv��>���9p�{����ɣ�~����OpCpA�<���?\�`cw��?��.��5�G��_�ML�������%+��F����V��,R��~����?��Q��"�Z�7tz���F��������u�k�3�<ʾ��#����а/�i'9�O}6�ߡ�3j������P@*ҀG�v��r�K�T���f1��
1�d���^f��f�(�ws�*�I'�ֽsI�WJ�᳍F�;w1�s��A��F��W��t�������}�������-^inl�#	
J�,��q�a��8�{�?_��i:��u4.��L����[��w�?��$�*+i+[���Ԯ|�x�|:��};9'v2�������Rkr�ɶ&}�����{�t֯�R�Q�?1��=1�MwU�J�K�c��f-s�Qw�v��m=N�<��pO��?�xs�=�������-�6G(�x���Mӥ�t�.�)�	(�~b?Ҹ�A�W���1|1�a5Jz^�M?���S�9�y'�|���m�z�~��ˣ^&px;_����Vl����x�D���8=z��z�3S�]�2XZ��姓<��O�I�@FrF������t݆el�özz�<����u<����$�i�P�,՟��B�A�x�y�(S�P~����<у�� �9�<s��1�r��� g�>��S�$�Ca,�F껗o=��ןZȱ�粸�����z��������+Hl�� �H��3��ʰF�c��s�p�V��ӭz����*W^����`�����͢���(YZ)�EnT�#�q�:U�HIc=[2\T��kwЦ���M�Ifv���C�y7�{��>{@�=|��ֵs�S_�i>͟IC/�$���o����[��j�(Z�����q�q���Y|4��G$��G�@pG`�ZU�f���EP:,�?�vz<�����c��&�*����׷�qx�%���Ո�ӥM{������8�i�
�V?{s <���?�I}�m�[{��t�Ѳ`���'8��W��c�/3���R�i{T�n�|�k������*���������T�:��m����>���?�?�~���H�FO��ڴ��WE��=�]3������:���<�q��?
�#/��K�$������#�˱)%Z6Og�n��{�cۦ?����?��ӈ�ϯ���&9��]��޸�?���t�N	<��}?�ʝ���3��1��c�󧲰
X������2I���5�X�V��q��o�ܜ�~��?��YZ�m������"�ax �{���$��3d���ʾ'�18����V�FZ��M�7��9r��җMV��F
蛁��=�j�Ҵп�
��B��To�w	�i ym����|Uo�K�:������壕f�U���w_���2O����]Z�>M��6�L7����F@�ߞ�t��XkZ�>�tI����j����{�����P@��n���iȇ>|���f��{�ץMFT�ϡ��]*J2�����4kZ��N�vO��u�Z]櫩jv��S�"G�pC���������x��-Q�j?k�.[�(��Ҥ���}�Mk<���:Z�M��b��W
Rp�o����z���=�ֹO�K�8�^��8�G�%�?У �i��Z�Ռ�}��3便��o�����8�Z��O�$�1��T�d�+�o�$١��ޕ������ӆW�F|�\���ֽ���
5�S���g���=YN��v�b��*vӃ���Ain��ѫ������d���2G
�_�׷�����}��/������&���%��q���y��/�]���7Ǝ��A��M�m&��-`�;!Ff�F22z����S��D�\�����>��5�c8cV����S�s�	��)�v�v:�4�In���ۓ�UK�k/�caq���x�r}~����=RVL�}�Pz����8�_�3���;�����J�	�JϞ+���g[/���'�_��3�^I�}�.�T[("���9��ip�	�u��O�Hf�#y$9,c1=�{��Sv��P���/��f����f��>�ę^
h��$���FheI#��YNӟPk�t
a5�9g�k:�M�v�\��� ���1d�c�S�ӯ��!�[E+�<�F+�����\خ����$��w�F�a1PJ4�u������x�Ru铓���?o�y?L���q��I��̌���0<�y�s\����3�ԇ�O����vp�0|�Qϻ����$�bS��rk������u�Xß��P����N;�'L��+���jPP�Q5���OgŮ�.IS����fO��1�ґ��¥�+�_
o3!�a����W�G�1��3����s�zt�{�zT�>zul����x��N�l:q�����1���Go~ߧ�?�?�鎣4�?{О�_ϧ�^�Z� �waQq��g��M`c��:p�����t�݀���?灟���C0y��jR	�B�[�?�^���܀=:g�9��ip�A��g�;�i���pNO�s�GRx'��?�����NXG���SFG^��1Š^�7�(#��?�Oӹ�ہ��9���?;���q�y�����@�}����:��{�v9秷��I�?�ҝ��?������H��=��}=;�f��hc�7c�����@���pO�;�~S��?��>�y9�8#��_צqH�zg�=����F	+�<��~��\u�'�����)NI=3��Os�?.>��`c���h �NNH�l�Nx����x�����GV�V?7�On��?�3g���L<O��2�@'�s��t��'q�:}9�G!I�l���O΀�$(�`q�?Όr/A�q��>��֟���NѴ���� �
�:v�z��Tz�ݧ�9�真_��I`>a�t��m��}��积>�0�q��g�<���@P\���i�s����{�t�`d�?A�����%�Ğ@9�)1��q�<z�����0y��8�������@����3H��s�O8=?���3�>��N?N3�?��3ӿ����8�������})�x98��>��n悹䑞9<秿N���-�Nz���PA�x)�q��~�7�3�Y���?JO�3�;�S�c���O s��=s�����6H휟���F�;nA�݇���r�\}�N��ǧ�N�x��c���y<��$s�9#׹�֣�����Фg�v���ӡ� �9���d�:ӊ�a��،�z����&��'���GS�>��r@��d��?^�Rm�l����zӈ+��8��c��چ=y�~����c�t��$�'/�ǥ#��Aێ��~'�w�˒ç<�q���/�ڠr2x���}�Q�
 `��y���z�=�|}pz�����<1�9�?��� �����s���%�'�3�q��q�}O���߸�=x��Ɯ�8x�������� �	��Ͽ^0��g���k���z��/�~��=��9�cg�t�}O�<u'�r3��ǧ�܀7<)�8�\PGb9��q���<��A#��`���<	�r,��	�G�<u�{�B����Žq��=�S��S�t��(�Q���`/|�뜞(0I9�<��OO��s�|���s�c�)H�'3�{����ѐ	�/|��NH��~%�h���?����ލ�8��g?�>����
�M���ǹ�\揔��$rFx���;t���O'n��JR�$`x�z�?��^���(�z����J�4��x��~����Iݎz����)��n�n{��}���9����~�^x�>��a�T��������i )�x���=E;��`���˯�Ґ�3��23������ �c���'Ӧi1�1���u��9� �g vǧ�G~@��y��H�	�9�{�,�@����8w�׷OLt�rT�d�{�Z8�9�8�Ӷ:t�:f���PK粐\�L���8�8html/images/jim.gifnu�[���GIF89a���������������HHHFFF666444|||yyy������������������QQQNNN


&&&$$$---***������bbb___������333iiifffDDDYYYUUU"""   @@@<<<���rrrnnnvvv���KKK������(((]]]000999���������,��E�@�G,�X�g�<)H%��q:��lv�eqN�.�K�z+%��í�?���LljU��N�/�R}R\X^�a+?a?8��H����'<8&m8'�&��8<�c??H�+&(">>//"5$()��Z,o���?����<���?&�n��?��Zo�<��'�&'�׍I<9$55�!.--d����-Z
v(ܱ`�B> H��_��"Bh��…
H�#v��E�P���Y"G����[$v�L�iS*�
0�mj��ՈF-@ F�%DB�Z�_�e9��c�*T`ȀA��x ��f���@�"h�"A�6�@�t��0JZ���(�#�����"��A�@�Ti�%�jYb�>�"Hk�Ìa� @,�*v�^��Cm�~(���>>���C�H=���9*�iBe�٣�2Y�8��L�2U�a�@�b)R��?"Bi~.^Ȫ[�X�d�006@`8 : ����C3���.��P��L��JАr�ta���%&X�I)*5��	�pYe(XVY�@�h!ԖA��6�6���D)�Q2� ��%�W_�f�
 Qe���a��M64vG�Nj��
*mĸ�2h�Q\�j��`����Q	t�W�	�mVXa�0(8!jJ�l�dm
��aA�9��Gv#��	�v�A☉�9%�lR
�Z`��Zp�BBPCGI���VJ۵d��B�m�@T�h:�
����3��@�|���.�H
�J�f;���`)N�	D��;�lӧ
��1���D@���#�P�B��![���X���&�n�
��q*�Q�����ЁI.�'����O��9ml�Ⱦ�TP�
�P$_x�@]��.r�6�^ i �4D�Ba*$sq���P�(��(TF#��݆�5��A"�:r��-�:pF�'����g��� ����nmKʼ�4U@t�m��
�^k.����\� Pd/1�bcШM"Fk�w��{N9h0bI3��&�`��fl�j�u�i�Ks��P\���U*�_�")-�{��#Dw|z&�bp����Fv��{c���:�w�wN%>���@1l�(@	�����
9h�F@��HJ!�ݺTp)ܤ�Z�p�B�<Nh�pECD�j�;��jV0��a 9%���H�"2�����T���/[�vS�

�|����L��RXP�"G�7Gdр�H�M�����"��
(`�0�Y��GGj��%�Q�P�%Ѓ���D\��ul��0V@��]�Tb�$t�`[$�
N�	���A��p�OHAH���.��a�h�	H�6�ġ��V�'�H)((@6�B�
~�ʑ�,(���@�8��k$Bj�6*��h�B�y`)5�X���
��G&�@"zDx@@�+(��`V5	Fp��R%Xf
�ɅܠGg~��<�N�NI�	���r�*��~X$UɈ2�b�``�u<VH�RC��@`k�`H"�A�
�
4���I%�H�E�O�����'�A� B��&�@@�����hXC>A�6N���e9�4$&��e����
?�@����@�B`��s!�9��x���n��Z@�J�%R�,��!P�;�*LI�����IZK#`�	I�;�
��(��	�Rzr`�X����X2'��ڀ��R@�j	jr�2�@�@�4r`���]0�����'���8`Bp�I@"�Є*�!'AD�N��P�@>Xe�1^
e@@A\�쀌��`ɧ7^` �f������l�"��E&�!�:`h>��o����&���G�AR�A�.��ƺ�	�xI�1��3IP��EH^$\��M���A���U�ⅣE9i�3����$n8&�蕨HWb��K�QZc&0�Fue��
%��Q����d�юy��
��`6x�i��$ ��V�Ǯ�t���5:��
�F$�f
�S?��jq6��%M!]Nx���
�ueČn�zx�0�4\єEM�����h|�ޕB #`/��K�d@��{���XyC�D��fŶ�|S��7J+� TQć0f�Z��rpq�p�.S�
��R���*[�"L�i�Af�������p��w�;�t��ɄQǸ�?��0���Jv��
��Y�r�r]J@�!˒�8 �f�B��B2ĕ| }9�IR"
��NHMI�`d�J�J�ab�uX���a�U������p�h�%�A݂��7��t^A��
�T�ނ{�*�
ș?�L�x�XѶ�z����9y�=)�a)0�r@|��3�hb���u�]6���%*1�A��֖Nٛ�-�q@h ���JvR���5fw�I&��CJY�*V���@���\�u
 3�2>�Bv�-��
h�Sb*���5�?��J�sp/���m�&<m��t`@K�rK��0��T$n���k�o�vk�J��)���7l�qO��bn1)��.]�!0�0<G�N�d5�K���
�ք������"{b�02�&[� �Q�r7�ð��$3;x*%�6��9���a��5`��g�����3�c
o�"2/�#i��"���F�`�Qq6E_�$tAu��V��E��ă d*�r$D�.
q/� ]�Q"<�<���(2)"E�]�fI��	��R�	J���-�51v vP��,&�"R\�6_�*��.�8�
IC'�?'0���Th&��<C<����j��'}V����p��fS$�0TC5��>��ǁ�Q90
M�wۡi��r�?�)�
\&�U<5adE�Tjrx��,6߷	po�X�%��R&�./	a>�=FR�id|�������@<t<I��ac�w�d	&IH��G6/M#,`fMM�\�.��.��?�7^w@��`=��B+�4�F4P&����'SpU�Pf�IS�Y�23P�uBtW$U��Ry�V�5��`X=X�[G.�S.������sB$m���0
'8^�t
'`,�n�Z��_ ?pR��z�ɂ7PKn�\�D�98����}������1"al#�T�0��.�h��8}�+,@�1<��
�^�Q20r�"�Q2B04��tR=�9��VӔ#�_;(p/0P�D\(�\K�RS�3�0̐TbJ�W;j`T��E,���q��!P10Q��'or	��#�t�W(�YX ���[J�0`D6D6�Q���W2Т8�����P|`(D�W6�'iPJ�JE��SX� fHU-�3��\+a�Ti�Rچ�r}��_�Bv�_G�6�,!��Q�R��{�Z��HD�JI�P��VL���e�	QpH�3b@	������F}�$`l�A�c��b(���" Y�*�te��G+�W�T7Iu�GI$5���;zW�P0�Jy�3��<Qf��5�ЋbP����A+�0U�"a�	�!�'�d��/v��\�S	:2����v�)��?*�`�i,9jFS'DA���T��� K�x���;'�mӠ;�Å�Oݠ&�
�V&=a�&@�qP�|�a^�x�v04�+tR�-�7�
VW3�@ԣ��m6D+9�cI�
kӱ�S�	3��k�~��I|�ʁ<�?�ж"#t⌝�w�"9�8,@�W(
|�&5���p�WӸnys��Jx)�@TTWu�T�#��Ti�a)<vbCrR4��
��
�q�<q�=�Hh�k��(�����S��01 EK�::�( �x���"p��Z6C6У�#�A"����:�>�"�x�K@��+�p�NSMT1��{9��#T.�c)����5��Qk	�q/��6�l�s��&18.�4b	'1�״{c�����nV�oV*5s��}��.�v�p�t�k^R����P� -7��,�3��������8Ч="|���(��(5c�;�O�͡�0@*�sZz�2E[��%�&��=/08l~�����q<��4�Qt�G��!|����W5$$0��V�u��Avv�)�3cA!�B!�\���5�y��ǹ��"�`��i�tD{B�c��F'(=��O�P���5���
�:[eS�B�z�-e'z�{BI�.G�!!@Z8N�&ʣ=�C;m1�/р`�BЍ��4|J�R�:kxQ��9�� OB}O�)�7}r}Xv�ƒ�����Ajb�BT��v�1���v��Tx�7�7|@��Г��0P�.�by�I�SR}Y=}-m)���F`Ӧ7&��@�B�>li^V�&*����j�'z\|�d|�A��x��U�U*��$ַ�Wr�;�%�v�`	�F�
��2L)��/��~?�xI,��H @(�'|)�|M$��Rt2�}_��y���*�3Ǒ��u�P��l0�W�5|�hY����VfE(�J���,�(D��K^��c)��-�| ��-�ua�Ԓ!��(Q|��6�~�++��iN���B�U�b,SA�P�"�����XJ� ޒ���)�_V.b��rz��@�@p̫,Rw����<\j"�=a��fo�'U�(~d5X����Ւ�(�.��u�.�.UJU�%Բ��. Z8/�s�#3q/�
ݰ�e����{60L^�R�F�2|�ak�3��R��p6kaAd����о�/�!"�
���-��f�i�
P�x0��9�7䤩��.�0��HJ]5۪����b��"����* �Qr��:�r!'�k-J���C��$<G��p^fK
�^V�'��˧e�vۨN>$��6`��q-���1���@��{3�*�	��W�
��T�P/�<~���XK)@ˡyk��$��r�d-���->'�*�ލ��$�$3��/`�m8��w�N�ټ$R���w8R�੹Ă�������u�S�f�&�D�~^m�WT!p37���h'!_��f߆Ѵ���j%�X�H]�`I\Y��(V7�p��`�:B�U�A}��qo2�4�:�R��Ԏd%��-#�#�si��j��zu$C�X��Vfi�h�gM�Si4�Ζrbga�߳L�:�3>��9�6-�������;���j�V�'�>Ghp�?�S�[�w5…�@��ѐ��u�����I�.c7�SB��v����7P+�	/�;LH�9�](���P�S�"�,��w�Ȅ�U��â�C�- �2�$�$/8���������@�2��j��-<�O�f��p��t�ZWU������y|V�Oh1��3Q��07�s:�_�����"�`C�%��gg���!�EcC#�%A��crGAu C``@Eaf���ť`��c�¤��G΄��w�·�k��"��Ś�������[���Då!�!������ca�Uchhuu i��Reh��C�$J\Xa�
e.P�P���6WX���*j����B9
H�a �	���t�F��ldx��h#Lj1 h@���U2`����u>�S��*�@0��C�_ZpT(k���@X0���-y�\�q"9;p0F��4���<x�h��삅$!@@Ƌ!\����j�P�pu0D?zܰ¬�!1ZDK#G-:Xs&X���Yt�a�D�2�xBD�L$F��Ճp�A�9DX�ND���u�"E��blh���{C��jU���n�b�q���@o-�Ɖ�
d``5ఫ���A�^@�0�DX�X*�]���5	����p
$1���EA�k03~a�P�!l��9�hc+;�,(�_p0"lH��آ2�0a/�2��6��hX���Ӆ0Q0k6��V8`!Jؠ�J��Pb(�r�X�B�ռ�B�����#
��2�!l��8#*�\�!�ҁ& ���!�$@
\��$k( `�dQxarIl��fL�.
��d<�e3�0 ����^��B�"��2�6@��,O��5dd�����l+�����h��'�@�A��_�� ��D��4
Eẙp҉08M�C.�eC,H!����
^`·S���u��H��@3�ChA
 �����we*�@|QkH�Z�aeM���aTц6K�:�NE����;���ޮ(�m��HJ��)Ol���!�t��БG>��6�A�P�b�d!�^p��ԅ��,HKK��u��Z���NH��*𣃠bH�ȱ����ċs����#k~��~m��
F�h����b&�~�����h�܀�@���)�@ʀ*��P(A,4���t���
p���N���d����X��O6���f�C�0��Pa\ɽ8Ҿ�
�#0��A'1@1pIj��BCF�0�\ 	P�SP� �3� zp�?��2��f��&1�(�n�'l��!!Y�0���N�5e�Ik��!̢��Dc��0E�1�_\\_x`XN9��.�
�BW����"��F�*�N>�_
���0m�Pf�f\�>���B���+$�b[*b���( @
.��,��:d��a�*Aɷ���D-R��ޤ��"_a8CI>�%�X�:���4�0
9o8�	8�������`P1(VгT���j>����=�Lt�3��ZzA�6G�z�I���G�t��4��r�Ir�RY�ǘ���5 RA�"p���_ �=��/9�]��V�� �A
]���:#Rk�s�4��px+VI������X茗��.hH.	[7�Al%I0P4Je��-�g��i#
�X�O u0��K]l	Z\"I$������,���!��HD+�0ȁ,s��B"�(
C
_��:��/�Q�������R�loIV����"�t�Рҭ`�$�
]�ֆ�*c
t�/^蠅e���%!�˵@3�*A�(�5ep�����gI'���Ap����%�&I�s�j��Y��P�=�o�D�zB� �'�����g��,f�Zh��A
rp>
���h��ۓٸv}|�×hy����ck��a��ȅR�̖����H�%�[g1��*��2�u���D�@((p*X*�y�E�؅�\�ۘ��A�dF]���Ԃw�a��yk�S�c5�AtX�:@�!1�S�	�8s,���O�
vl ���x�K��1�1$:��<��eJ�6��
@��$k%���v��w�y�$�m�! �Y�&2���H�P7���]3X�^�k�Ѕ';�jd�ƿx+d�z��@%+P3�=�v���S��0��r�P�1ǬpS���"J��Z6֖
FC�F���a�wU��:~���
�6�Au��25��9(W��S��b�� 6f��flљ�@�w&VR�DQ�K���ث�; �X�U�z�@{׬�%�
0�P%Ѽ���=�q<z6�I"
@��3�`<�u���Μc3�A	�|���K�t!.Q�h��תX��
�6{W"�nus��w@	�B�A/���rvG<ബG����@ٖ��M��[�zn�~,��x?����u��’PF�����D!�B��M@9��<L�
|�	�������l�����.�^�R��K_���j(����|ㆰ�pM
(K��Bh��b�f�-��M:��=@A�!]l>L�����O��BԠ��< �d@6�($�ᯰ,L��*p��J�@�l�B��f�����!�o�0O3\�>�	�c��4��\�\�COm�E���^��/��K	��@���
�
�*�fzH����F`�(���K3Z�}�L���m�P>^a�$AP!	B'l�ͪ���EAB��N�NN�r1I�~���&њ֯lo^�MDXBD(��@���SF#C F�\AN�� +�48�*a�$JvM�����N.$�,�8�8��"cT�@(�o�j����.�\�d��)t�>�Bb

��'C��)��4\���,�R��xB�K�l��^r�"����DpQ�1���P�c�O�
��u,#�b��a4@C�F+2h�h4D�T`R�C~��f�,���VO
譖Xh�
�L��@�����,�Hz�,h���G؃��M9v���2`V�F*��
�*�A
��,뢦(*)-�Xnɾ����~��|l�`�S�|�H�DD�x�����4���1��a�H��T�4�ad!<3^�l{�k
I�.�b��
�k��#R�"�M��|�"�c�o,'���`L
[���a&a�a?i%h�&C�1���|�������`���+��㸼����X����@|�����(��.:���K�G��&a0`?��V�h8�3h�r#���NqH�!��$���kr!.x�WO��z!�‡Th&v��fF4Y3�O�L��)a��L˔a�*��0��p��F�R��@������YN#$�&���A��G�H\��z��4���Xq4��
��R�ta\Tp���Q��`��4 ���"l���'FH��K�z�b�Kn.
�h�* �$q`]D��O�0�3"'�V�R/�L�'s�,C�D��6¸�'���m[+%o�#�'C�g��Py�fd�2���G��4�#�s*7?�?�3_9� ����|��1˯L8�C��HNJ�@�p�j��"U�\��x(D4�u�C�Vq�"�*��*�S��Uh�"+�!���l�洏�+�"�t(
��*��@O�����D A�G �g=�b6is9����^3Re�27R#�UV��01��M*r�9��$����D~8L$pi5�-�b2ÁR�F=*�I��J^�f��\ڳu``l��”*T*��*���/�6�,�����,x@1Vh$(�\n����8̱`Hc{L U%p_�ȅQ��b�a�	F#R1�_��e@�*E1�ܔT�������'��Ɉ
�VN{pN#�k��RJ'|>T ��I�d=��ڪ�	>�0�Vr��x��q�`4B��ԖnB �y����J�l��U@k�˰4"2�<'�SGT讖w�P7I�l�"+4�)��E`W�'3?����L.���jN����������&=��Wg��4�/�]T�i�>.W������H^Q1�pH�N먎�@��kN��ӏI���I�G$j#""W�����]���l�d��"��"��@c$D0&������J�0+���
v�!@׬V�S�#�$�.�1(�5�6���\H�d�i0�:V�(�NZ�g�r5��Gha�Dg��L4B�E���P��Xhkn�tm���#�K!|"�xc�Ś��=c֒�(r�0�\0�H�"Ax��g��5#>c�fi�>'a~�"8v+�J�H/%��D�e
Át�9\e/S����=�#�H36@��dV@"Yd `TVa�B��"U�Z��ۖ��fR��ՠɒ�K��R�-�,E6ˆd��E�����,F>�)2�yK^��W1��3�W+i����6���d��ڀt��� V�a����'n�(#PgXG�.�A�J-Vq[�%AZ��NG��X����M��	J���Q�`����G0��gsZ�p����pk@�У��`�rw��tZCu��,�:�=�$�RM%a�YQ+]���0$����#���v�޸��@w#��Z�"�A1�6|�*���L�~[T�]llu��\�U)L����a�9��E��%ERB�,��&�D{�r�{q*�
/f�<S�����ޡ��LTլ2�%,ľS-�`	�����Q�r��Mo��.�l�z�Ů˾+8�+��k|�m6]�2>��ꁀ2{�@(H`9>�*�uca71D#�s�EŁ[gX���EKp$��m����|"5"t�\��b�*�Q�?�j�3���`��bAxM����<����S��@p�(P�pδ�o�ck��,��k`�y�O<��Xt���BD"�B&g=���0_���� F���G�z�y�
���<��X�"8�`����6��O� ��7�j�#�Z��zS� �e	B1�����+�씳+����u�X�P��v��<��1Ʒf8�zW��le!!��7U���d!�/����j6F�A��1�
K���<"�x��>&��q�<�(�0>����iH�S��qݞ�	���,����
�g�ў����]�VU�_�%���z��O�[��f��=�8E�̰�2��KM-���Oq	�B��bAݡJ�,��nUלHu���M�X��)�<�x[1b@%����|�E\P��
�4`��D�w���)��
*%z�ft��@X��m��\J(���(�$=���F��,��Edg�^+!�Gl�r:�F!h񪛂�[��.��C����':�
J����_�Db˸��偾�d#�P !������l��T���8|�n�������>�V����L&n���_���pn��5��?����������t�H,26.*�UX�l� 8x,�8!��h\"|}`a-,����(,x|(l�P�p����PT��$��<.�	��
�����x_*:�;6�x�TؠĐh�$�z<��<����xx�(P�#2�j2�Ã>8��A/Z�(c��
ȒU�#�M�?��I�&�/�X��Ѓ��c:�˙��'(X`�Aċ	,�@��T2`����)M�|� �SQv ��À���U���ېd�yS���o<8x���RH����r:�܃��
(D(A�Dx>�p�JTt@�u��|0)hP�.F�1q����ax���т�&~�K׌!C.ar`a���R�^�������
#{R�j�H�@Pi��S��2;y�
.,��226O�`P�F��P7i�a�ty�A+Xp�$�!��(Bu�5�M8Sbm��	��S���}�TNL!��l`�	�`�I�
i���1�
�AG�i�2+�%��(X
)䀗���Ӈ���	p�x� �@�d$DP@�����2�@��5�`� 2mT�!�ŒnJ��0�JT2x�0�y�
(DA	�`
J���	��w���&A(�Pj<�#p��������?�
`�,�¢�#\�� ��m����l��B`��^�� («�6������;̰�?f�a7`�/��@	��a�c6p�	"��Y@�Q<D��A$�@AnP��iU�3p�Hj�Cr����7�c@)��:�Y-�* ����ө�k"�����>�ar�P�̰A�W�!�C#���j�4�CbȖGo�pFq?b�� ����-8��$ 6�Fx���у�/�q����+��Yn���+� ��a�wnh5�&|��A iCo4��l��B�PYh$��1�S4�p!���/c�@��E��^�0B�@��D�0B �|3�ѡ8ΐ�Ң�Dc�Mp`9,�0�n��P���@�q@Z�b�`��G� `��6�4��E$�@��2D�
H9 ���$���j��E3�]nj�5��~�bܼ�E7�1�����$��?f��p����ta�D N	�ԯ���((��x���U2�W�4���`$(_�R�
�
P>�W��9�!G`E��-�c�����3����	P)%.Pj"D#pB�o��:��&�@x�����
݅���8!k�˜<3p	@\00�dМ�b
"k0��0O�"LT�%^��#�!Dm��ɮ�H��0�PJ��,9:��j(�"2��h@H��������~
�cA�(*`�����q5<���,@�H����S�P��!l��u�CQ���h�nU�x��9���?�
X���+��
���̼�1�Bp�Ȫ0�(&{������\կ��1�axd���3�IU���i�
P� ��v8h����m6��@
 ��LZ9��	�d���xA
L����pAQ���vC��*=XUH9E;����&vt!1�l��X����	� �e@U�@6���I�
B�S6B���a[e��LQhK�":�ȔP�`0]������8��,��y�\�>:cFV6�т�
s�d&'�(���
�+`K4`R�@�b`K�U/�^�4n�l
�;]�Ʋ&Gh�)ZQ��	 cC�P�W�䜫޶������"f�tx�Z�rp���3��I�6��n�Ps����	�"��vY��J�z����(�9b�n fR:p: `X������ k�-��Q���A�{T�vS�/�--Q2�i�
H�<�H.�Rа�3�q)y����T�6H�
�
� #9a���)@�D
�+!~-]⸜��u~�=hɪ|���%�{{���E��6Ft�Tm� �.Hž^��( )��#~\�. �����J1P� �������ꪡ�y���e���8�a�V �0�x��;�c�H�4<y�>�:p)�r��++
8��F�q������x�fF��?\]TF��`CDPS0!���{!�C1}�ꈮ��G��o"ՂD%����P�}8@�t�6r�N���Ѻ92�m���_ߺLhB�hr(��a:9��%Gr�Y��L�C5@����EZ8xSw �`�,@�'�@���!���i�.LYvt)&09���1Н$�ࠋX�Yü��Ae/`��@T���v��@l1@x�Z�J@�@���`�9
�=^@��\��$Ǵ�M0�0����q�@�xF\�O���%�߁�j���@�@���X��@�L�Z]��^�@*XR��txEa�9���)BE%M�v� |� �8|�:
p����c$�W����aE�;0��@	�r|� ���h�]��NPTeþ�V�p��d�L��n
�Kx��D:X,�Iq��T�@
؀$�@����a� ۘ�x@�<��@��Y9t��	
��V�}����a�e����̈́�@I\dX�x�טM�P��Hh�␜�3�@1Q�$,�X�

Ė �_$P?D����	����Q ��х|�9ƞ�M�f��$W�TҬQ@�D��Y��i��}��;���TV����d�s���,�#U�J��
#R�6M�%C�ݦlC�$�u���$L��]`�x�\@��Od&ȀE��dBxdQ;PK粐\v*�html/images/note.gifnu�[���GIF87a  ����������������������������,  ��I���+0 t��cY�)��N])<�,}(���=|����%Cʕ��õp8�tʲ�^+����@�[��j�8;qh��;���%:�?r[I~��~��z���1�����1�������E�D���9���y�����oC�z��T����p����$i��:�;<�B����I*;PK粐\������html/images/oxford.gifnu�[���GIF89a(x�������/��OO�[�V?�#����+ؼ����I����[Y],(xC�U��U�{E8@�=^�l[<��*%�/M�,"�.@֢l���H1�P�X!��,
����4��XСT�b%�ڸ|N�Ǔ��T�9UU�����������������������������"z{������(��$
���a�b�(I%�������G4��(��Py��Ũ�������΀�۴) �y��"Mi$��f�śd��D���͵�����GO�4,zr7�����R�\�)J�cU�ɜI��͛8s��ɳ�1\@o	
골ѣH�
)c��ӧP�J�JՅ#W�j��5�oR�L�:M�".�0[�l[�"��5�6m�>
��m;�_�����ۯ0��%�W�^�z�:��W�@?��e[��
{�^�q`�n���[���L+�%�ՠ�ssa
���\����I�H/�Jޡ�sd-�.�EA[{< �����A�p�
���`�}{��;���}-��_�`����� )`��A����Fa�7�A�g!n����2H›
̴`a�`�-���i@	6�A�A��@�	��?�ޏ@B��)Tq��X���8�U^�A�\�@��5ɠ0ߘJ���Y�� ��t�	'���ߝu������v~((���y���*�a�]�$��.'�P`@��i������驩���᧐���Hf��2Z릙"�뮼�W'�&����$���睧�>
��:;觋�*��Ω!��뭱
bx��HB�ߦ��xV6����b�*���+m�>��̓�����BY�ur���e�{+��a&
"��wa�Cih��9'�?���6֍lS�&�r�,+��1/�,�Q.�q�+�cHd��$),-��*��8�4*P0e쬧j0KK���W����	I�����dw�t��s
P���R]��-�4�2Wl�	��-IHI�%A���lD#Ja��;eG.9%g?�6 ��H���57��*�䠗N�+��4�-��кu�Tw��6׮������/���o��E��Z�����m&�<;�3t�r�ۨIo�e۳�\���<���7\���e��V �go~���_�Yl���t��Ț�t�O�: ���z1��#����y�/�s��G;��C��]��E��FC��4�DZ���S�"
i�@O��ց�hjC>��zH�;�i_S#F�qMeBP�Ł7��B�ĠE�	z�N&�!���Z�]k�fU(y%@o|��,�X>s|`��-��]^���Ek}�����Hc����BU
��4Ғ���!�*@z�R$�=	�P��a��
�HE�r�$'��([m��ԡ6��~u,���~@�Joa�L�@��3a;��p��i�+��f������*���)��;�j�,�)�=�ʔx2ٞg��,w���~�G@�N<G%�0�W;����=�!�6��%M��~�����f,�Ӌ\2�Q%��m(E)g�0{�`\zz��/͋3��Q�4}�[�4�?��5�a�P�T�9�|X�
 ��X�'�&��?�H%*@J��`��h�2�:�K� -r	�6LĴ�л��p4J̕gw{��6�k@o2�[	2fU�Ej�Cg&+�?D��ͬf1!�7�`�d�\�pf���l�P��1�Ԟ��#9�lg�ڲ�r~�i�����
n 4�"�!�g�*��JG
�i�u��C�,w݄�,!6�z�M�E�r�X[�U��5�zKp�]�ob��<���Q�os;\|�g�u�)�_����r�q�M0'D;ިe��ga�Pxh_�	X��[\r1�
3���~���h��H�:�!W����5	�L�|L�}i�Yy;c���wcL	���Lx��^`��N�őkK���v�GF��{�.{��`���L�2��%Ps����/������R;8�nλ�J������~V�L��6�φ6�j��<���/��\=��.f"�{����Lה�$*`�'T��&~���aj��T�K�5�U-�����._R[�McUL�g
���z��~��f��{�i�H�Rh���GH1��GXQ�4ؑ>*F�i��yT7b$^���ټ�D�}�`2U���ۀ7B$�U�8�� w��lh$��@xq����%�>� �T��U����pJa�5�l��`�Ƚ829Y�3�PXw$y.$1���7Kr��S$���(==�9Ȍ���*K�蓮�C(��zD��)`LR����E5��Mlb��A��gD ��S���(v�F�ރ!��h�٥Ü�РIz�r>(�<�9���;��%�T�T_c��u*f��<ױ�p[�2�~R%q�tm��9怮ù�q-i	^��Ϧ�����y�H!tj����Mzeu|ު:~�oo䏑��$~��z��!+U�>U��}�,��X���}탟���ɏ�Ȉ�ΧӃ�h����aǦ�q�7|Z$U��G�'��1�N��oO$����W}�,�4���q�{��d˷�gJ�+Ą0Zǁq�tΔ.䤀��D-/�M��}B�GF��!d�P��/�Q9���J��G_�o�`�c;����J��#�WE`.�J�-I3�FhԄ���7�/'�z��p@�OT�C����0��Lag���(s4/��q��/�WNB0�3u	(�T����D%�x��+�L��|Β@)K��k"Gz����q]N�H �D���H8��{n�F�%�N����HN�H Gdo�HS��T2��N�B*�b���y:�DL�ċ�x�ؘ���^��
�%��d/�o�8��$P�ɴǨ߲��-�T�b��x���@�؏����ȆQ�-9���oy!�6>��3��jK@�l)U�)�S����qw��l��>��S��RJEj�=�Q�S�?eSC�W��=�fm��4��~ �=�cv�	EUUEr�wU80=@9�@���a�@��9@�
F�v
)��UvC�I󓐐
/�e�p6��8��%�U/�9ĕ7#��W�`�yI�נ�n�w981���>i���0���.`�ĥe�恛SU�ax�<��a�ٙV�+��ᙩ�V��:�B���6$D��Y���[e�>��3�"(��w��x9r�99VV��IeI�z}�c�����A6�6�4K�7j�SP`�ieǹYͰj�u9�zZ56Q2XS]x��I:F��i:oEn�@^����	!�YTÔoE�p����3�
�|�W�#�y����`dE6c�Y:7 [��'�a��&p�_܉���c1�H3�&8��4��v'f�z�
�E���84���9�I[���1��Ɩ)za a�-�Uy�faQ��u�b�b�9�[�尙�y
D:	Z��3��:K���%�Et�9�������f���bz��%P�a`c�-v�Cj��l9G�c�%��!��7 gb���r���4�
���P�{𒫩bl Vi#����*���Z�p���QG����~�\�z4��\W:7�

��	�sU���ʨj�����F��
�4�aG2��,a�`��:4��Oc�������+��)�Թ��C
����:
����:��*���`���
ѩh[<k<k<Mjh�Y��װ�h" ��F@	����$[�&{�(K<��%�0(�9z0K6�g��gx�h`F��s�dfgm���V�);���^��A/2�J��9�H���r"T;V;z�x�1;UI��/�U\ێ/��S;�M۵��<��P��c۶^T_�5��Q��i��������П�!�PZ&T���\¥��+��rs�s�[Qַ�%�wk�0r�E�'#���s���K��F�+�!�k���
����۹�a��=�3����!)�m�i�������i�6T��FW�6������{�&k�m�sk��3*�Le���P=�&R&"���	�;���i�����6�?����5ƻ�@m��mk�-�S~�
�I���k������j�C?�&R�un��i+e�A�{i�������C��Vi��`i��3��!��h���j76	�&kγ��"H�h��(q3He�,{�#�(A�|�g�M‰���P�,�GM�g�~h�K8��'�Ho6������B���!R��5��7|��c��qyzyd2v�q�!fXƄ*�EV�1"e�v�vl"</��„Ғ�Ï]�/h��"��uqd{f<M6�ρw���%��"W2z�y�+� w�E�����sAg��Q$9$C�4��9�-�dFC�1��NҔ��xGT �Wq�g�n"!��yot�����C��B#Gr��V���e7Bu�z�
�P#(�vb[3�;�s�QC@�$�$<�P�a�g.�\N.h�Q�x� p2y�.Z���G]'��GJu�.���q�jgs0gɣ�0'ˬ�
���HR�BC;�sBx�rx�Nprx&�%G]��w&�7E݉��yX4!���Aw�9- x�6�3Ɂ�-��]amϺV�B��wEbP�@RK�w>�$��`�����XNpbԾR�a�X��-��Lա��yx�x��ѺV��Һ��[���
e�v�]�;��#��'�q�!UR%���1�QK$LJ�%�{E�Du��{^�&oҾ�G�
������q�y�ш�����M)G)��ɝT�Nx�`Lْ���R��-Œd�a���!�{�
���(h�����Mz�Ў����������Q�MV���~��`�N�dLK���P�	����n�-�.��K��
�
��
��33��.��0�2>��6Px�
d�׭�20����"�W<A�\'2�y��[��BN�RX��U�}��/��08.��*dQ�|��������<^|�Mr����HH,�%u�*����ǀ��R~H��h�Cߍ�x娊�
"��4,�����U��Q��C~㔝�x��v�0 P��|���N�}��E�޴��Tl�'��݃�b0ϴ�s����V��x|��.�DʀAU8{�	}��\%���ͧ�?���MFq�>�݈�F�H T�0�t��
���F�뱾��~��@��{��U�Ů���A���P���@����'�+�l�!b\�ܤt��J��!v��#�M�4g�{^�wKV��UN�4�9��͝�ْ�����rN��N�����9�pJ6���=����x 0����H�����T�pc�J��%0?��1���#�{�����t�
�a�G��D�!���!!��������O�= ����?41kR&��f���HO&]�!`?{J���d�~KE�߭�W�'Ԙ�
�C$��+#�m�	xJ�?�	��u)0�h���0]>!�!��$���ڥ�Ҽ�I40	����i_.�X�kO��ς�4Nâ/Q%�IO��ŴH‚�����O�����|��������Nz���p#�����"P�d�2i���0�Q�0�!���+&۸j�
��`a�a9d�p0���)m"M�S��F�TmS��B�gtZ�>_�lx<]�r�Kg،���4���:°�%���-:���B���ʱK�1�Nχ?�PLOKKN2��M�M�R�T�Z�N�L�]���VT�ؿY������YO�S��_��b��M_g�NJX��peomet���Jv�tThJ��J�xwl�|xw�
D�NӾ|��%��@����8ȏ�x�!T8ZFw�)��c>��Ya�A�� �L��%�u˽3��\ɒm2����Q}'v3U�����;UsiNj@%UY�k�N-���j���|��z�R;PK粐\���`]`]html/images/quad.jpgnu�[������JFIF��C��C����"��	
���}!1AQa"q2���#B��R��$3br�	
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz������������������������������������������������������������������������	
���w!1AQaq"2�B����	#3R�br�
$4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�����������������������������������������������������������������������?�?�(��
)~�юq���@	E/�9����A��QK�S�ɣ��z�QK�N
�|�>�ڀ�)p}
%��L�q���c��QK�L������>��R���lz�=�'�R��RPEPEP]G��!���ž�O����Ox�Y����wIq���kn�8X� y���(!Y&��$w^dz����=�ߵ~���0~Z�#����8�/���x�Uˋ���-w���-����Y�	y.u&�<��_��l��{���{%J�:���pT��"i���q�������b�`���S��T��r�[.�I�&~s|v�-�O��⯋�x��-�G�+���Hlu[�ho�oK�T���5m6���B� �Q��sE�oZ���z/���d����|�n!Ҡ��ǖ%�<�e�`Ws����q��x���O���z\j��Ꮙ�An�����<�L�ú���w���lu�w�(4�3?'|E�\���ZZ1��Q������5�d��_���]	�6�:|Y����:�R�e�4~���Z��8NXW:3�NP�����j�#���V�R�%_�⢪Bϒ�iJn7N7�X6���^=�|�.~��j��2,���G�P�n�n�`y/�c�����?�f�kw��'����\[j�
?0�k�y<4�
H�y�6���5�N��.p�L��O��<~Y����]\Z�bAtݎ���������<=�'�#*�`���2t���Z-_�3�~�3��5}|:���O_�s�Q�RΖ�犔�ˆ�R�M�$嶝Q�_�w���_�'��?n��>(��P�<%���~�[�c���E��7z��$2+�Z�֥�C+��c1�����v�7������բ}k�Z���N�o#0S3��\]̩ ���L��sC
M<_�#�O���@o�1����Ͱ�ҏ�E|N���N�"����F�8���L��t�	|'��Ɖq��|A�J�w�]jM�&��90إ���DaI�?�|=�4�#�����
�L^e����u���f)��P�֩Vt�jS��և��R�*�I����#��?��.�O����01�Ru�0�gfT0��NN�'C-���߻�&�RK�ς���
�=28u���4�V�5{��-��R���v7)w+ǻ�Iy��5���w���4h��Bԗ�/¥�(�|Cee%���ynf���<O��O�3�
���gs=��,�]%��Z�q���|C�ǂ��u���H�֐��j����[i�"�p�(����$�˓�]�0�z��g���
��_Ə���4MG�͕ߎ<3��麥��Wq:�~P�g۸`6�+�O0�T��e�9�`�s2�R��c��eJΤ"�>�O��D*I~�܍K6�(���ׅ�p���L.u���<�
Up�#K��Tܨ�z�Ɲ\5J�F��c>V�9�-?�τ^�>&x+�6��4k����j�|+qymou'��g�è�y�V�kG/���q�1�Z������tK>�s��E��oo<[�'R�u���Is����-,$��Ǣ�꠲�p�=F����t�Q����<m5���YJ��_C�km
����l�-���������A��K�F�^��6cas'*�a�N=�t>�E��X��e,��8�|�8̲�6g8�j�B��mƒ�z~�T��9{G9+r�-��O��Uó��c���9C)�u�8��lR�Zx�B�	�I8�RX�gʯ]�=/�+����>k?�?��|D�X��%��`�=| ��p/���t�h���5�ڮ9u3[�]VD�~!�?�/j^���j:
i��F�N�4zm��>����)��|@ږ�.���"#�@��>
�f{��=O/m��-����Ag�J���q����r+���6����s�f�W׵mJi�奖��k�$$�gi�_�x��.Q�J�	���f����^�>-˨��ia0��}�YJo�|��ya���p���/�q��.c���~�r���a�a0�|&_J���*s�Vu����ԩR���Tcۓ���r~̟�O�x¾&��u��5֒���O����S�Z����Մ�����������{�����-�~������;�e-/�>Ծ)~ʾ�y�|@��뺍�����5?�7R�_�v�_�:��}.�T�A��5h��/R��J����|*����M��S�1�vFS�h����D�Hu)p7F��@�.���|+x�pDY�oQ�0�{��rs��p��|M��
�Xl��s<w	e�s|N&����5X*q�cፔ���i�`��Vo��rp�~E��K��(�sLW�|A���l~�U�����,UJJ�

��*T�d����N�Oƽo���/��^7񵾫�]N��:.��/j�\��x�N�L�o�W��,���^x<+i$/l��$O���~�O���{�|6�M�{���W�ᄬ6v6�u��1KM>��%�Ċ?�5�VDo������7Ï�#<=�}J[}͵5��O9S��k;-:6a����?tc�ػƺ��ῆ_<%eau�F��Q�p�Y�u�\�Xhm�pt�|9ps�ʲ�w�]�qǜ/��qo�����Jχrl."�L�:41y��B7�硇�7Ua�4�X����#'?�/��K�p�sg���o$���B9�uO<F/��ɇ���F�4��ʞ5f�N�C�����G�5�z�O��C-���]3�z��t��1�$'\��|=t�斎IW@$rg`���?��w�?`�)����>,�j.�_�����tK)����-��B�N�4����ud�d�2����s)�g�?��_���;O��7����a�/�
��oy���:��D���oP�xn��d-���}{���m�GW���3�x�ƚįx�F�u?xX��-WG��[m�k���.nm!���Yt���(^9R�/eYV��?���E��-�V��o���N�d�z؊�*`�4ڏ4�
��ma�}�8��zx�7�Fy�V�����أ���XgNq������6��R��:n��>�N��:��ں���6�<7>�w�<AmjH��D�5mVbq�屴�!�߼e�y<W���f�y�]x�>9��ğ��W�|	��:�Ft-R�sU��_�B\iV���[G)i<��{��-���?�O�?j߅��׉��2�����?��g���ކ������Ղ��'�R�-�c��'��b���$��l�����ur��k���pغq88�2�<E*U��&�4#{M������1�����p�<J��W��L�.��fٌ����M�)�p������S�R�j�F�:0�[���xW���-��2��A#�<��M�9Ia�)^)cud�7P��A
���K�i���i���
��{&�>)�׺�6�FR9�-�G��5�Ԣ��Km-J���&��!��!�#?������L���"��������k�i���=J������6�,qE��w:}͍��ѥ�����·
ik�vQ�Yf4��{'Z1��j{4���������en��p��gJ�L���
�W�<%\E��kFJQ���rۚ�I]_�	�r�Ş"Ҽ=c�ڕ�B���Pe������m���ec s����k�#�zN��O����+;}:�#vȹ��b�sw1���V�<��3�B|����1��λ�m?�Vw6��M6�X�tCfU�C
��qor�M���Upo����Po؟��<k��k	��s�|d�L������>���M�*�pNs�Q��m�~�p���C�uV�q�m�ܩ�fY���Kr�N�7q��9�\Q���^�ahҏիp��Zp�乪�P�8�+�:��ɇ���%.go���<+�f�<�-5�	|E�K�hz�7�J�3�ң�-
�E9���&�m�9�u�8�����:x��@���M�3�&in|�O�H�f�@u�_^��ו]|����.��fX��
�\@���,x�Y��<�m#úO��*M��G�t�> �}�tkE��E�.�yo^[t�R��2�ZioD�����M����.���|J�g�?�_����xN�е_j~2��%���4�SUѬ�[/
h�Y6�{.��R}�P���.�y!n��-x�}#���y��i��Vmn*�o��2���,,�_/���|���T��V�KT��j���n�a��8��u�crZ�sl�1���JU���j��V��zP�5)�_�pU)�Fo��m6�r&nq�rI���#5�¸�\ۓد�u���{W杷�M�i�:��5�Y��iqc{c��L�/�y���O	��?
�8��/��ar�V8�H�X��C�;'��#ps_�[⯌�$�ar,ƽOf�jx�;Rv��U�lݵ��s�3�'x�	ÙN�8���p�j���Ƽ�ӌc4��*�[;r�~��߬�'���m͗���h�6�y;5�񺍃k}�,2�Å `W�Q�|Pӵ�	�xB��(���������Jy�{[�ec��3�yy0���&��[��-?�i�/��I��9�6x��DŽu�^'���@��&�n�<K}i�Y|.<_�]j�{ut�O�Io4�vʑD�I�5]P�մmF�KԬ�Ym�ln%����$剕ǡ\�#!�3_��	����48�ř�[C����2jx^+[���毀��W
��<]
��V���nT��O���
�?Ɯq�8ܳ��q�g�V>�%u�َ;�4*S�U��aR��'4�]�V�����?<�/��%]�O�t�ld�i��p$�ԭ��~է��ݹ<o�+|����|H�����#��"�uj3�\4{����ﶾ�.���Ặr1J��`�}��۟��l#��XЯ�2���>�����m���G@FKF.@2����Ο�#��⧊.�a��fM{�7����Akh��yV���X�kk'�P��s�K�r���\�[�*啲�Ѷx|Mzدm�G�<5(Ɠ����>e.NT��i���-�p�O��R���,�~ʥgF�0u02�s�R��uHVQ�Zn):�Ms#����/���|8�����Y֏8��XՔ�H�{;9mav,��6�v���W��z�Łǫt==�:w����;�g��|A��O�O�kZ
߇�Q�E�Q�~�ug;j��$):2ڛk�ċ/�g��ʉ������'��տį
B$ua�xt�Ա�K��Fs��w#�\m�7�VcV�E�f؜��
����\M:��*��éΔ�.T�H�ͫ���8�P���P�"�eXZ8,|�a����U��s��JT���P���Ni��5���?�=C�~�<i�h��u�*�����+=��Z
��6��Ʒ��3��Xi���!��������Ơ��5?��컪��_�_����#����w���Q�x�"��|Q*��Ki��k{���֧����K4)��wn�9��~�~�?�O�K٣⟆|5�#�׋�G�i���i:�wח�j �-�r��΍c��[R���*#�&=�dUş|R�<+��玵����5-}3K׮�/`f�zol���6���3�������-� h��2�|@�N}�y�L��T�y6�3LL-LV+O���\^"�%NU�e�J�K�ƴeBq����g�(��QW��2��b�����15kE`+V��N��<&��N�����$~�s��?
���Gq�
��jH2q�^�5��0�5��6���)�}o�ޏ����]q��_ç\����Z?�}�W���\��</s��t��%���>7�/Qe��T3��p ��Ģ�௏?4���R���kku��v��]�F��'�n���3`�R:��A㗊�f[<���ҭJ�0�eh�TiN�:����9�--�?C,���ϋ14r�Ʈ"�+1�>�,2�&�I׮���4�}��i�\�������Yo���?|e�=|t��u���]��~g�����"��<A�p�w�J�</�,O���$hռ�v�����K�LJm�������}�Emh�z�Y�Zϥ$���[�+��U�������O���+Y�x�U�>�_�M�?�2_�O�F�TӴ}oM��	�����mqsk
�����\C��	�~k�x����։�A� �$0����W	-����[[�&��܄�k�N�x� �̻S6�>'xIN�+���ҭMG����R�R�\=)��W�>z�!R��
�������fY�����qf+<��r������5����2�IM8��R�%Ρ�~�i��7��\�}��G�<w�O�_J'�~ʟ5�^��O�o�l���\ڊ���Q��.�a"B$�ݽ�w�:��X�gK��d�i�54��(��mGھ|=�Ց
Dŭ��!�[.������H�!�q�j��6�b���'�r����θ$�4�$}�:T�xkF�
�c�B�r������rLj潕B�_���X��qԲ����%���\~=h��RV�k/vRĺN�~�o�?��?�-��s,�/���q&a�br�R�<&x���*�NU'R�:p���yB��>|}�>��^�מ�Vмms��8o7Q��y��!w`g�In�
�N��qO&��$��>��/��Ht�/�{�'����Dz���Ϧj�u;ym�-n�b���~T��E#��r�e>�������6̨�?��ׇ�#����ҍz4ܷ�qn2��j2I��e��9._�?�]L����t�5VQk�ԛq��~D����P�c$�Q�5���<E�8j��χ7���tiW�~#�t����k��!x��F����VI��׶W0O%�ĶRCv���k��O�-�Fx��x�F����4-"o]���\c�pZ\c�]4}��l��hmm�I=��`��d���5뽢������K6�<�m���U9<�N�zr?O�����h�̫�՞x������‡����R���^���Vz3�N6�r���r��xw,��a�Lf&��_0�b��z�z1u\iR���kNN�:~�NY���mV����kZ�����ڕݽ����-�ԫ1��ZGP�4h��V���Nu�ש
4iS���թ%
t���9IF)j�H�b1����)5�+�I�$�ն�In��^�g=3ǽz��O�~>���)x����/�'��m.K�S�k[�;^Ѵ��YӦ�(^�K�4
[M��ۓy�W��Q�^{ᯃ���|5��j�Ö���
�ƻ{�v�U�+I=䶶ؚu�v#&�ڍ$jL�B�j�ㆅ9J��1����r*v�nv��9q�6[Z���|=L]ZЌ�[J��Τ!F3�V���N���e&��u��}:Px=s_Է����t��N���I��U�}B?�O��hd7�h����7~�+�VyT2�+�궅�^����/��J��@��}�R�ֺ�i�����l�U$x"[I]�Y��/F�U�ٺx��9��ڔp�
��gg��O����~Q���"ΖGü�w��eF�^���Tn\��*��~�����?�]��:c8����z�+�������b�?���?��P��/3�:_��G�����|q��h:�=�>�q��k�mgg���Pj�SC�.쥊C5���/���ڢi>�{���bDv���-���zns�1�����|����:8�Ee���兩b�E��s9O�_��N�g�..̱���P˱���t��t��c��u熫���I֥��^��ԡ(��Qi��Q_]Z��z䖢K��������*ǪIpLEv�ܐ�	�q�|_��?�<d�U�K�2ipj�,f�g씕I-�a�$ț�텶8_����"���4�1�\��]�cE=�!Q�Ia��񧮛�e��]�7�,�:�|����U12�:���VQx���Vx[���Di��崼�����}k�g����o�τ��xc��ut��_'��%����ۉ"�f�y�X�>t+}����4�,�T�f�����I�N��uk�0�I�k��W���ckJ���Qq��;UX��/�_7�`^c��8�>ɥψ��{l�7k����	>�\q�W�g�?_(�d�?Zl~;3��x����h��zU��j�R�I�T��c9IIG�$�M�����_B����mgO�4;�t�F'�kh����ؗ(	;Vx&
	����Γq�^Gcu$/;Xiw��>�(j�e����
�sj��mw
�]�<G%+L�,���18J�5p��MޕHՏ=)��7��iu���8�%�p�}��6�*���V��I�Ӭ�8�V�2R�mN�I�d��V1��3Jw��q�x��/������>5�!�W��z�<E⿴�Ϣ��Ɠ�M[�76���
�{}yk�P5��Z.ZXb��*+M����	�0xO�	��_����O�3���U�<g�i�o�G{�o�)�|ao׷i{&�5=?��j7{�-�Y-34�W�cx��0��k�qJ8�СW,UN�僖�ܒ����kF/d�In�3
2�{W3��\NK��qJXL����V�IT�����^������M���O=����D��k�j|S�m'Ӡ��<o�][\]�[�c��/�5�)4�O,�՞�g�[���2��K�i8�I�{{�~�K�����
j>.�~�:�g�X 	{�e��/%)k�i�������("ʩb��M��[0�G	��S��eB(BU*ʳ�g���ܹe4�������O-�<naR�	<�r��g4!���e^uj8�����Ir��h����m��ëj~�sV��t���
�`�֧��fKE���;Z��H�]d���2�l��&��Y��Y���t�ZG�?\>����]�c6��i�����[�Ӯ/c�w�[���0�g�E���a�ԣJ��ƭ
Ҥ����
�'E�F��z3�ỵ̄���q|?���juk`g���*כ�U�������k��e�g�O�f���߳?��H�_�}��W��(��Y�w����J�8��;�&�}h��٥s�^6#uB�j�?�Ju9}y#+m��*�(P��Q�,=�HS��ǞK�^J��+���<Q�J}ž׼/�[;Gs���H�4MJ�D���R�����#r����Z��D�:rp�	Ӝ]�	��Q}�d�O��}V�������s�ŵ_7�
N�i��g�*��R�q{v��v�۲��0{��ٷ�WǞ��i^��i��{�l��U�V����pG�i��E�!T����U�;�o��5�E�=���LP+����lpf��ine��-Ʊ����#x]��q�+��L7��x*Y����y�HI�(�%�5�W��Z�8aԕ�g��Y���Z��a�Y�;K�P�MJ�'�{jъ��0�����—�?d������m7�>�4��ώ1Y[��.��Y��Cf�?
�R�:���dӼA�λm4��O�K�D�f���Hi����Op���vHq���q_����߂>7�Ț�_�U��<�ྍ�?�36a�4}g¶�wH��
Ȳ	�nba5��p�B�,h��j��{ş���?����qsq����Z�q��_����>�*G�"����sgsp�f/
ղ��I���?�q�g��婗�>"�5������7\���Y4���g��A%�L�
-qYo�d��O��;O'gʩ���Ei�}hv_�׸$qǧ�__|#��sc*;��=�:z�q��
F�Go�X{p�g>�<,W�_	��ŷ�`1�O�8�?�x�x*��-�m�˛T��������.���p�GYS��K���$}���?/7Mu�N���k/�J�� S#���q�o��2H?���_�]���(�〫��K��A��?	�s�v�'������E:J�H|��h��
�!CJ��$�o��O��
�9i���/��B�El�������8�*7o�ܹ�v����/��,��'��*�%O�
?��r�fH�f��?�!�ܪF��Z'P�R���m?��>7�ci�ٵL�VQO�֩E�t������|����Um�1���)����T1��)�����n[�EN)���{t����*N���ulڻ=���C�Xx�F�tMJ��md��]CfS�L��e�@��˂� `A��xR�ƞ�4�#k�KZ\����mp�|˱��+��<��	�Z�մ-V�GԚ���O����'��Y"b���e8ʲ���0$�ϊ>"bx/���|-O8�3�-z<��S��eF���E?g(�/�5RVJP�����~<>_���Y�E����5xjr��*x�#
,�/c8T��V��Rj)�Iz/��wX�]���牴9�:��~)xO[ҧ�����E���>����7�u�#��?����u��~6���ij\�S^�2.��{�:�ts#�f��4��$���΋�	��;_�ԟ�7���;i.�Y�!�,�vH�
�ȼO№U�Դ�2M�bc���՗p��{���-����s���@#=��3_�����8�.�r�h�SR��:g�p�FN��ݚR��o���\k�\]��\U�Ĺ���殎y6i��U�J�r�Nu0�4�Ƶ*r狋��-�K���������:����x�R�]k7~;�5�ç�go<�}���^���D��)���7Uh�F\��
�[�ľ<񗈮�7:�5�Z}��u
N��¨U7Jv*���P��������!�wź�O����kQc�m���_\ܱ�Hi@�6�d����e�5�͌��_]��t�{X�O	�fIol�ɖ].Ѣ1�2�nO��H!�/a�)���q�YC��YM
(^�������U��S�J*�R�)��ME[W��G�/��%�{���>ϸ�^Q����?��J���9�
U�5jB��{��V�9y�M�GO��؟�����'���߆^?�}���,&�m:����o�}F��GԢmp�]���E�d��V�U����ǁ<G��^%�W���j��M�����.����O�H�m�k[X!��,���̂�1�tUe�?�tx<�
xԧ����s9u/w�\./�^�s{rJ�Re%s��ޕ��w�*`��#'�'�N��k���,†[�v�O�Xy׌%$��T�)򵴣;�$���G����kß��żE��5�bq�A�c�Y�e��㥃�f�a��(�i'NP�,�$��_��ࢺ���_�
�8��o
h���Z���nmC�~)�����wS\^jw0h��
����Om�Q���+��&��?�Ʒ?~*kZ�^����ǫg���dž��[�:��M�Q�)$�4�k;Y&��}RiU�"
�O����1�U�K��-�J�#�cx/�:=��M�x�>
�71h�Ր�z�~�?���΢-Sv���+iW�*_<Yď����`�����ֱf��if]t;�\��,�X��/�[�K��P�����!�<�k���Q�d��S<eZ���q9����&�K*U+B�~njnm.������|��&�8zXn��52Ln*�x\-,��
�,�IaT)��¤(5E*x�G�s���>8~ϟ�'��uσ��v��{�?J�-��A�
�4:�('kG��[��m-��<��>~Ͽ��|c�3�KԼ%��|F�x.]SN>+��c<^"�4�$���֋p��zf��'���{y�T����ڌ3۴�O�$RB��ʌ9P�F�y���R�����w�2xƟ���i0�5�<=�jq�Y�5�dž��6�$K{u���|�
ռS]�qk�7��ar\��d~3c�=x�yFC��0��U�պ�a1��3
��aRP�iԩ�Ӽ��~�CN��"�Χ�8�weYa��c㲼?��C���bs�F�Zs�]&�
��̬��߀�1�f��~��WƸt��o�����N������X�zť����LWQ�s��[ZY;ݧ��F�k���
q�j�����S��/�z�]��M���>�-|-ms.�a�\��]2�滺��e�+�ͦ���։c�������-���F�z����u}uZi5
7�k{%�$f�^�lIuxo�72y�s��c�_�OA��>	|r�e��-��?f_���#x���Ԟ����LH�x�O�D�K������s7�VMN�>�'�y:�1���&ʲ�^!̲n!�1�R��g���i�x.+ȫ�K���sdy�����aiQ���J�_��c��e^)x������1�5��|��2��U�akc(b����.3C��)Ɲ\'֤�Qѩ}���_؟�^5��������.��c|�퍍��mZM�I�1�*x��_�m;��Si2Oow7��=V���_��q���^�?�R_�o���=��w�����W6�᷊d�ƻ�NY�mF���W��-�4�R4�6F��������g��k[��Uj><���m_�4��|AMn�M
���e�u�~M"�Q��m9���k=��[b�i���-x��G��o���޹�]]3B�n�W�Kf�[\���CE�`ҭ4��F�Y�͵��cm�C4�+n.>kˏ��g�\m��g4��Q�>O&��qi�R�VU�,v�z�JT�F��ץGN��	B�z��Z?g.��/�\W�
G�a�q-:+���.t����(UȰ��MJ�8��CM�%�J�T�Z���&��<Aw�;�߽��:s6�4æ����"t�G̚{mֹ�Hd�w+
��G��,��Y���J��x�4V�d��i��z,�׎ߞ4���}y�_�p�^&�F�s�8��U�J�|L���2\D��[�V���e��5'h�1u*�B�"�b��p�����p�5`1��cR��a1M�G�	,]
��1J<�ɦ���|�6~��5�xG�
�g��/
iv:&��΅�]CQ^�m����Z��N���[x�7��E4���a�n~�?�Ro���Q�?�����O���VB���h����2��ږ/�Ʒ�/G��K��h�E�il���(�Ύt~p���=(9��?�~G8¦c_6� �Mz����T�V��RN1��G�����#�r��2J٦#(�0�u\�z��������bk<Ej�#��:�u/�V��-Э/�O��Zh���B�+y��"�$3ƒې���b���Ix���3�:�`H�s�-�Ӝ`�%���[#��z�`��x��?����@���Z�'1�7<�0T��pJ
�)�M��y�=�������!ž�Tr��)�q��S�<=\�c'(F6Q�E%Q��o�7[��ǯ����k�O��|P�Ɓ�x.��%�ѵ�ú_�t��hZ���
+�{]kD� 2�5��o5���7��Ƭ�xO�^ �N����老�Q�T =��m�ṁ�џ�XB��Ö����T���_�akU�b�?9a1����8f�֍h��3�H55(�>W��Z]��q�GŹ�V��9�3�Vy)en�����՞	{YԢ���{);{�g�V���������m��E_�Euqo0��[�8��$Ѩ=0Ξ9��As�B�����cG��DD��s�I&���v,�����W�g�q�\K����3�Na��N5)R�)*���jNT��uf�).z���z�Ξ#��x���8�?��,-H֣B�hE*Ќ��'J�:���JQS�)��z����"o����-�#|r��ß�'V�w���M�$�5˪���g�H��|��ؤ�(���OI��L��������o�K�N�ο�i�O��>|L���	��Z�Y���-u{o�t-J-�Gu��Vv:���Koyi����M\�����ΰ����<�[�`�ku�dl�s�w�?�Yw�4���e��3HP���*q�#
��FS�.j2�%N�y�y��Qjׇ2�����b���*��L�NU�Bp�ʜ�u9��O�9%-e{�{Y�����~���0Oxj���z_�|9�
LMg^���ž���}�횁��5MR��mb��ӭ�.&�
9�g�^x#��m�Q�\xoU��ොb9>�?������e�vY���j��ᄐ�������Y܁�Ai]�<�v�~�w��5�|#�W�:#K<N+������%J�\%I*nUP�9�&�m��~w��o��3���s:��x�9��ن"�H���Xl�ƕ:�[�
t&���s�֒�RG�m�ŏ	�@�o4�Vo.M2�d���G�)~����f�OV*HS�GÝF���;��-m�l�M=�QEhr���	gg
��M~&���J�a�?��U�|�a��*x�g�o�˻�E�>5�s����8*��g�<U
�
��;�*uT�M��ז�C������~�,�z�0���s��QQIS�N\=W%���k�=W�ϋ��/|K�`�7�~��-^K9��2����^\�i3�Vh�T�����"��2�x������|C�=V}+R�Z71�{k�w*e����=���T�oq�eI,����I$�s�֒��(b�uV�'
��R�T��Fܢ�՚�ڣ�2���m��aV�3nc����*��MLL๖���5����H��|Yco��R�c��(�`>W��
D��, ��
�����x���S�ƈ-��v�w�,��M���[N���.�a�%�R��r�\jWOl�(��<�����/d8,Z�a���E�
�uk:M��F�J�����an����(Y4�z9�e�qQ��S�ԧ���Э8�X+/r��|��ox�ž�����Ŀ�:��N���+i���<�Ls,�rr��h�rp�H��1�^�T��SM9	ʜ�8JP��g�(�l�%f��֧���*x����kǾ%��%P���R����+_�Y�4�EX�V��FS��1�d�ܓ�rz���TӣF�j�*t�ժp�}�*W~l����|�,v7��8�S�+[��`��|���l���t-Q�&��h=������Zizu�(d��t���4\�<�H����w���r��R~�3x��m��-{O���L��k�w�⻘�g�2�e�,��i&;��&���9��6�T�e��eN�|>�JRo�֌������T�Es�?<Aʼ-�%��pX|�.�_BrQx��k�e�wi��r�M���u儚�����ş|u��^7��L�7�o~ũ[n�f�9ึ�����M
ե�f;�i��3�E%�>j�� x[��=����}J=>��akj�\���Ͱ3�v���6���!O.0dd��g?d�_xG���$���:�~)��*$:5Ø�'�k�-�;+�>����H��`P��|�į��VM���~�����&-��g�oSO��_rn�rm;�(p#��|�	�5�;��i��b�\�	ĸJR�S��ѡ�B�G����'Bz�0�n���ͼ+�Ƈ���C���O=����<�.MU���vI���8:��.o��
8�4jIJ������=�~�|b��EԼy�"�^jWSi�bL�/�-+N�"����w|�a哴f�>
YE$�|7(a�n[�3�<���$6{��@��x�����!�e�J�7��	#却�Nt�	�ץ�C�L��m.����f�8p�{�j��kY\^�)�����J~\��y?x%�
\�ß
�MB�̇-�1�����s\&3V�ֳr�%)6�z[���81*���S�����a�9ap�ap���:T��X\=
J^�\0�F6j=�{��%��O���]V��l�S��Քs���Y���k8�鼯�ɪk�zEob�u䙮e�kH'���/C�u��V�.���k��+kin�%l�l�v��]��%�����o��<-�N�t�o��7��_�4�=:��=���Ya�� ���k��$Xa3JYv�ί�m�;O�_��3��|3x���Ƣڃ���@[�aӬ-�ԛx�Vrb#�F[4���'�w�9x��l��M��I�k�8��Q�Bp�bf������Qͳ��ҍ*t0�Uj���Q����Η�%�� gYEz8���J�¹V;3�3����3�_3�ʔ9y*W�֬�Ƨ%(Q�	Jr���t~���//�4m2f���}ֵfor��csk���+����`�xg�|���Wu�O����m2�[�@�Z�/bb��r?a�/����,�,�+_)�OS��E|��mcJ�֑{�j+�N�m�l-n��rbelo)��6�7R��E�g��,�:ɼ�n$���O��O.Y�c������)�6|��.P䥉�9ӡ9�|5H��7�|^��P�3��,��bj%9�qjac)%�Nuq5�Z4���M)�-&���x>���-�|'��q]�^B�.|�!�).n�����M�~gٴrk���~𕐴����q�P���,�Y�$)oDD%S
�#v������"xgT�%nt_��2�L��GŻ�3�&X%^3�	�Oޯ~�!�`7^�tɣ����[I�.2#2G�ȣ8�$��������ľd�c�Yy���q�G,�]*��U�Ʈ׎>�x�ƅZ떊��S�^<��W��^�3?Y&A��1�UVxh��a*�u|M4�k��*q��M�7���`أ�@���|X�U�����߇~&x:����/�A�Y�:yn4=n^��;���3Ϧꖶvwv2@��~
��?��ٻ��_�~%��Ե_��m(�v;��T��/�Rܗ�u-*����%���!-5�*����W����j�P���GԼ7�xg_����햩
�f$�%�����~�ʽԭ�9l�
�'�A�C|B�>+|s���ė\j�.��u��!ȷK�V孬b^B[XZy6�)�V��F�(��>����<�ʸq�-x�Tr���/�?V�<�[+�F�N�eW�*o�֔2��&�2�gq'��3�+�\o�,�{��+�c1��[��Zؼ.c�ex�\]Z9}z9V'0���Z���!F�ҭ�῅Iq��v�Z�(�)"bfav��H�r�����K.�_������:W�_�~�O�/��V��]���N��1�K��vW�mŵ�2j��I��T�+��֒JV($5g�k�uq��Z�7K�f��Yb&7��R�+��	4���)m�<�����W��k�/
x���5���{I״�鮮"��Z����2�lҕ@��ܼ�W��<.��2n*�.�qF#+�i`q��ܫ��:r���2�U8*U�Ua���ʤ��N�5�]�/�8,Mx/1�9�>�>ɲ��
����r|t#Z�[�a+єeN�
������:�М�/5����=�?d-[K���[Q���V�I��Z��ms���K�tۋ�b�MJ������R�&�l��2��~�/�~!�v��v�y�����l1
���H���[!a�\\�)���W�G����� ���w�E��@��A�cMK�w%�~�M��tm�CGe��%�EhSSf�4���ѿ`��O�~
xĒ��!��C����<�c,�.�g��6��U�\�7wK(���&pN}�.��n=�	V�8�k�Y�*t���ll�`�{�)c�t��-y��J8���W�2��	�Ӎ�=�)�_��R�q�m�Oi\�/��[��+�iՒ�p�Y�U��,O59F�Z����/�KJҿ�5MWÖ�ďj%���b�1It�b=�ДWM��1�c����o�Z���!���n,�v��΃����ލs_ڇ���;Z��:v������d��3��ȃR8##�ں����K�������h^_��7��.���o	�߾�m���:��o�'�.���!��O]�Ҭ7P�U�I⧀?F����S�1�c��R�Φ6�q�bkӧxQ�pU}�&�q\��J
h������ �L.W�[��W�ci��d�]
�<��j�����q�Ƽ5�ԫ*x|mogv2�?��GwX�F�I0��9f�
	b��'8�^�e�S���6����7�,�Z����.D/(�C�=O�
�����Y������τ'��]�����-z�Q���)�hE�{H�c�D�l$-џ���χ�5�/¾"�T�׵m*=j+}:�<P����q-��E2�Y�F�Bd�|�d�~�ρ<ż5��_<D���5C�ZU�S�J���<=9Ԕ�V�uk)*t(�9B2��������E.>�xw�\<��7�_���8�iQ�X\N�>2�ң�)ӎF�LEJ��Z�&��ᮭ�kZ�k�iw�]����kg��B�Us�F}�X���ޟ_ֿU<��߶%���)�o�n���4�;Of��}�_��YhV��$z��嵫;��c|Y�H~�_e������Okw6k:]��%��z��s4�Eyc��W�m�)=���Iiw2�q�&��>��G,��^�n���C�,�NQ��x��*4��r��x*��t*{:��&

5iΕzTjr�~��>'d�m>�19nM�40����J��Y�����e���4#t�9���IGSǼ'�_ƞ%�|%��Iy���V����h���{�\�k���<�Wq�\�8���H��|�Y��i����iНR�G��Mr�'W�\X-���1��`��� k����t���{�_�_�z�d�E�$O�͡�֗g�޿ٮo�SE��/���Oi�������%̷Io,J?���@bX`y?hoD��8�m�E�`o��5�6�uGR
��W���!�p�/9�x���َ;W
C*��>3��4�\F�zu`�u�*w��*p�e﴿�/�#������þ
�8�xg/����3�xs7�r��8��t��)bpXZ�j�*��|�X�eH�t�)~�j|1�k�ϋ�������?�0�_2;mJ����Ծ�[�Lw�r20��� ��~-�;��S�̇�O����|^��#�Xe�
WL�^��H��ğdմ�-���w*N����5/�,��6���k���ex?��6��p�Wlw����hL\�ή8
�j<n��'���	�b�q�o�S��GU�}����x�]&����ZN�
燧mK��m.�syh�w���6�ch(t��O��
�~�s*�7�،څZ8ܿ�⡎x�DgU��ԩJt�j�V�4�)4�i~G�;�c���[��'����M�Wd8�Elψ2��(�t�X�>7xLf&�q��S.ļ�Z�_R��<4���<�{}�#��O�g�N��g�u�4y|���L~^�3��i�'�?h���|W��1���I�[_A����[k�>G[�[�	+,3¯�}����I��[�_VӴ�Qɺԯ�l 
1����`FIn2�q_��7���`q3�(��sQ���J���|������u�d��E�W���_�fYf+$̨�0���*a�`1��B����.v�J�ϙZ�m�c�5������ə�|B�G2<�>��!�Apym�2��H8#�%�4��?�ù��"���zq�F�m_6�@con�����%���YAa9ǘC9�?۫�
W���>"�%�_�������w������A�ݿ�t��.�T�u�]>Y�!��H4}>{��.#D��ϊD����ٓ�����.x�_�&k]GF�L1x���ǟ&��hK���pM�����1�ԭ�Mj��m$��~��B�>�S��>=�s���x֟�%:ؚ)fRT�W��a�u\+�
G�oJ�Z�9�!���c�0x���8�*�d����!P�>���e��Tid4r�u*��������G��B0�zP�Vs�X?�x
�Y���	�׋m�S�~&�4�n�wc�[mJ��%�pVX�:�WpR�rC�S�C�/��E�|�%a��xU�&�s����k�h�3�7�4��$`$�@̤�r�����?lt���~�B��b���^���	.��
F�K�-�+�c��Y�}~�?�U�����/�
ic�_��&�mG�6:����䵞;�O�K����akq7V�-��Q�*�y&�4�����xaŹ��3�i���18<�(��EW(�b�|��R�S��u�z�&�7�ܗ�}���2���k�?�|��p�>ο��R���B�g���e�6mZx�f*��<5�S�)�3�ק��)|2�տǏږ��HҠ�3�x�Z�֛eCc�xpk�k#L��(�+{s��Z�F��0�6����c��g�9�}�_��i�oß	>-�}����E�ɠ^�&�t������e�4��'�T�xդ�yn����jzN�ce�h�����ܢIm}��Ayg<x4W�$R�\�zb��~�Y���A�Τ�X\&wF��;�X�K�i�c:���RnS�ڝ����s�k��O>��5�}C�xr�'�8V���^�25qrr���
XN5&��F7;��׀#Il��<�NG?�������>��������Is��em�|?�&��� ^
CI��T��5�5����m�0#���M��[O�Z����ZF��y���u��h3�wu$PD�FF�w�����|/�/���'�_�0A�xg��&��=��k�!�k����6\Gtt�־�Ӭ.%�5��:�$�'�pO�9Ǎ^2���#��p],��9�aVtr�51�?f��iӞ*�%��Ԕ!*�����@����O��p�K��p�e�����q4��ʨ��+��'��-b1����d�}Z�j��i6�N~�
��}�
�.�$�=J���tC���->�w��������R��}�q��o�d'�?�r��:W+�;|U�M�Ax_M�7Ï麤�6�˩�}�!��Z
�Q��
[Jr�q=���)�]"�ť����+}��
,Mc�r���:z�<W�_�Gѫ����,߇!���<Er��9��О
B*���9�q���Ԣ�RW����q�<��\W�̲�$���^g�����OZ��W���%9�R���Bqq��$������_��2��H|5�_�>�o#Vh��G��kXnXe :���n�Bspt}M�n�{w�w➑��v���F|K��G�u�"��[��+����m6��Y�#�>�.�„����P|��1�ه���ψ��Zo��H�=ž�m�?D�5[-u;�X���b]U�=2)Mݦ�ms.��������7���Wo�/�~ �еxWʸDĶ:��u��5K)[�Y���΍��%����/�X�	x�x�K�OR2�Ns��l"�[���8�M^��'J\�2��K�׆�a�Г�8o��X�⌣����VoF��f���c1�gMb(`��<:������P�Zuc�?�o8�BA���q�;t��DZ�|��&���z���U��h��}��z��������Iuu4�?GX�wI,��F�#������Z]_G����5Mv�-�U>����í�����ء#�Q|s� ���g���T����a�/��+��
�q'���8���nu� �VH`HltȤH�M<\/�ޗ�����)�!F�?ig*���)��������굶��*���3q���<g��xk�if��g���Y�j�}:��jyNR�"�+IJ*Z4�>jҊ\�����k���?�x������-����_��ڍ��}rN�m�%����^d7%�vέ�S��K�3�XxkE��Is
��w��o�{�E�-m/K��p�]Yj�=��򤉼��'���I?�/�}~��_��S���
mo����m�Z�o�~��_�-Աv���R�w����+a5�����O�¾"c2�Ø�,� �����)JrSo�ME���*R�yӚv��3�_ѓ���$�����F㼃-��p�z��`�\�Y�K*8���p��U�6�aЦ�9T����?�?��a��1x��)�N��6O
�z��?`��+_
e��k+
:�WY5������f�L1ư*M�~$��y�1�G�G�����m5Mg�w�����g"̶ƻ����q*d��{�w7ٞ�A&˄�4�g��V_��z$����Eqo�k���r�O��C��=N�MN��Y0di4�e��FR0����jΡy���Z�����{�_O-����č,�773�<�J�$�����Y�$��x���a�n-���Yc��HM�Pu%RrQs�Y����TnU�����?G���5��i��nj�"�F'*�Qʧ�W�'.��}k3�S�e�(Q�d����)µZ��C��,���d��Β���9�����IEz�S�t��4��):��X�Z6Sү]x��7�o��V�0b��.���y�~U�Ee*%5RTiJ��r�5�&����
���YУ:��T�(Jj�Zn.J�5�q9��99?��M����(��\���3����xS�į�ox��^' ���W��-������܊ਬ1\62������Q�NTqiפ�ٸU��������x�2�c��lnv硋�KFV�sR�	�Vz����/�Z����	㏈�6�G��Q��B�h_�;˜��1���(���apT����j��:�{�N�c�V����pYu���x\-���xzXj1oV�*0�4�V��SgD����?�Z����wC��\�א���\�IѰ�G�5�:��Q�MkZK����VФ�A&��|P���"m>�Z�ѣJ1
J��+�h�c��:2��3,�Bw硇�b(Q�՟5:U#	]h�tq��4�K�d�Nc��gC��px��y_4}�\E�)��$��Z�O<�2�=ĒM4�^I�����c�wf$�19$�I�CE��m��m��ն�m�o�ꤒI$�I$��KD�Z$��(��C?�}=�(��
(��?��PK粐\����html/images/ring.gifnu�[���GIF89a||���Ÿ���ؖ���
������W*�R/ܜ�ͯӧ����L4�H8�Ȫ�q�h�Ͱ֥9F�D;�����A�?>�B_$�P0��e �]&1�P8�G���	������y�n����
�E:W�*I�6�ú��v�f� ۞�j'�[�xr�����-U�,||E�@�pH,�Ȥr�l:�ШtJ�Z�ؐɤ��v��x�u�!�z������C�|��A�z���?">)(>"=
:l�F&#))<
f' 176/..+**554�����*��/661 Z9r�&�R:?v?�&21���483,-�-$$%�%��%���cA���Pqk�9h��?x�v$Ď	<�\��c�!b�Z���Z�k��A�r��ɳ'���4�,x��.��@��v��BG�PX�P��T�p)�^>~
~��۷pa�l`3�B��ō�H�`Ň=rp� $
<�aB�^̘Q/_M�k㊎��&]}w7P�p��z`���� rH���W��ԭ`�΀��PH�v��>�R؇o�4j ���`�G�[ȉ�+y�`�6Za}�+`�ti�\��?�ԑ@� ��v.��	0A<��S�w�`0@%��A9��:+�(ƣb<�ɳ�A�6\�7ܠ�;8�4�1lc��Q4@5w0B ��`BȐNWb)�Zp�
,���RI
@�Bia�9�"�P�|�|���\P�#p�A��4U�n6�裐F*餔Vj饘>ѝ`Ё��¨�^R꩗|`A<tp��K�T�����i?��:�K�6Т̱��xCX6��
���PX��<�f��" B5>�a{"�SKX��@�q,n�Aw�5��v��`�2��4�(�m�&h�%?��fJ���K��OM�U@��7m��it1 �@D!�o_���u`��	�rØcl":�AY�xF��;�\[>�TS?$(�1���d@ƼF�m�X�QfY.4�`�Y�H�\NC�-�N�5�]a��/8��` �Hőp�zl+7�"Y��rA���h<�P����v6.�op��FT�a"$�92�+qf0���̝���@�@f��p~��r�PG��>$c�>�@IQ��&N��d�ړpW-�s�^� U�m [Hh�ì�v;�Shz��!�W�؂�p�(�y�c �j����H�@
v0Z"�z��`�\@��@0V�(L!�t@��%.�+l � �B��4XM�@��H�"�HL�5�@L�?��ăXq<�
�H �
���-, �.��Q�@U��"�~�` v�@~����*�y�@c<�k�&��yp��?(�X�:�6��.H)x�ѩ�Ad�dD<�s��Q�z�DI��0���������HƲ��Pj`Z?�QoF�mY09@E�С|��B�:�Ŏv�E�
�8Q#_�i	\��(@���bⷁ�-`f+�����z	}b������AP$�!7���YB]���G�k��,�8�ŮggI�B��	�w!P�|�P���K�����$�&p�l�P�$j_k	�g��Ih���ض��dy1@Bj���(�)PAP$�0���9pH"ℍg�sn���Iή;��i`���,�|1`�D�U���7&�90�%��Eqb�T�Eur��+�Ӽ@n��iD4�-�� H���2е��l���OO0;��X��Nv� �e ��y@�5h
2�M�[9���$r��K^�cU�d�����p��U�A������f�{q�Ӹ�<��ѕ.ۨk�q�}Z�:	̓Aj�Tw岗l���e�[9�!-5z��
�7
�J�ȡY�j4�=�S�Ό3���rQ���-w����@����۽��e��G&м���u��^K�vҦ�T�;����ڟ��([�N_�;ڊVc`�u�	�T�3�p];2�������lj�Rio@�j���/�%+�{_�<҃8��@�I��:��^���=z�c3�EQ��,�f�(X�)����K��h�*F�����f0�r�+!
=��,�AC�P
���Е
��;`Ml@��,f��قn	�_��ɬ�<K��.*��c Bd� 9�d��N�,yI)���b�( ��i��&xC
�Q��S$
@�R���*@�p(O{:�%�P�=2V���n�QS�FNB	�0��e�5���0���gN���8Ϲ�w�s������y�Q� �"'9	�`�DMI�E�B��E';�A<�~�S�	e(�M����������p���SHEq��a�7����>҃\��z��@���46��4��
W^Dh����}��r�P"û�
��{+��))q��ۆ8T�(�{�S�@I���p!e�Y�o����h}�L�j��z��V�Rۖ �������Y����o1�d1�_�
ӎ<��NЙA��:�$c�B�?�S]@�З�N 1q&U+��d0ϴ}K�`M�=��?�@���j���U��P�/�q2
"�k�7y�(��2O�
�"+aV"�M��"��Y*R/1"k��%�7q�>�$��&��g���&+�sh�=51ia/��I�%8'��&A�&)��<��%d6�.�Tfvf��=��=��Y�bN��/
��!"!�\�>�O`)�K�Q/�=)u15����7q�5XSgQ�Q0A��Ňؠ `31�QPe�R��7�'vU�C/&g]�>� R���W��=�����3d�Q1>�19�\�q�1���O&SFq2�#X�E�w�k�a:��X�C���hf>SƘb*�̡�1��1ev3X��<TR�0�1:���3�pu1?�*֏�H_�/E�9%c4�7Z#V��; ��i�fB6YL�s%�iS9@S�H &cJ�LA��_�H$v	<�:��V-Ab�C;K6[�U44qUi2q�]ē	9V=H�p:}X8���8bcf���_x�\7Y�#��:&�18�Q���e^�5��$VP�w�lAUn�>��M���iX�_:�Z|"V�5��;1�3@#4lٖIVUp�;e���P#5|b��5u�a^C�5���\�_lY��`�q]�95z3*`�2c��1��y�%;h�b�I4��6b������7
p�P�c����)���4��s�b��"��5���E�P`x�iab`�8�R��Y!����4XI��[`��X�V3��W���5)��C�3c/ Z
�F�5)�3;`\�PT�8��������Y��dXa<8R#!��
U��V'�5Jٙh&2
V��������bE��XZ�$:Ai|�$aK�����0�	V;��ynƘz�S�S��QO�I$�+7�	߉�#W$�f���X��;N�;�&>7�t�7�n�0���uT��3�Wh���39���WkX2�5e�pi�ac.�<�Q�#Ѓ�h"��R.�1GC��32TɌ	!��3v�cO�2)ް0)�0�p�hh��(u���Rф��[(��5�}?�ZO��^!�d٧~�.KhP�jP�6i��\pkw6�����(�AX� .�Fi���Mi�6 �>�k�Ri�5!v蚕M�d��!�4h�D����BN�N�TN�b@ԦN"9~�tc���"
B?�0j����F��1,K4k��%�7
<�k� �D�6?�7�DK�4%�Z#��K�T>�4#��g|���i$�C���r&�0KO�l�(�?�g,��,�R#VBL�$~�T��W T�J;�H�d	Pn}�{�V��I|�^Pz
�q��)�g	���gd��q0�z�E�`l�?�P����KoG7'"@pvp����rR	�F�g{>�* GtTGy�{�S�Gy�H�y	�'as��)jH�����x�*@H�+(��w#9�D� ETtEV�E\� 2hPWF��_�Fe�I��C���۾����;�8;PK粐\���O@O@html/images/smallliz.jpgnu�[������JFIF��C��C����"��	
���}!1AQa"q2���#B��R��$3br�	
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz������������������������������������������������������������������������	
���w!1AQaq"2�B����	#3R�br�
$4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�����������������������������������������������������������������������?�.������Q�D�ڿئH��G	�B��>��NB�7X�`W���'n1����3�o�o4�|�W�6˵ ,��v�@�?{����#8n��ũMyp�f�v�78�9�F2?�+����x��1��3�,���u��RW_*Mꛓ٫+�����^����6�2��h�����Jr�|��ͻ�٥���S4E�^r���M�>��l�Ea-��_Cu5��~Y-�<�~O(FCG;r	�-R=+J�me�8�"���sD�~Y��s�$7�UA�Ic�| �n��6�2\��l�4)?�����F�X{1[t%��	�6Y����,����j�9J
5�)s{���i+J�o�~���gF���W�&��h���j�r�D�v��|+�-^mE!��2Z+qԮ�2	[$�J��9'�_L|)������	$
y�Hf7)�bo=Y�㪶!`n��V�S��A�~��s�)thVQ.��\E�p�J�3��yl�I«2�9
�?�^��|?�,u
GW��rF��r�¡���8ԄN0
���W��&I��R�`��[�֥�}�8�:����������O�r��q�p�&e��ֱ�ӣJjMԛ�t�P�oGtݚ�ꏚ�iړ�i��Z�f��
���hD�\e
�vE~����p����-�焴�[I��.o�X[���&r]�rY˞���9<�f�U~"����Y��܈�4
�3��p2�FH;�p{�g�C�&��
jkw�H,n��ە�<��W:����
tp�|�/\3�a#�c��,Mz���.���*����([�1�Q��~G��E�0�^]��N�z�K_�r�����Y*�(�݅��_ex�����t��o�|@acl�TH"��W���ȑoV�d�t�?K�.o���]�  ���������+�4�u�\�X�.���;L6VB�z�fi.��/n�O���gJ�����T�h���t"�b^�AB�s�ۚ.�*�\����)J���^Όӌ�6�b���Wm�{ߏ�/
x?ö�k���h�X��Q.n�i�&��q��A?���[�N�}�x�F��:χ5Ym�d���?+�%�T�H�|��@2:��\��K}>X��m��"����f�V�d��V��K*e��f/�Hrli�o��y?�����$��|����z�ޙ�~]�a)V��,�U�^�Z��+F���J��\��Ӌ�����̛�6G�fYW�p�~�F�U��|�Wj�iMI4��z�՞�՟�=��T�df�Sym#!�bD�;���aI<~��ouK�y~׹"�;c�����F9�_)i0x�Ʒ���+Yi9��Af�Z�e�)��V
B��x�+��[���G��6�Z�	,�h�V̐�9Tyd9�|n;��԰�<6ѭ����Ⱚ\��)N���Q��	:�벿T�8��[���,�7���ԣ�*3��{E�;k'{i嗫�S���W��t�f
[@2��h��`I;���̍�
�x#<����Ѻ�)��Yq.���&�E�u� ��u+&����ߎ���=�ե��Y�L�l"�F�����gH�0/�~����ѿeώ3]cA�ocm��O,�d��<��RE���B�=����⌞+���4b�^�5z��uN>ʬ����V�*������
���e��N"�"��������*�Z�ʽ�~@x'�2隤�f��E�نPcG�����y���7�j6�Xnfd$lpz�������^��H~�xz�K�][^E�3X�p���2�27g����Ÿ���m�����TʡW�c;GbH�޿�1�A��u�6�`*W�6%��\�j���7Eg���G�<J�;a��n}�a�p��yn{�ԥ��'{sP�.����4�'g}-g���&�s�G�\��l�O2;f`ѕ!@' � cֲ�ٌ��%W!=�����}_Ś
�V�$�tfLy�
���*��͜�u�|������@�*V�8�G{���-,����0��Ԫ�E%��6�-T.����{�^#e~!�i���f,F#���qp�u��)��s��=�{F�n4�i:��<�{jP�̭ī�'�Hny�����c��2ҵ���s�]�6�
.3�%s!{�����3�K�^�>uk[��MN=�ww�"�+�\�)'�}k�]��CA�nY}��+y�%2�O䑼L�V10rA_��:x���
5)b(T�uyTa8�N�[sO�M#g��C�r�y�3-�T��|1�j�*%�&�y�S�r��R{�9�\���K�^�XŸ#���M�[v���8�x���i�4Ė�t��\��c�d�2�ʼn�N:
�O�1�K	ou�b����&2�Wi�1�I�+�a���&�4�1�9��>��1s,`
��8�r�
�=�_O*�R��K9��Ξ'��0��ګ+5v�����%����d�?yR�I�&�מ��d����~���/��qOkqb�#3�(i����`:���G^�E�*��^�e�ڜ�y,�[�"�q&�C�,BB��UY
�e�8L`n�Sa�[�ͩ�j񛘛���4��t�"Fwz���t��Z�Ư�]j�ڼ)qqq5��.��E�煈!r�ـs��M�+�̱�|K��ҧZ��RPJQ��-xC�^-+�-_.���|��TQ�c�Ҩ��xʧ*vpMh����{��-C�m�?K�TԁK�_Y�W�G�����o��T��m|=5�֡�m��K��K..4��Z�1n��K<����n1����������z����72[}�F���9X�T<�?7���I�qm����]���M*�E;;�k�U`�I$���y�K��`��p8	��T�Ab��T'�'VR�3�`����c��U�5�����8KE�S�(7I���[�^EK�?�5oi���_�֜���∤qI�>P��2������%<i⧑� ��G�͜��/�*�igg�=䪦��W�|-M/�&��4�w
ސ�e�+P6xr�%A<t�a���:�'�}�-C_�&��ͬ�2����s�`!yL��ѐq|�ps��a�V�.#��¸�c��a�U�׽%E*q�h�B��(8�^J\�D~q��xG�����X�����N�u�[NJ�S~��)6�0>�1�G����-�x��$�-��/$�D�mk`����v�J�'ϳ�5�_���6�������nK�4Z�Mqh��!2C�(A0��j�}/�^!�5��Ӡ���?�I�r�̨���I�2�1b�����]�+�CM�|V�jVm�j:@���S�1�*�s1;�5��E�apo
�e�V��E�f��SV�9��Mݴ���ug�qn�/�f����b�W���u���IJ�v�S�[��I/u~U�8�/�� �l� �=�Ky慺����m���2Kes�8���|G�{L����O[x�#���I��0���m�Q��1�1bh��%����^K�Οf����h������-�aq��;�&�vRi"�ȁBI�$lT�^�u��p��������3���X���'�j��FK��\�򤤹�Kng.��;�~��,�K/OO���^k
RO�<��朽�{�9�)+)j����/�oxJ��%|?�i�M9[�<�L�����"�9�K�uV�.�~Ox�J�5���6�qc������//ʕЖ���‚��_��Ə�����Fh�	|G�}��������I.-沲����a6�q�/&�D�ie��l�^P��ʟ�7�����5�Ǎ�ox�]j̷%�[�t�������	./�ݘ���c
� �`rL�'�g�؊���4��_	�9Ԕ��K�M'd֫C��>�����q=j�e��^>/�G��6�-����������[���t�F�r\���鬌>t2ݡF�&�D�����p
�Fk����Ǿ�n4���y,ri���UY>��mv$-K�9 ����?i�ُ@�G��S�����y���/���%�m��@�-o���ӣ�g�g�8���yQw��;�'\���K�+�yC#��F�xb�[�a�$
�#��㰵��F\��^|��]��2��ߥ�bp��~-p�`\�W�Ӣ�5i:�����K��=N�\��j��}Q��(�le��t�sT��o�%�b'vv�ۂz�i�I|:�e󍝭���J�yV�6?��[����O�/�:͟��oo&�d7�@d�3�[�VA(C���Td�Kd��x�F��\�geԯ��˸Yc2�!�	V*�-��8��<[��r����.p��K
��9b�W��於��n�4_���\�yR��8�)ӒR�+΢甜�6�om4K��Ǜ��������{Ս6a2r��9ޠ���u���N�Y��ŝ�����ж�HS��3��3w�����y�=E�i+yy�5����V�raie�A\n��u���E�a�!��(.�/���f
�Iq�F �'������r��.t�[
(��m��>{5t��ݣ��?�2>-�sj_X�Υ'
�Gۿ+���g�j�eh�{Guie_4E�#��?2�*��lÐ+��ºv� ��Ol_cG�����O�dr=���_G�xR���R{�w!�!�I|�����8���6Wg�Giw�j:\��O=����G�Us��S8b�<ey�<��ey��aa�����H�՝�ߺ���[;3ڥ[���n��>gʯ��U�ﭻz����xV��Ҥ�t��M�l2c����6�b	9"DPH�Z�8�	⛿&����Y;]V})��i�2�$�q�S�N� �!�_�~��R��k/>T�k[�i�?��4�)v��8���7c�1�@���=Z�C����ScB�_�i��\���%�dPs�f`岂��\NY���)}RT��y:�{X��&���o�9s.��p�lڪ��T�Rp�"2��M;�B2���ݛ��nz]�����.��}J��PMf��-��^&�vImzʃ��(H#vs���_�ho�^?�M3�7ZDp[��}�y^M�:w��Ѭl�D���8�5�~�,S�6� 񞬚��n���X�m�x�EȍSr�˜uH `�H2����x�����t��|�LK��~�,��-ke����~f�ԒÊ᧏���b�yN+F�I�Nud��ڻ�6彯��6�~�j���mL�����8��
���h'KSN����5$⹒���(�E�E���ivzl-�i�)�l@$��P	�ֻ���,�́U�}� �8���#��<�Hʎ2OJ�j�)�c��o4�ռ�K�c��ڟ�#�����>�o�ZC�l��#$�������(ȯ�!��?n_��ֿ�E�ցmu>�o��k�j�5����P���3[P1���8�5y������*Xl.�;�ί�F�J�Ҽ�e�}^����)�A���xʮ�d�YO����T�N}ye{E=SV_���3��_�U�_��uw����ݿ�"�%t�5��1�}5�HF_�V�"V�Q8S���!�����,�[�x���
x���{{����a���U��K�l^��^8�e�gYE~g�0�G�|k�L���V��K��q_��>�%ȱK}gN��o5;�%���PZIS��ߣ?�·�xW�qj������TԵN���ږ�5[k;X|2�L����FF��Ά/.H6�fP̕�%�[����a�w�\���m_�(�;�S��.�F]��W�I,.KG+�6Q�	��FN1�j��7)/y+.{+��^7��8<mk�f�B�<k�_x��:�<�Šh:kD���5X!1}��Xm�$�#66�;��Oⶻ���i�
�>���}v�J�RB�i�k95	$��ݖ(��<�qn��@�Ef�b�_�1}c�ş������O��@�uYJ����n$��HR_�ų���W�E��Ï��z6��|7����-"��5��J� k�1QD`X�vvbd\������s,]�<���Z�cSS��éƵLUkS�)(E˚P\�j\�W�����_�甸O7y�[���}C�+���ex:ѕH�Q�]Z��.G7UԽ6Ҝ`����^�]|7�{uu�Ol�&�SJky�F��\Km#��0��J��G��~�|Y����G�}h��ms�����A�v��8��A�����#_�.��1��?��
��K�F�Gד_i�[�,NY�m��i�ά�7-Y��wk���c�Ɗ������X�ZMB��6e���\yJ�;C�lA�&���U2�/�)c���xP�Vt�%S	՝NyJ1\�R�m^�-F�4iey��R��c!��r�*�cNRxi�)B��]�T���%Λ���o�������j�]]��9�x�q�MԱ*�H�`I��8n�=k�6�kag��sk|$zj@��x�so0�Q�U#,��?'?%�>,�5!0�P��Y��5���&��%����C��'@�dTPjI
����m@\$v���ط��AT��1��`<;�a��b�[^JjS�:\�{�J��msk��i�'��-���"5�F)�(��m$��"Փz���{�W�%ѵ�Z�~��'pc6ڇ�.7�_�l1 �1�@�R3�מ���z�ݪ�Zj4w���P/wk3pp��/�{�(��h�SK-g�a�L$��`�wc��}k���N=;���^w�u�Mr�F@Qae*�+/@={��xLnIR3��%%Nߍ�ɹ6�d�}5v[�M|��
�+�ŵ}b�w��W3�9�}|1mm�]v�G�#��K�X�֥H&U���1e�r8��|\��I4�;m��[[��E���(\���$`g<���ėw����}?��Ɓ�b�U�-��zFO�^��5?�
��>��b�nKy�����Ub3���}��C7̜���uê�����BIE��������X�M����r�����d޾�葧��5�-�x�E�u�C�ѾשEb�Xجr�]K����V*cEPh�q��>?э��0A5�j��j�-�q��/�ч
���r7�
O��>x__�v���n�g}c�h��&�4��$�&T9X��I��rA��<U��n�ݠ�ڭ,ΛZ6e����9�q�W�C	�a~�S6����U�d��jr�I�vr�z�����w�>J��8�:y�O-u/����GO�<��9*�vP���Rm6Ȿ�X�</����b��9���	���,�U���Α��>V����f�qb�C���su��=����O]�ц���]S�����6h�*���z��WM°�[�g�H�8��u�?������=��0�i�;[��l�K�U�Q�����!n�i�kRٗ+�^B2OЗ�~|��t�/ŽR���]Я<'��ѡy/,���N�|e%ů����[j�>"�"�o-�>j����3�e�%L]w��9�r���9�u�k���q��x���~&�KOsVNJ�կ�i�]���/�/ٟ����h|'�3F���k��}��S	{�v�$��+3�S��Q�s�(�M���������Xt�)��B�?������#��Ӂ_����
<;�C�����Lj~�x�|M����i���3.��]	,b�g�l��{�B�f��b��k�"S�o����?iI�}��[���S�qi�i�7/c%�� �N3�����\#��ӥC�T���c�V+I6���wzY\��qVw���c���r�Bu���EѫV.s巴QPz�A�}RM~�Gw��c��u��s�yRIi�T�,띣:�ǽrt-+�	��{���ާ��iڤ�Z\������v+n;T���O[��^�^��Y#-�jvZ�]B����.������۫]<�+�
<���6�D�ʛd�F��'`���H �֥U�X�
��<3i$��̜'�zo��������[���q�^5�x�b!M�[ÖQq�'Ȝ��J��KGc�f����#�}�ۿ���;�
x����)#���市�g+�����lG2D���F�N��!K�3X�:d��9'H���6>�jdtSj�۶���a������Ko�^�;�g��g�h�]�xD\��5䊊L��\כ��%J�Ј��S�>M+@��[X�����ɻ���xa��h>[ȂO7
���R3�dW��'���mZ�}.g��j��hR�����[R�T���,�������<S��7�{�1���᳏����4�kMʜ�%Ju'Z���Ua��E�u�#�:ߌ-u}Ve��L��a_1�$�pNG��5��ou�_�m'�c�Z�ˑ�p��y8'z����w�����.a�����mB`��9�.����b���5{�^��x�k[@�m�1
ݤ��ַDqq0f.�ؠ2���)O$^.�:�T�,�p��i��rN-^7�j�ҽ�ѣ���*���֊��I�%YΚ�ķ�(6�I���&�п�a�%�O� �-e�Vc|Lqyp8P~���=0Gֽ?���:T�h��, ����"�%�bUbkvٕ�X;���8�|C�6ږ�rn-%��tx��)�|��y��+e��

����}x��H,o��]?Sӏ�u�$rr����p޼�~	)MU����r��t���劚|�Z��|��<���X\UJ��V1M����-m����E��w�[���c1��7fY|��x�O�l���x�}��{l5q}��
"^d�p�Co�ĝ���9�הi1G��
ij���%�I�dBeS#����f�c��sJ�H��(o!��$����@S#�o��n�c9��
������'���O�mӿ;�o�sJ\�m�+�5t��Y�L6[?oI{ޑ��s����D�ӻ�O��>���G�x^���D�zrO6yv�}��&H��|Ǔ#������a��D�,	�?֤���%����qڽ����47�ե��5���8���Dڀ�n[vwp;�~i�����&}R��M6��KȢ�oo�q�RM0���
�B�Sq6�Fy[:��4s:�<$_%>[Ɯ�g��Y��\ڣ���cs,$q�#B3I.f�u��掫]�����_�����{º��=-~.�K�񧈾(|C��o�|�M�<S�K�	��� ���dfK�;�sO�����DV��Z~��I��_�����[��7�~x[\��[����
<?
�:���?_��H�u��R-3N��(�as-�W�����S����<s��O�E�{��n�R��_F�5?x�;�f��J�~|��Z^�<m�)$=PL֏�|_����|<�N��x��:lw:��ե�����F�5�,���n����7^4�Ĺ/����U:�q�u!g)�Ž����v���������+:�����nv��Q�]6�v���oS���/�%��m?�w��?��|b�G�|-a��c������5���P�o�ӵm=�K�Pb�]?H��]�h�]����B���cO�&/Ÿx��??jx�\���|�S��P�T���Mi�j^���u�8n��]+É.�ڀ*�኉��A�?�G�%�[Wִ-��=��֣��ajZ�ԎCE�kV�$�c�N�f�7ى�[�*v��K�oZ�����Ax��j7z�1\@�7��4���㲞��K��,mRd�a��$�����,~QMUq�*X����ʃm%��|ܾ��~����*1������Q��W�-�J�T�w��%mn��o�w�	ŦM��������OA������Occ�oxo��G0��K�xz=6
I��
fڒ@�\�.��ݯ�?�������?�OǶ��m��4
��p�g�Zl(����6�%�u[
n����%�?�� c�<Y�����?��x�=�&���f��w~#��|-6��Ƌ��A�^_܆.t4���ݸ������8��������uo�C�>U����7!$���MV�[�N�� t����G �E|vk��8�p����wus%{IZN���֗G��t�c$��Ue��ys-%��M�t�w�&��_��|e�s��M'���k�/������xf��>3�����J̀[�X�]��D����og�G{rfkx���;�	��^����;	����Yi�ǭ�iwb�Kۆ���ӑ�͚[v��'��h�T��W��o�����Gԡ�>��i���wsj�M?W���d����4�ɖI�yM*�'������Z���4�[�V��D���E�n���}Af�4F�D)�����q��^��W�p��-�ݾe��٦�6֝O��8ˋ�Y����a�a2�]�Ӥ㇣��`�'
2Q�QJ<˙��Z��?��bO��$z����[N�֕�}�tjӼA3�@/�˧γ�v��4R�*\����va�j^���i�5����-��%����
���J#q@��_'
�9�_
~#�B;F_^�Z-֗�j��_��ê�#M�K��G�@�]�Vh��xm�f������o��ڍ��X�-���vzM�3�k=N�0O+\$R�ʄ�pq�xܖ�ӚQ��̽�-U��[����Z�ל�������Yfu_
R3y�"�E���{���/���oM�6�m�}�5�W�3�dU&����$j9�l.̎=���Ou�!�[���Q���u�bc(��o ��c�z�����|�$�>�r� �_]j0YN���v���K�c���3|�-�|�W��C}KS��N��t�#r��j&�I�)��$K�A�(������>˖u�B��#�VM�F�$�y���I;���P<&�'�(qY�K^��JT��精#�'b��~>d�u#��=�մQ}%�����k=���+1%VM�yP��#��u�R�ŝM���W���MF�O�Z��G��Z��3)��e�p�v�;�ڥO�����a������8ѧ����$񓁟R
t^)�N�����#k�c�iL�3�萤&��<�+����W�X��.�*TgCUʓ�Ez���s��FVPr�T���s��c3�����c)�(�T�R��T!-y\�=�d��~�A�[o
h@�m�""i�[�\�����t�lL5��[� �d�\��Q�G�@��B�}ZX�O2�=��j֒J��)�bG�QBT��+��)k�i��><]oSӓO��эܷG��S�ۆ�4�4F���P]��}I�t�h�>#����������#��5�Cql�5��eLLb��)s���G#�d�Fa�V�-'%��[���~�#(٫|RWI���7��̯2�O���_����>\��rT�x��g(���.�]I_�������~
��q��v�Z%ŭ�^�jH�g����SU����i���Q��iڥ��M�.og#[�5K�,m�H�-��$���2h�&�6輹/��0#†aMoj�mB7���%���;�4�k���{j���w!�O2��nŞ&�U�4� i��]���jVp����[��5e�
�k{K�ѥ�H�r?�D����2��N8|m�jV�9^�l���h�j�������a0��d50zҋ~�PSi�,t����'��?i��"
Bk׺DKvw�E����}�i4��+�/�o��Kk����H�of4������
h������Ӎ\�9r/g�D��YY�F�Y���(�/
xV[�]k~7��M� {�WR��f�4�,�ia���kȡ��I���HayZBF܀+��>)|/A�kŃG�]�-%���qd�Bm�{�]��G�m�eN;�x�C��e��bg��*����J1vp�,R�m;o��lC7�aa:Pº�Tp�!R��j�m�yn�{'��Zxn�O�2�R�J��^xkK�֩0��"U�K�q�jR(B�Ta�nRد����_����'�дo��O�҅���O}�_Y�Z����CbKx�"�򁔡*N�_J�S��_���4$|<����ӧ������х�g������O�5�8��f_��7��A�Ch��
>$Š��L�U���n_T���Хޛs�XY��i��1�[I��@)i�T�r�bx�/�ѕ,]V�T�U���̞ѼRt�{��א�>�x;���S�jUh`�V�{$۽z��|�E��i���|s��yqw���>3��.%J��kki�vĒ�snd�V�P��%#b�l[���m��~���j�>\á^�/Q�G�涳�L�#�	�����1����k���H������~�[��}3��뫧Z���V��0���Kɭ��ij;I$sKLfC(��o�O�y�N�K��4���O<��V�g+;F���b,�+?�,�vr��]|�T�K��PV�^j������w�9V����:�+є��k�Q�������i��NN.�Vӧ�ߵ?��|T�����V��!����x�P2x3�:e��`�兎�n�i���Gx���$�[�E;}g�����"�W��{40k쯵�'Q��<A��[j�}z�����o���XD���˧���/p"�)4��{���Ss�����O��&x6�#�G�6���֛y-ƕ�Ǝ�����5��&H��_�_*�����E�&��K�����5��M���6�QGkq޵n��ZJ�QYވ������a+�(�9i�����V���F����Y])7��,S��yp�;_[
�X8��-:�u=���|�p}�t{�?d�#�Z��.��5���ص{M_X��o쯃�\���4-��Z�q<q�1����`Bߛ�A�x���v��j�]�:LJ�e��L�+�A=�ɘƠ֬�O���LB�z'�;�^"�d����oO�[Zj�K�[�Oj��za���5����Fg�L2F]�LĨ����T�G�ƾ���7��v�jL꺅�Μ�W����ż��l\�
�x̓�e�:�|d��eNJ7�鹹K�5ݫ^�~�៊Q�6s�$ǹ唹V/�d�a�hNP�!8�W�oG����p��k�f��������z��lH�
��-�����z��7�u�[�B�&�5�A���2Lr��RL���:��g�w�|c�u���H�� ��3���ic}�m%�a�$���v!Df�>���'�Oڗ�~ ׬�4[/�6�M�$[y&�Pe��0
P�|��
�\?���Ȝd����55©^>�aR.��9��4�J�L�c<3�w!�g�p���0��:�R������N�\�MMM4ޜ�o[�>�ia���Q��K[KX>�~��7�C�e�6)y
��_T|X��~�J��- ����'�3�G�/�,�1F��%��X���~o��^��x��!���V��k�7R��iok`��^��L-\H�3$�8����p�����z�ݻ�Z�Z�;n��u��H<�K}�C��ˏ
�2���p��enM��u�S���`�F�"����Rը4�w�ӕ��Z�Q>O�,���(��E�(`e��-)K�Q��[o%Q���j+Kݙ߶?�xO[�#qk�i_��-�X��x�cW�ѢM��Y�ھ>յ��`<|O�xgU����h,폇�>��i�a��_K�1���缊�2f�K�)�	���-�~���?Zj�-�]_�ڣB�HZI��� �WY�U��[D�"��(�Y�o����OԖ������C�x�{�]�M�R�]�ED�����͞[2)�.&e��̻����'��K�8[	N��N�.R�|C��Q�+ɷ6�j�k}v�Ux��<A�?bro��s+l�~mT�l���F?j�������x�S��e��
&�n�]6���I�i�7�iy������kWIq�I{h�725���h�"��w~H|x�7��kz�.��j���K=�1ݛk�Q���Q�Z^���?h�F�o�ʗ"�|l?fύ���F���Ë�=,<#�m.�{Xt�H���ݙ$���{g"M�������?hs�_跾>�~��U<K��:v���Z6��u
�Ju_.FtVr(P���&�,�"�cpYE�3S�o��+�RNt�*�J�7(���QM�/�)�3�3̿,��q˲�>&�><�0�+���b�`�B0�J5��Q;]]~"x������kٮ�f�y��Jf2\�E��{U�!��Vlm�$~��1���
�m5��-ռ0 �
Kn�va��6���RӤ��l�1(�?,�x����~�Yj�&��,���m[My`������/.�w�R0wm���G�>N������u$�灵{�9$�m-4�]D}�����M��쨿�V�Y�$q�ϊ�&u
�:�W�q�����R�U9>[S�&����n��Ri;�/��>�_�b2�8�*�ҧK0�iQ�[=�i����j��Wk��Nͫ$�}�¯�+/���wz_��1g�S^�l$�Weq��̉"y�c��v�FE��{��7?D���g-�˱n<qᇺ������c����D�-���H�6���l��6Y�
[�#đi:����h�E�����+a��C�ź5�v��瓷b��x��g�nL��Z�N�Q�w��3(�ؗ��q����xc�U�,��LDc*M��.2mF�NIIm''gu%��>��qtj���9��a�_X�<"��*�V���	sFRJ�W�[��k�C�KKx��^.��Bhw֞.ӓ�O{7�wƐ]}�ݒ�F��yn������Y��l�m��d:�֓�CG�<E�Y��v�h�[y�eh����@���ݰK����~<�b�|u���g �A�/o!��'%����]]FK#��\FFk�|'�⧁��|��^#��_���:r1Z^E�G������<.��<��/4�Q�����"�5FW��Q�1v��5��Wg����k�x��pχp�3^��9�Uq��2�ɧ�v�����#�'�S��t�๽�&��Β����4����K�kK50y�o���B��Y��"��O�����~��Oh�S2�u5�tۙ'�[H�Mvwl�t�����ڤ����+��� i��'�
��a�յi�������S�\Qd.�Qq��+�o٫�
7�U�!�m/�+�h\i��4�6�Vr��{xm�Rſ{0w���8�üeU3ib�!�n���N)BZ�9Ir����߈���f�'��U�a��8���s{)8ƊV�t�j�/&�����>!�3�nu���=�
�+_A5��.�6����I��Z���A$-������[yCd~D~Ѿ,𧊾+O��S�tt���Z��;�;^��t��ɘ`gK�,\HPO�ܟ��9~տ?�%�X����4w>"�k�-��hU��Ff��'l|�rI=�����β<.�WQ/�I���5����	���q#4��٧�*�� n"����<��ӧ�„qu�3N
�>YK�7��S�b��W3R���l����9��E_�s�,��X�:�1�ʧ%��'.d�S�p�~Y(��1t�,����Kw��x;���j�����D�`i$���Fv��Y��?{��^�O�����kmA��UY�X|�7� #w��8�+O����%��3ά%,I�ǜ�%T�6��~}[��n��薞%��xuh��G+9#�s�����\�r�9E8d��4g�͒�X���˥ӳQiE-�*Ot��̱�HW�bjҌ�bc�*RR�j�=ߕ�O�m���PK粐\T'O+��html/images/strike.gifnu�[���GIF89a�d���Y�`tH s=��嗼k2�d&`L'^A	_-\�>�.7':�uΫuq3r��u��O��7��)�o-�a �L�H��Ӹ�vstkc[ͨ\��W�v%�lHGHB9+O=>1��F��@�Y�T�[&�Y&��F��]�q)�b�I(!%�c1nX,��xL"
�8��K�{>�n:,�dE���pH,�Ȥr�l:��ht��Z�Xl�׃�r��Ƭ!|#���x�@L��U���h���f()6?
>wYB
./=�L/�l�:/]0/6�M6
�8#4�
�
�)8 90\4	
�O
5(8>8'808!_ !7>>7))5

[>�\�Xy(6��)��x�0<<"<#<�8	pxCQo�&j�XXc��d8�@Ĉ�tM��Q�E�o܈�r�L%A�e�/��#�.�$�5����
JQ�S�z���Q�Ȓ'�m� ���8'BB�$��񢃃X��Z��N�qF�n#I�G�0`����0J�t�<X0�$g�<����`@�p�a����h�� �6r�:th��P����	Z�9��!C�
;��ȐA�zt�@�Awg͞En�{r��e�X�Å
2vh8`��,0�������w����w�5��`:p�]��=hr��P�,���r�`��
*��	�PB�$\�!�h���P7��3�B^��
���˽؁r�	Ʒ�~;`��/h����`����%����RG��ԍH��7*7�)�y��,�P�� $�&�y��hb�!Nw���iȁw�����b�p��3l���� ��`�B��p"	��BF*�A�ݧ��@�*�p�b�)�t��\h�!�ޅ�"�3p�H 0�2!�p�&D�mC'�CN�	)p�B�"��՚KE� ��PC?\b
QC���>����/,]�C8�]�0�"��k�6>�/��2p�D�Hؐ�40`�5��Q<D���]@��V,���],b����B*�����HD���a��2r�El��~@��
<�&��µW(�9�U@���
4QT!pa�=t!Bx@�#�`�7&[�O0ܴ4F�tkE
D�ӏL�X}D
��my^(�K
H�qJ}Q�p�P7��5� '$��4!�Ό�UY!P�	�4d�����]8�bRC�af��V�% � ��k�
u/���NN�)��`)�\��[nTU��z	��?��~󜠋����ͻRBH��Ah��s��HB1=�5�լ&A��w$��G�1L��p@�H�&8p܀�*�A�d�z��Kb
DAEVr@��"R����Z�"7�S��]��l(C4ځ���$��C���vp��`�?͙�2��f���Z��M�`@���!H	�B�)���4&����:$��x���B)�W���B2G�#�0�"<�,�I ��4�� ���ԍx5�_��N���d�J_��,ǚM$&=��kb�� �
*Lw���",�2Q�d������\�M�����������"��(A)�ʈ_��J �7��S4(VY�yNU���a�X��8`bM�B�І:�_�Cel��]�����F8!7�*��B3��J�֕�K��(7v!�G,`d�`��P�ru���
[�|
�a0��K��>�f���<��THEJ��� ���ʜ��`_=B*�h�@:�F���6�;�� �k�0ָ
u�@��������W�(�B` �I�N{�5o�m���x�	'Y�	N��^�tOA�0j�]�[b��x�sP����уT�+ �5F�\�֥n�k���o�T
��]����F
2c�DF>ddum����n����Y� ��x[;a9b��v�.Q�X�����I�P7<�^UslK�F|"���͇���T�#��^�e�]���P������ZS+ ?E�����%yB0X2�Sd�*��I
N�
Fz�h]��b���}���b�6'b��KwI"�AL�j���"�LP���홂�xO"�ED8���P��-�mCx�S���ZT�0X>�[7n���]J~�a�*���&^xP`3��4`�浵ӘLUP0��0`�`��n=�L���Mm|�l_�|�{^XǓw�7(���u�=QtO
C�Z�Gd��.8F(��b�7�Ѥ��?�Yk������gC,�Ё p��,�Q��|�C�4:�!��S�hA>���DGeyA��l�[��A�x��9��� ��+nD�o��
�h9/���3���2����,�43�Y`�6>���@?Z��$�S)�����\}��ң�e�Y(V�~y�G]hP�b"[@�C�hY3XO�d	O!U'S-�'����9; ��7�M��B'�����G��W\N�5H=��WW��Zt�4��F/2|	D� Q�Prd�5]H<�bx�E}r�h��%(6r��7&ۤ�b���RgR&I �A�H�����(Cf��r��Gb9�B����tvr{��"�"�r#�t�"��"3�,~&^4$�r)uB'orL}�E; �B!��1,���Ld)�RKL�G�$Fd{��b,U�y�"y�wIZt+B,-�JprL3|PEH��uB�"�$M�b)�G��)�MXrN�B"�I,@%�$	0 x�E��Dp��'+p5�+�4'o��TpEGf!,�gP	u��M�`���@�7F���M�0 פn�a�y��)�q&�M��)�b�4�A��on�B-p�Ge�� P����-�_�h��-��!!�bB��¸��������8��X��x�ؘ�ڨ����bcj�7�Ts^��h��D�3}�cr�_�"�X%iYpS��\��0�T���UQ0��
\�wU�Q8�ZO�Rs�R�nB03�3)��sxCF�L�(p\v�U�0�#��P\]007����pW�UTb�"p@*"���9f@=@
i�#_!)�H�v����2)6��R	�@�q�2E)b�XpeX)�2	)P0�
yf���p	^o�U/0�7��J�U��9P�V9�0VY`�4���:@`>����Y@�I����66�C��R�
��
��	��bU���4�_�^@X�T`�iM32Ǡu%6	_��`!`	P9� ��fU4/�S
LE5��x7���Vf�W0��
8�!��"3�Z�2�	�R)��?��U7.Z�Z�cf�C�‘8�eI����U�c�V�եPb�\��G��Sc"����T��fP7���O�\@8_���Zj�6�65`��9�ؠ
�g#a:�)�h �
P]*f]��^RLu2_a��_�S#7�cwћ����x&RQa�Uj�u�J`V����aǀ3�\u7qU�9�����P5 �S4�����r!"�]��
�3T�vS6T:S��Z7*��i��H���-HeI���g2q06"Щ2���Q;3��N�c��q9�*Wc�:d�I樷e$�R�����-J9�� @f?�0�C�=u��c���f6dE�
��W��&4E@/�
e�c9u�u�[��
��X��$���;=`{��{�8�ej��c��N�E
�c�:MH1i�1E��s��\�ғ�Лa��i���f�nQ�|бy�?�vs$k�g�s�="`L�;��S��
���D15�� z�a�U�#	7�/pmFXa��y�
�!@��e� �~�l���>X�_�s��<:��{bz;FQ
�=���jd�jCγ[�%=ax1=z[� [@�fm��: =�AӃ���<�6i(q=�F��aAߦ��p�p��Sf�p���m�6��k;�����<��=`�aW�<�B6�i�A�q��{=�����g5�k�V�C=�K؃ϻ>����Q?��:`��&k*d���B�$\n�� �!l���k'|2��!m(����T 7l�F?�iE7GRD�Xa=�7�v�Vr�f�{@#��o�A��xs�O1�BE������i��k�i�q����C@���!�A���!7o�q@�A,'t�qn�s-�qeH�Ô�n7w�C�
G$ cs�I�u��,@Gu0p�!E��iD�@��$h��I�Ɔa�A%Q�	O�"@u����'s%�F*ǽ&Wo��`LH{��vZ$"��equ���2}	4},���/�*T�W���;�s�9ɅsR�ƾ�J�Ѿ��~�¤�E�ґnB�u/H'ktG��̱�$����)��vaW�g��L��BGRE�/�GV��x���L4���! �/�~��%�"�L�r�W@F.�M$�M�F�9�IH�+Q�=@%�lmҀ�+!"x���ޗ!�L��l|~D:������yˡb��++��1%\�+�q )�B$/{�w^�E)�t��(��*�8�'"K�)�7"�4#}�!%�K��m�*��(�`o-NG$~tL�$I�,}�{ErH�"��$��nr!P|�7x��&�B�M�|rK��u/�KO}q�rP��}ݧIi�'a€�tIe�"2H*��`�~AR6`��z]ϙ#ԡ%Є��B�I�ĝJ��L�g~i�J8կ}��d~$pI�E�rF���tHD��X"}hQ��RE��Ԯ�/��}�d&~2ؓ���8�}M'��w�~�"�wH�ǁ���!L��%}̲!�/���{��J�$u��&$�L)�V"(�TD�zƄE�WH��!G􁉂E��(��/���B���{oB|n$c�”�5��t!�~�wێw�H��9xE�(N�G��/C�+�'�ROaۓ�5x#h�*��]����"$�͂��=��(��L�W�w�/]�J;�)�!Z����#;΄T�Ą#E��K�a�^{B�D�RKH^�Q,�Q}8�,��!�9�%�%p[x�Ȋ3݅VH��W�R�2�x�M�1*g��+�&2`"R�4��}x�I�r�,�2��@B�}< �D�z�B���=�A�v1m�brF�T"�4��)�wBŜO���D�G2�����/�)	�Q�ü%#/��ttL�(�wBW����)XR��.aE0s0�	J�OWQ%�D,�V`���¤�Ȍ�ȤL:M�-$��
�;B�-�B�	Q��Ȥ�ʎ���Ro! ��;PK粐\��}jhtml/images/warning.gifnu�[���GIF89a((����nnn�����!�,((���p�H+�ͻ�`�)f�h���؆p�Y)�0M�0�=��u�������<��A����C6�\��Uh�u����-�Ң��4�7� {�~MzsK��p`�3�e���!�����|�y�q������ ���a������f�.��A�B�>1xu��e���{��wÃ���!��\ΟX��Ƚ�W?�����H������r��I����#+���
Đ;PK粐\���OO!html/man/TIFFFieldName.3tiff.htmlnu�[���<!-- Creator     : groff version 1.21 -->
<!-- CreationDate: Sun Jul 29 12:12:01 2012 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="Content-Style" content="text/css">
<style type="text/css">
       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
       h1      { text-align: center }
</style>
<title>TIFFFieldName</title>

</head>
<body>

<h1 align="center">TIFFFieldName</h1>

<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>


<h2>NAME
<a name="NAME"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em">TIFFFieldName
&minus; Get TIFF field name from field information</p>

<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em"><b>#include
&lt;tiffio.h&gt;</b></p>

<p style="margin-left:11%; margin-top: 1em"><b>const char*
TIFFFieldName(const TIFFField*</b> <i>fip</i><b>)</b></p>

<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>TIFFFieldName</b>
returns the textual name for a TIFF field.</p>

<p style="margin-left:11%; margin-top: 1em"><i>fip</i> is a
field information pointer previously returned by
<b>TIFFFindField</b>, <b>TIFFFieldWithTag</b>, or
<b>TIFFFieldWithName</b>.</p>

<h2>RETURN VALUES
<a name="RETURN VALUES"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>TIFFFieldName</b>
returns a constant C string.</p>

<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>libtiff</b>(3TIFF),</p>

<p style="margin-left:11%; margin-top: 1em">Libtiff library
home page: <b>http://www.simplesystems.org/libtiff/</b></p>
<hr>
</body>
</html>
PK粐\���<4
4
&html/man/TIFFFieldPassCount.3tiff.htmlnu�[���<!-- Creator     : groff version 1.21 -->
<!-- CreationDate: Sun Jul 29 12:12:01 2012 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="Content-Style" content="text/css">
<style type="text/css">
       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
       h1      { text-align: center }
</style>
<title>TIFFFieldPassCount</title>

</head>
<body>

<h1 align="center">TIFFFieldPassCount</h1>

<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>


<h2>NAME
<a name="NAME"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em">TIFFFieldPassCount
&minus; Get whether to pass a count to TIFFGet/SetField</p>

<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em"><b>#include
&lt;tiffio.h&gt;</b></p>

<p style="margin-left:11%; margin-top: 1em"><b>int
TIFFFieldPassCount(const TIFFField*</b>
<i>fip</i><b>)</b></p>

<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>TIFFFieldPassCount</b>
returns true (nonzero) if <b>TIFFGetField</b> and
<b>TIFFSetField</b> expect a <i>count</i> value to be passed
before the actual data pointer.</p>

<p style="margin-left:11%; margin-top: 1em"><i>fip</i> is a
field information pointer previously returned by
<b>TIFFFindField</b>, <b>TIFFFieldWithTag</b>, or
<b>TIFFFieldWithName</b>.</p>

<p style="margin-left:11%; margin-top: 1em">When a
<i>count</i> is required, it will be of type <b>uint32</b>
when <b>TIFFFieldReadCount</b> reports
<b>TIFF_VARIABLE2</b>, and of type <b>uint16</b> otherwise.
(This distinction is critical for use of
<b>TIFFGetField</b>, but normally not so for use of
<b>TIFFSetField</b>.)</p>

<h2>RETURN VALUES
<a name="RETURN VALUES"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>TIFFFieldPassCount</b>
returns an integer that is always 1 (true) or 0 (false).</p>

<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>libtiff</b>(3TIFF),</p>

<p style="margin-left:11%; margin-top: 1em">Libtiff library
home page: <b>http://www.simplesystems.org/libtiff/</b></p>
<hr>
</body>
</html>
PK粐\.�Q&html/man/TIFFFieldReadCount.3tiff.htmlnu�[���<!-- Creator     : groff version 1.21 -->
<!-- CreationDate: Sun Jul 29 12:12:01 2012 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="Content-Style" content="text/css">
<style type="text/css">
       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
       h1      { text-align: center }
</style>
<title>TIFFFieldReadCount</title>

</head>
<body>

<h1 align="center">TIFFFieldReadCount</h1>

<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>


<h2>NAME
<a name="NAME"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em">TIFFFieldReadCount
&minus; Get number of values to be read from field</p>

<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em"><b>#include
&lt;tiffio.h&gt;</b></p>

<p style="margin-left:11%; margin-top: 1em"><b>int
TIFFFieldReadCount(const TIFFField*</b>
<i>fip</i><b>)</b></p>

<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>TIFFFieldReadCount</b>
returns the number of values available to be read from the
specified TIFF field; that is, the number of arguments that
should be supplied to <b>TIFFGetField</b>. For most field
types this is a small positive integer, typically 1 or 2,
but there are some special values: <b><br>
TIFF_VARIABLE</b> indicates that a variable number of values
is possible; then, a <b>uint16</b> <i>count</i> argument and
a pointer <i>data</i> argument must be supplied to
<b>TIFFGetField</b>. <b><br>
TIFF_VARIABLE2</b> is the same as <b>TIFF_VARIABLE</b>
except that the <i>count</i> argument must have type
<b>uint32</b>. <b><br>
TIFF_SPP</b> indicates that the number of arguments is equal
to the image&rsquo;s number of samples per pixel.</p>

<p style="margin-left:11%; margin-top: 1em"><i>fip</i> is a
field information pointer previously returned by
<b>TIFFFindField</b>, <b>TIFFFieldWithTag</b>, or
<b>TIFFFieldWithName</b>.</p>

<h2>RETURN VALUES
<a name="RETURN VALUES"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>TIFFFieldReadCount</b>
returns an integer.</p>

<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>libtiff</b>(3TIFF),</p>

<p style="margin-left:11%; margin-top: 1em">Libtiff library
home page: <b>http://www.simplesystems.org/libtiff/</b></p>
<hr>
</body>
</html>
PK粐\�z���� html/man/TIFFFieldTag.3tiff.htmlnu�[���<!-- Creator     : groff version 1.21 -->
<!-- CreationDate: Sun Jul 29 12:12:01 2012 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="Content-Style" content="text/css">
<style type="text/css">
       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
       h1      { text-align: center }
</style>
<title>TIFFFieldTag</title>

</head>
<body>

<h1 align="center">TIFFFieldTag</h1>

<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>


<h2>NAME
<a name="NAME"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em">TIFFFieldTag
&minus; Get TIFF field tag value from field information</p>

<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em"><b>#include
&lt;tiffio.h&gt;</b></p>

<p style="margin-left:11%; margin-top: 1em"><b>uint32
TIFFFieldTag(const TIFFField*</b> <i>fip</i><b>)</b></p>

<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>TIFFFieldTag</b>
returns the numeric tag value for a TIFF field. This can be
compared to various constants exported by the <b>libtiff</b>
header files, such as <b>TIFFTAG_IMAGEWIDTH</b>.</p>

<p style="margin-left:11%; margin-top: 1em"><i>fip</i> is a
field information pointer previously returned by
<b>TIFFFindField</b>, <b>TIFFFieldWithTag</b>, or
<b>TIFFFieldWithName</b>.</p>

<h2>RETURN VALUES
<a name="RETURN VALUES"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>TIFFFieldTag</b>
returns an integer tag value.</p>

<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>libtiff</b>(3TIFF),</p>

<p style="margin-left:11%; margin-top: 1em">Libtiff library
home page: <b>http://www.simplesystems.org/libtiff/</b></p>
<hr>
</body>
</html>
PK粐\���HH'html/man/TIFFFieldWriteCount.3tiff.htmlnu�[���<!-- Creator     : groff version 1.21 -->
<!-- CreationDate: Sun Jul 29 12:12:01 2012 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="Content-Style" content="text/css">
<style type="text/css">
       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
       h1      { text-align: center }
</style>
<title>TIFFFieldWriteCount</title>

</head>
<body>

<h1 align="center">TIFFFieldWriteCount</h1>

<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>


<h2>NAME
<a name="NAME"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em">TIFFFieldWriteCount
&minus; Get number of values to be written to field</p>

<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em"><b>#include
&lt;tiffio.h&gt;</b></p>

<p style="margin-left:11%; margin-top: 1em"><b>int
TIFFFieldWriteCount(const TIFFField*</b>
<i>fip</i><b>)</b></p>

<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>TIFFFieldWriteCount</b>
returns the number of values to be written into the
specified TIFF field; that is, the number of arguments that
should be supplied to <b>TIFFSetField</b>. For most field
types this is a small positive integer, typically 1 or 2,
but there are some special values: <b><br>
TIFF_VARIABLE</b> indicates that a variable number of values
is possible; then, a <b>uint16</b> <i>count</i> argument and
a pointer <i>data</i> argument must be supplied to
<b>TIFFSetField</b>. <b><br>
TIFF_VARIABLE2</b> is the same as <b>TIFF_VARIABLE</b>
except that the <i>count</i> argument must have type
<b>uint32</b>. (On most modern machines, this makes no
practical difference, and the <i>count</i> argument can
simply be an <b>int</b> in either case.) <b><br>
TIFF_SPP</b> indicates that the number of arguments must be
equal to the image&rsquo;s number of samples per pixel.</p>

<p style="margin-left:11%; margin-top: 1em"><i>fip</i> is a
field information pointer previously returned by
<b>TIFFFindField</b>, <b>TIFFFieldWithTag</b>, or
<b>TIFFFieldWithName</b>.</p>

<p style="margin-left:11%; margin-top: 1em">For most field
types, <b>TIFFFieldWriteCount</b> returns the same value as
<b>TIFFFieldReadCount</b>, but there are some
exceptions.</p>

<h2>RETURN VALUES
<a name="RETURN VALUES"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>TIFFFieldWriteCount</b>
returns an integer.</p>

<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>libtiff</b>(3TIFF),</p>

<p style="margin-left:11%; margin-top: 1em">Libtiff library
home page: <b>http://www.simplesystems.org/libtiff/</b></p>
<hr>
</body>
</html>
PK粐\X�O

html/man/TIFFFlush.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:16 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFFlush</title>
</head>
<body>

<h1 align=center>TIFFFlush</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFFlush, TIFFFlushData &minus; flush pending writes to
an open <small>TIFF</small> file</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>int TIFFFlush(TIFF *</b><i>tif</i><b>)<br>
int TIFFFlushData(TIFF *</b><i>tif</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFFlush</i> causes any pending writes for the
specified file (including writes for the current directory)
to be done. In normal operation this call is never needed
&minus; the library automatically does any flushing
required.</p>
<!-- INDENTATION -->
<p><i>TIFFFlushData</i> flushes any pending image data for
the specified file to be written out; directory-related data
are not flushed. In normal operation this call is never
needed &minus; the library automatically does any flushing
required.</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>0 is returned if an error is encountered, otherwise 1 is
returned.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the
<b>TIFFError</b>(3TIFF) routine.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFOpen</b>(3TIFF),
<b>TIFFWriteEncodedStrip</b>(3TIFF),
<b>TIFFWriteEncodedTile</b>(3TIFF),
<b>TIFFWriteRawStrip</b>(3TIFF),
<b>TIFFWriteRawTile</b>(3TIFF),
<b>TIFFWriteScanline</b>(3TIFF), <b>TIFFWriteTile</b>(3TIFF)
<b>libtiff</b>(3TIFF),</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\2|������ html/man/TIFFGetField.3tiff.htmlnu�[���<!-- Creator     : groff version 1.20.1 -->
<!-- CreationDate: Thu May  6 13:48:43 2010 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="Content-Style" content="text/css">
<style type="text/css">
       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
       h1      { text-align: center }
</style>
<title>TIFFGetField</title>

</head>
<body>

<h1 align="center">TIFFGetField</h1>

<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#AUTOREGISTERED TAGS">AUTOREGISTERED TAGS</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>


<h2>NAME
<a name="NAME"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em">TIFFGetField,
TIFFVGetField &minus; get the value(s) of a tag in an open
<small>TIFF</small> file</p>

<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em"><b>#include
&lt;tiffio.h&gt;</b></p>

<p style="margin-left:11%; margin-top: 1em"><b>int
TIFFGetField(TIFF *</b><i>tif</i><b>, ttag_t</b>
<i>tag</i><b>,</b> <i>...</i><b>)</b></p>

<p style="margin-left:11%; margin-top: 1em"><b>#include
&lt;stdarg.h&gt;</b></p>

<p style="margin-left:11%; margin-top: 1em"><b>int
TIFFVGetField(TIFF *</b><i>tif</i><b>, ttag_t</b>
<i>tag</i><b>, va_list</b> <i>ap</i><b>) <br>
int TIFFGetFieldDefaulted(TIFF *</b><i>tif</i><b>,
ttag_t</b> <i>tag</i><b>,</b> <i>...</i><b>) <br>
int TIFFVGetFieldDefaulted(TIFF *</b><i>tif</i><b>,
ttag_t</b> <i>tag</i><b>, va_list</b> <i>ap</i><b>)</b></p>

<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b><i>TIFFGetField</i></b>
returns the value of a tag or pseudo-tag associated with the
the current directory of the opened <small>TIFF</small> file
<i>tif</i>. (A <i>pseudo-tag</i> is a parameter that is used
to control the operation of the <small>TIFF</small> library
but whose value is not read or written to the underlying
file.) The file must have been previously opened with
<i>TIFFOpen</i>(3TIFF). The tag is identified by <i>tag</i>,
one of the values defined in the include file <b>tiff.h</b>
(see also the table below). The type and number of values
returned is dependent on the tag being requested. The
programming interface uses a variable argument list as
prescribed by the <i>stdarg</i>(3) interface. The returned
values should only be interpreted if <i>TIFFGetField</i>
returns 1.</p>


<p style="margin-left:11%; margin-top: 1em"><i>TIFFVGetField</i>
is functionally equivalent to <i>TIFFGetField</i> except
that it takes a pointer to a variable argument list.
<i>TIFFVGetField</i> is useful for layering interfaces on
top of the functionality provided by
<i>TIFFGetField</i>.</p>


<p style="margin-left:11%; margin-top: 1em"><i>TIFFGetFieldDefaulted</i>
and <i>TIFFVGetFieldDefaulted</i> are identical to
<i>TIFFGetField</i> and <i>TIFFVGetField</i>, except that if
a tag is not defined in the current directory and it has a
default value, then the default value is returned.</p>

<p style="margin-left:11%; margin-top: 1em">The tags
understood by <i>libtiff(3TIFF),</i> the number of parameter
values, and the types for the returned values are shown
below. The data types are specified as in C and correspond
to the types used to specify tag values to
<i>TIFFSetField</i>(3TIFF). Remember that
<i>TIFFGetField</i> returns parameter values, so all the
listed data types are pointers to storage where values
should be returned. Consult the <small>TIFF</small>
specification (or relevant industry specification) for
information on the meaning of each tag and their possible
values.</p>

<table width="100%" border="0" rules="none" frame="void"
       cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p><i>Tag Name</i></p></td>
<td width="11%"></td>
<td width="28%">


<p><i>Count</i></p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p><i>Types</i></p></td>
<td width="12%">


<p><i>Notes</i></p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_ARTIST</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>char**</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_BADFAXLINES</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_BITSPERSAMPLE</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_CLEANFAXDATA</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_COLORMAP</p></td>
<td width="11%"></td>
<td width="28%">


<p>3</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16**</p></td>
<td width="12%">


<p>1&lt;&lt;BitsPerSample arrays</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_COMPRESSION</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_CONSECUTIVEBADFAXLINES</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_COPYRIGHT</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>char**</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_DATATYPE</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_DATETIME</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>char**</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_DOCUMENTNAME</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>char**</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_DOTRANGE</p></td>
<td width="11%"></td>
<td width="28%">


<p>2</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_EXTRASAMPLES</p></td>
<td width="11%"></td>
<td width="28%">


<p>2</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*,uint16**</p></td>
<td width="12%">


<p>count &amp; types array</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_FAXFILLFUNC</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>TIFFFaxFillFunc*</p></td>
<td width="12%">


<p>G3/G4 compression pseudo-tag</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_FAXMODE</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>int*</p></td>
<td width="12%">


<p>G3/G4 compression pseudo-tag</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_FILLORDER</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_GROUP3OPTIONS</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_GROUP4OPTIONS</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_HALFTONEHINTS</p></td>
<td width="11%"></td>
<td width="28%">


<p>2</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_HOSTCOMPUTER</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>char**</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_ICCPROFILE</p></td>
<td width="11%"></td>
<td width="28%">


<p>2</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32*,void**</p></td>
<td width="12%">


<p>count, profile data</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_IMAGEDEPTH</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_IMAGEDESCRIPTION</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>char**</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_IMAGELENGTH</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_IMAGEWIDTH</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_INKNAMES</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>char**</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_INKSET</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_JPEGCOLORMODE</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>int*</p></td>
<td width="12%">


<p>JPEG pseudo-tag</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_JPEGQUALITY</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>int*</p></td>
<td width="12%">


<p>JPEG pseudo-tag</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_JPEGTABLES</p></td>
<td width="11%"></td>
<td width="28%">


<p>2</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32*,void**</p></td>
<td width="12%">


<p>count &amp; tables</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_JPEGTABLESMODE</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>int*</p></td>
<td width="12%">


<p>JPEG pseudo-tag</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_MAKE</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>char**</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_MATTEING</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_MAXSAMPLEVALUE</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_MINSAMPLEVALUE</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_MODEL</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>char**</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_ORIENTATION</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_PAGENAME</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>char**</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_PAGENUMBER</p></td>
<td width="11%"></td>
<td width="28%">


<p>2</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_PHOTOMETRIC</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_PHOTOSHOP</p></td>
<td width="11%"></td>
<td width="28%">


<p>2</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32*,void**</p></td>
<td width="12%">


<p>count, data</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_PLANARCONFIG</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_PREDICTOR</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_PRIMARYCHROMATICITIES</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>float**</p></td>
<td width="12%">


<p>6-entry array</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_REFERENCEBLACKWHITE</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>float**</p></td>
<td width="12%">


<p>6-entry array</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_RESOLUTIONUNIT</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_RICHTIFFIPTC</p></td>
<td width="11%"></td>
<td width="28%">


<p>2</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32*,void**</p></td>
<td width="12%">


<p>count, data</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_ROWSPERSTRIP</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_SAMPLEFORMAT</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_SAMPLESPERPIXEL</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_SMAXSAMPLEVALUE</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>double*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_SMINSAMPLEVALUE</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>double*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_SOFTWARE</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>char**</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_STONITS</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>double**</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_STRIPBYTECOUNTS</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32**</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_STRIPOFFSETS</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32**</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_SUBFILETYPE</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_SUBIFD</p></td>
<td width="11%"></td>
<td width="28%">


<p>2</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*,uint32**</p></td>
<td width="12%">


<p>count &amp; offsets array</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_TARGETPRINTER</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>char**</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_THRESHHOLDING</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_TILEBYTECOUNTS</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32**</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_TILEDEPTH</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_TILELENGTH</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_TILEOFFSETS</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32**</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_TILEWIDTH</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_TRANSFERFUNCTION</p></td>
<td width="11%"></td>
<td width="28%">


<p>1 or 3&dagger;</p></td>
<td width="12%">


<p>uint16**1&lt;&lt;BitsPerSample entry arrays</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_WHITEPOINT</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>float**</p></td>
<td width="12%">


<p>2-entry array</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_XMLPACKET</p></td>
<td width="11%"></td>
<td width="28%">


<p>2</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint32*,void**</p></td>
<td width="12%">


<p>count, data</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_XPOSITION</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>float*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_XRESOLUTION</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>float*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_YCBCRCOEFFICIENTS</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>float**</p></td>
<td width="12%">


<p>3-entry array</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_YCBCRPOSITIONING</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_YCBCRSUBSAMPLING</p></td>
<td width="11%"></td>
<td width="28%">


<p>2</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>uint16*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_YPOSITION</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>float*</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_YRESOLUTION</p></td>
<td width="11%"></td>
<td width="28%">


<p>1</p></td>
<td width="12%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="28%">


<p>float*&Dagger;</p></td>
<td width="12%">
</td></tr>
</table>

<p style="margin-left:11%;">&dagger; If
<i>SamplesPerPixel</i> is one, then a single array is
returned; otherwise three arrays are returned. <br>
&Dagger; The contents of this field are quite complex. See
<i>The ICC Profile Format Specification</i>, Annex B.3
&quot;Embedding ICC Profiles in TIFF Files&quot; (available
at http://www.color.org) for an explanation.</p>

<h2>AUTOREGISTERED TAGS
<a name="AUTOREGISTERED TAGS"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em">If you
can&rsquo;t find the tag in the table above that means this
is unsupported tag. But you still be able to read it&rsquo;s
value if you know the data type of that tag. For example, if
you want to read the LONG value from the tag 33424 and ASCII
string from the tag 36867 you can use the following
code:</p>

<p style="margin-left:22%; margin-top: 1em">uint16 count;
<br>
void *data;</p>


<p style="margin-left:22%; margin-top: 1em">TIFFGetField(tiff,
33424, &amp;count, &amp;data); <br>
printf(&quot;Tag %d: %d, count %d0, 33424, *(uint32 *)data,
count); <br>
TIFFGetField(tiff, 36867, &amp;count, &amp;data); <br>
printf(&quot;Tag %d: %s, count %d0, 36867, (char *)data,
count);</p>

<p style="margin-left:11%; margin-top: 1em">is not
supported by <b>libtiff(3TIFF),</b> library</p>

<h2>RETURN VALUES
<a name="RETURN VALUES"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em">1 is returned
if the tag is defined in the current directory; otherwise a
0 is returned.</p>

<h2>DIAGNOSTICS
<a name="DIAGNOSTICS"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em">All error
messages are directed to the <b>TIFFError</b>(3TIFF)
routine.</p>

<p style="margin-left:11%; margin-top: 1em"><b>Unknown
field, tag 0x%x</b>. An unknown tag was supplied.</p>

<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>TIFFOpen</b>(3TIFF),
<b>TIFFSetField</b>(3TIFF), <b>TIFFSetDirectory</b>(3TIFF),
<b>TIFFReadDirectory</b>(3TIFF),
<b>TIFFWriteDirectory</b>(3TIFF) <b>libtiff</b>(3TIFF),</p>

<p style="margin-left:11%; margin-top: 1em">Libtiff library
home page: <b>http://www.simplesystems.org/libtiff/</b></p>
<hr>
</body>
</html>
PK粐\f�:�5�5html/man/TIFFOpen.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:16 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFOpen</title>
</head>
<body>

<h1 align=center>TIFFOpen</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#BYTE ORDER">BYTE ORDER</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFOpen, TIFFFdOpen, TIFFClientOpen &minus; open a
<small>TIFF</small> file for reading or writing</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>TIFF* TIFFOpen(const char *</b><i>filename</i><b>,
const char *</b><i>mode</i><b>)<br>
TIFF* TIFFFdOpen(const int</b> <i>fd</i><b>, const char
*</b><i>filename</i><b>, const char
*</b><i>mode</i><b>)</b></p>
<!-- INDENTATION -->
<p><b>typedef tsize_t (*TIFFReadWriteProc)(thandle_t,
tdata_t, tsize_t);<br>
typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int);<br>
typedef int (*TIFFCloseProc)(thandle_t);<br>
typedef toff_t (*TIFFSizeProc)(thandle_t);<br>
typedef int (*TIFFMapFileProc)(thandle_t, tdata_t*,
toff_t*);<br>
typedef void (*TIFFUnmapFileProc)(thandle_t, tdata_t,
toff_t);</b></p>
<!-- INDENTATION -->
<p><b>TIFF* TIFFClientOpen(const char
*</b><i>filename</i><b>, const char *</b><i>mode</i><b>,
thandle_t</b> <i>clientdata</i><b>, TIFFReadWriteProc</b>
<i>readproc</i><b>, TIFFReadWriteProc</b>
<i>writeproc</i><b>, TIFFSeekProc</b> <i>seekproc</i><b>,
TIFFCloseProc</b> <i>closeproc</i><b>, TIFFSizeProc</b>
<i>sizeproc</i><b>, TIFFMapFileProc</b> <i>mapproc</i><b>,
TIFFUnmapFileProc</b> <i>unmapproc</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFOpen</i> opens a <small>TIFF</small> file whose
name is <i>filename</i> and returns a handle to be used in
subsequent calls to routines in <i>libtiff</i>. If the open
operation fails, then zero is returned. The <i>mode</i>
parameter specifies if the file is to be opened for reading
(&lsquo;&lsquo;r&rsquo;&rsquo;), writing
(&lsquo;&lsquo;w&rsquo;&rsquo;), or appending
(&lsquo;&lsquo;a&rsquo;&rsquo;) and, optionally, whether to
override certain default aspects of library operation (see
below). When a file is opened for appending, existing data
will not be touched; instead new data will be written as
additional subfiles. If an existing file is opened for
writing, all previous data is overwritten.</p>
<!-- INDENTATION -->
<p>If a file is opened for reading, the first
<small>TIFF</small> directory in the file is automatically
read (also see <i>TIFFSetDirectory</i>(3TIFF) for reading
directories other than the first). If a file is opened for
writing or appending, a default directory is automatically
created for writing subsequent data. This directory has all
the default values specified in <small>TIFF</small> Revision
6.0: <i>BitsPerSample</i>=1, <i>ThreshHolding</i>=bilevel
art scan, <i>FillOrder</i>=1 (most significant bit of each
data byte is filled first), <i>Orientation</i>=1 (the 0th
row represents the visual top of the image, and the 0th
column represents the visual left hand side),
<i>SamplesPerPixel</i>=1, <i>RowsPerStrip</i>=infinity,
<i>ResolutionUnit</i>=2 (inches), and <i>Compression</i>=1
(no compression). To alter these values, or to define values
for additional fields, <i>TIFFSetField</i>(3TIFF) must be
used.</p>
<!-- INDENTATION -->
<p><i>TIFFFdOpen</i> is like <i>TIFFOpen</i> except that it
opens a <small>TIFF</small> file given an open file
descriptor <i>fd</i>. The file&rsquo;s name and mode must
reflect that of the open descriptor. The object associated
with the file descriptor <b>must support random
access</b>.</p>
<!-- INDENTATION -->
<p><i>TIFFClientOpen</i> is like <i>TIFFOpen</i> except that
the caller supplies a collection of functions that the
library will use to do <small>UNIX</small> -like I/O
operations. The <i>readproc</i> and <i>writeproc</i> are
called to read and write data at the current file position.
<i>seekproc</i> is called to change the current file
position a la <i>lseek</i>(2). <i>closeproc</i> is invoked
to release any resources associated with an open file.
<i>sizeproc</i> is invoked to obtain the size in bytes of a
file. <i>mapproc</i> and <i>unmapproc</i> are called to map
and unmap a file&rsquo;s contents in memory; c.f.
<i>mmap</i>(2) and <i>munmap</i>(2). The <i>clientdata</i>
parameter is an opaque &lsquo;&lsquo;handle&rsquo;&rsquo;
passed to the client-specified routines passed as parameters
to <i>TIFFClientOpen</i>.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The open mode parameter can include the following flags
in addition to the &lsquo;&lsquo;r&rsquo;&rsquo;,
&lsquo;&lsquo;w&rsquo;&rsquo;, and
&lsquo;&lsquo;a&rsquo;&rsquo; flags. Note however that
option flags must follow the read-write-append
specification.</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="2%">

<p><b>l</b></p>
</td>
<td width="6%"></td>
<td width="80%">

<p>When creating a new file force information be written
with Little-Endian byte order (but see below). By default
the library will create new files using the native
<small>CPU</small> byte order.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="2%">

<p><b>b</b></p>
</td>
<td width="6%"></td>
<td width="80%">

<p>When creating a new file force information be written
with Big-Endian byte order (but see below). By default the
library will create new files using the native
<small>CPU</small> byte order.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="2%">

<p><b>L</b></p>
</td>
<td width="6%"></td>
<td width="80%">

<p>Force image data that is read or written to be treated
with bits filled from Least Significant Bit (
<small>LSB</small> ) to Most Significant Bit (
<small>MSB</small> ). Note that this is the opposite to the
way the library has worked from its inception.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="2%">

<p><b>B</b></p>
</td>
<td width="6%"></td>
<td width="80%">

<p>Force image data that is read or written to be treated
with bits filled from Most Significant Bit (
<small>MSB</small> ) to Least Significant Bit (
<small>LSB</small> ); this is the default.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="2%">

<p><b>H</b></p>
</td>
<td width="6%"></td>
<td width="80%">

<p>Force image data that is read or written to be treated
with bits filled in the same order as the native
<small>CPU.</small></p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="2%">

<p><b>M</b></p>
</td>
<td width="6%"></td>
<td width="80%">

<p>Enable the use of memory-mapped files for images opened
read-only. If the underlying system does not support
memory-mapped files or if the specific image being opened
cannot be memory-mapped then the library will fallback to
using the normal system interface for reading information.
By default the library will attempt to use memory-mapped
files.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="2%">

<p><b>m</b></p>
</td>
<td width="6%"></td>
<td width="80%">

<p>Disable the use of memory-mapped files.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="2%">

<p><b>C</b></p>
</td>
<td width="6%"></td>
<td width="80%">

<p>Enable the use of &lsquo;&lsquo;strip
chopping&rsquo;&rsquo; when reading images that are
comprised of a single strip or tile of uncompressed data.
Strip chopping is a mechanism by which the library will
automatically convert the single-strip image to multiple
strips, each of which has about 8 Kilobytes of data. This
facility can be useful in reducing the amount of memory used
to read an image because the library normally reads each
strip in its entirety. Strip chopping does however alter the
apparent contents of the image because when an image is
divided into multiple strips it looks as though the
underlying file contains multiple separate strips. Finally,
note that default handling of strip chopping is a
compile-time configuration parameter. The default behaviour,
for backwards compatibility, is to enable strip
chopping.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="2%">

<p><b>c</b></p>
</td>
<td width="6%"></td>
<td width="80%">

<p>Disable the use of strip chopping when reading
images.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="2%">

<p><b>h</b></p>
</td>
<td width="6%"></td>
<td width="80%">

<p>Read TIFF header only, do not load the first image
directory. That could be useful in case of the broken first
directory. We can open the file and proceed to the other
directories.</p>
</td>
<td width="0%">
</td>
</table>
<a name="BYTE ORDER"></a>
<h2>BYTE ORDER</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The <small>TIFF</small> specification (<b>all
versions</b>) states that compliant readers <i>must be
capable of reading images written in either byte order</i>.
Nonetheless some software that claims to support the reading
of <small>TIFF</small> images is incapable of reading images
in anything but the native <small>CPU</small> byte order on
which the software was written. (Especially notorious are
applications written to run on Intel-based machines.) By
default the library will create new files with the native
byte-order of the <small>CPU</small> on which the
application is run. This ensures optimal performance and is
portable to any application that conforms to the TIFF
specification. To force the library to use a specific
byte-order when creating a new file the
&lsquo;&lsquo;b&rsquo;&rsquo; and
&lsquo;&lsquo;l&rsquo;&rsquo; option flags may be included
in the call to open a file; for example,
&lsquo;&lsquo;wb&rsquo;&rsquo; or
&lsquo;&lsquo;wl&rsquo;&rsquo;.</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Upon successful completion <i>TIFFOpen</i>,
<i>TIFFFdOpen</i>, and <i>TIFFClientOpen</i> return a
<small>TIFF</small> pointer. Otherwise, NULL is
returned.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the
<i>TIFFError</i>(3TIFF) routine. Likewise, warning messages
are directed to the <i>TIFFWarning</i>(3TIFF) routine.</p>
<!-- INDENTATION -->
<p><b>&quot;%s&quot;: Bad mode</b>. The specified
<i>mode</i> parameter was not one of
&lsquo;&lsquo;r&rsquo;&rsquo; (read),
&lsquo;&lsquo;w&rsquo;&rsquo; (write), or
&lsquo;&lsquo;a&rsquo;&rsquo; (append).</p>
<!-- INDENTATION -->
<p><b>%s: Cannot open</b>. <i>TIFFOpen</i>() was unable to
open the specified filename for read/writing.</p>
<!-- INDENTATION -->
<p><b>Cannot read TIFF header</b>. An error occurred while
attempting to read the header information.</p>
<!-- INDENTATION -->
<p><b>Error writing TIFF header</b>. An error occurred while
writing the default header information for a new file.</p>
<!-- INDENTATION -->
<p><b>Not a TIFF file, bad magic number %d (0x%x)</b>. The
magic number in the header was not (hex) 0x4d4d or (hex)
0x4949.</p>
<!-- INDENTATION -->
<p><b>Not a TIFF file, bad version number %d (0x%x)</b>. The
version field in the header was not 42 (decimal).</p>
<!-- INDENTATION -->
<p><b>Cannot append to file that has opposite byte
ordering</b>. A file with a byte ordering opposite to the
native byte ordering of the current machine was opened for
appending (&lsquo;&lsquo;a&rsquo;&rsquo;). This is a
limitation of the library.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>libtiff</i>(3TIFF), <i>TIFFClose</i>(3TIFF)</p>
</td>
</table>
<hr>
</body>
</html>
PK粐\bɹ}}&html/man/TIFFPrintDirectory.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:16 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFPrintDirectory</title>
</head>
<body>

<h1 align=center>TIFFPrintDirectory</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFPrintDirectory &minus; print a description of a
<small>TIFF</small> directory</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>void TIFFPrintDirectory(TIFF *</b><i>tif</i><b>, FILE
*</b><i>fd</i><b>, long</b> <i>flags</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFPrintDirectory</i> prints a description of the
current directory in the specified <small>TIFF</small> file
to the standard I/O output stream <i>fd</i>. The
<i>flags</i> parameter is used to control the <i>level of
detail</i> of the printed information; it is a bit-or of the
flags defined in <b>tiffio.h</b>:</p></td>
</table>
<!-- TABS -->

<p>#define TIFFPRINT_NONE 0x0 /* no extra info */</p>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="1%">

<p>#define</p>
</td>
<td width="30%">

<p>TIFFPRINT_STRIPS</p>
</td>
<td width="10%">

<p>0x1</p>
</td>
<td width="48%">

<p>/* strips/tiles info */</p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="1%">

<p>#define</p>
</td>
<td width="30%">

<p>TIFFPRINT_CURVES</p>
</td>
<td width="10%">

<p>0x2</p>
</td>
<td width="48%">

<p>/* color/gray response curves */</p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="1%">

<p>#define</p>
</td>
<td width="30%">

<p>TIFFPRINT_COLORMAP</p>
</td>
<td width="10%">

<p>0x4</p>
</td>
<td width="48%">

<p>/* colormap */</p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="1%">

<p>#define</p>
</td>
<td width="30%">

<p>TIFFPRINT_JPEGQTABLES</p>
</td>
<td width="10%">

<p>0x100</p>
</td>
<td width="48%">

<p>/* JPEG Q matrices */</p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="1%">

<p>#define</p>
</td>
<td width="30%">

<p>TIFFPRINT_JPEGACTABLES</p>
</td>
<td width="10%">

<p>0x200</p>
</td>
<td width="48%">

<p>/* JPEG AC tables */</p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="1%">

<p>#define</p>
</td>
<td width="30%">

<p>TIFFPRINT_JPEGDCTABLES</p>
</td>
<td width="10%">

<p>0x200</p>
</td>
<td width="48%">

<p>/* JPEG DC tables */</p>
</td>
</table>
<a name="NOTES"></a>
<h2>NOTES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>In C++ the <i>flags</i> parameter defaults to 0.</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>None.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>None.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>libtiff</i>(3TIFF), <i>TIFFOpen</i>(3TIFF),
<i>TIFFReadDirectory</i>(3TIFF),
<i>TIFFSetDirectory</i>(3TIFF)</p>
</td>
</table>
<hr>
</body>
</html>
PK粐\K�d=00!html/man/TIFFRGBAImage.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:17 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFRGBAImage</title>
</head>
<body>

<h1 align=center>TIFFRGBAImage</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#ALTERNATE RASTER FORMATS">ALTERNATE RASTER FORMATS</a><br>
<a href="#SIMULTANEOUS RASTER STORE AND DISPLAY">SIMULTANEOUS RASTER STORE AND DISPLAY</a><br>
<a href="#SUPPORTING ADDITIONAL TIFF FORMATS">SUPPORTING ADDITIONAL TIFF FORMATS</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFRGBAImageOK, TIFFRGBAImageBegin, TIFFRGBAImageGet,
TIFFRGBAImageEnd &minus; read and decode an image into a
raster</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>typedef unsigned char TIFFRGBValue; typedef struct
_TIFFRGBAImage TIFFRGBAImage;</b></p>
<!-- INDENTATION -->
<p><b>int TIFFRGBAImageOK(TIFF *</b><i>tif</i><b>, char</b>
<i>emsg[1024]</i><b>)<br>
int TIFFRGBAImageBegin(TIFFRGBAImage *</b><i>img</i><b>,
TIFF*</b> <i>tif</i><b>, int</b> <i>stopOnError</i><b>,
char</b> <i>emsg[1024]</i><b>)<br>
int TIFFRGBAImageGet(TIFFRGBAImage *</b><i>img</i><b>,
uint32*</b> <i>raster</i><b>, uint32</b> <i>width</i> <b>,
uint32</b> <i>height</i><b>)<br>
void TIFFRGBAImageEnd(TIFFRGBAImage
*</b><i>img</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The routines described here provide a high-level
interface through which <small>TIFF</small> images may be
read into memory. Images may be strip- or tile-based and
have a variety of different characteristics: bits/sample,
samples/pixel, photometric, etc. Decoding state is
encapsulated in a <i>TIFFRGBAImage</i> structure making it
possible to capture state for multiple images and quickly
switch between them. The target raster format can be
customized to a particular application&rsquo;s needs by
installing custom routines that manipulate image data
according to application requirements.</p>
<!-- INDENTATION -->
<p>The default usage for these routines is: check if an
image can be processed using <i>TIFFRGBAImageOK</i>,
construct a decoder state block using
<i>TIFFRGBAImageBegin</i>, read and decode an image into a
target raster using <i>TIFFRGBAImageGet</i>, and then
release resources using <i>TIFFRGBAImageEnd</i>.
<i>TIFFRGBAImageGet</i> can be called multiple times to
decode an image using different state parameters. If
multiple images are to be displayed and there is not enough
space for each of the decoded rasters, multiple state blocks
can be managed and then calls can be made to
<i>TIFFRGBAImageGet</i> as needed to display an image.</p>
<!-- INDENTATION -->
<p>The generated raster is assumed to be an array of
<i>width</i> times <i>height</i> 32-bit entries, where
<i>width</i> must be less than or equal to the width of the
image (<i>height</i> may be any non-zero size). If the
raster dimensions are smaller than the image, the image data
is cropped to the raster bounds. If the raster height is
greater than that of the image, then the image data are
placed in the lower part of the raster. (Note that the
raster is assume to be organized such that the pixel at
location (<i>x</i>,<i>y</i>) is
<i>raster</i>[<i>y</i>*<i>width</i>+<i>x</i>]; with the
raster origin in the <b>lower-left</b> hand corner.)</p>
<!-- INDENTATION -->
<p>Raster pixels are 8-bit packed red, green, blue, alpha
samples. The macros <i>TIFFGetR</i>, <i>TIFFGetG</i>,
<i>TIFFGetB</i>, and <i>TIFFGetA</i> should be used to
access individual samples. Images without Associated Alpha
matting information have a constant Alpha of 1.0 (255).</p>
<!-- INDENTATION -->
<p><i>TIFFRGBAImageGet</i> converts non-8-bit images by
scaling sample values. Palette, grayscale, bilevel,
<small>CMYK</small> , and YCbCr images are converted to
<small>RGB</small> transparently. Raster pixels are returned
uncorrected by any colorimetry information present in the
directory.</p>
<!-- INDENTATION -->
<p>The parameter <i>stopOnError</i> specifies how to act if
an error is encountered while reading the image. If
<i>stopOnError</i> is non-zero, then an error will terminate
the operation; otherwise <i>TIFFRGBAImageGet</i> will
continue processing data until all the possible data in the
image have been requested.</p>
</td>
</table>
<a name="ALTERNATE RASTER FORMATS"></a>
<h2>ALTERNATE RASTER FORMATS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>To use the core support for reading and processing
<small>TIFF</small> images, but write the resulting raster
data in a different format one need only override the
&lsquo;&lsquo;<i>put methods</i>&rsquo;&rsquo; used to store
raster data. These methods are are defined in the
<i>TIFFRGBAImage</i> structure and initially setup by
<i>TIFFRGBAImageBegin</i> to point to routines that pack
raster data in the default <small>ABGR</small> pixel format.
Two different routines are used according to the physical
organization of the image data in the file:
<i>PlanarConfiguration</i>=1 (packed samples), and
<i>PlanarConfiguration</i>=2 (separated samples). Note that
this mechanism can be used to transform the data before
storing it in the raster. For example one can convert data
to colormap indices for display on a colormap display.</p>
</td>
</table>
<a name="SIMULTANEOUS RASTER STORE AND DISPLAY"></a>
<h2>SIMULTANEOUS RASTER STORE AND DISPLAY</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>It is simple to display an image as it is being read into
memory by overriding the put methods as described above for
supporting alternate raster formats. Simply keep a reference
to the default put methods setup by
<i>TIFFRGBAImageBegin</i> and then invoke them before or
after each display operation. For example, the
<i>tiffgt</i>(1) utility uses the following put method to
update the display as the raster is being filled:</p>
<!-- INDENTATION -->
<pre>static void
putContigAndDraw(TIFFRGBAImage* img, uint32* raster,
    uint32 x, uint32 y, uint32 w, uint32 h,
    int32 fromskew, int32 toskew,
    unsigned char* cp)
{
    (*putContig)(img, raster, x, y, w, h, fromskew, toskew, cp);
    if (x+w == width) {
     w = width;
     if (img-&gt;orientation == ORIENTATION_TOPLEFT)
         lrectwrite(0, y-(h-1), w-1, y, raster-x-(h-1)*w);
     else
         lrectwrite(0, y, w-1, y+h-1, raster);
    }
}
</pre>
<!-- INDENTATION -->
<p>(the original routine provided by the library is saved in
the variable <i>putContig</i>.)</p>
</td>
</table>
<a name="SUPPORTING ADDITIONAL TIFF FORMATS"></a>
<h2>SUPPORTING ADDITIONAL TIFF FORMATS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The <i>TIFFRGBAImage</i> routines support the most
commonly encountered flavors of <small>TIFF.</small> It is
possible to extend this support by overriding the
&lsquo;&lsquo;<i>get method</i>&rsquo;&rsquo; invoked by
<i>TIFFRGBAImageGet</i> to read <small>TIFF</small> image
data. Details of doing this are a bit involved, it is best
to make a copy of an existing get method and modify it to
suit the needs of an application.</p>
</td>
</table>
<a name="NOTES"></a>
<h2>NOTES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Samples must be either 1, 2, 4, 8, or 16 bits.
Colorimetric samples/pixel must be either 1, 3, or 4 (i.e.
<i>SamplesPerPixel</i> minus <i>ExtraSamples</i>).</p>
<!-- INDENTATION -->
<p>Palette image colormaps that appear to be incorrectly
written as 8-bit values are automatically scaled to
16-bits.</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All routines return 1 if the operation was successful.
Otherwise, 0 is returned if an error was encountered and
<i>stopOnError</i> is zero.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the
<i>TIFFError</i>(3TIFF) routine.</p>
<!-- INDENTATION -->
<p><b>Sorry, can not handle %d-bit pictures</b>. The image
had <i>BitsPerSample</i> other than 1, 2, 4, 8, or 16.</p>
<!-- INDENTATION -->
<p><b>Sorry, can not handle %d-channel images</b>. The image
had <i>SamplesPerPixel</i> other than 1, 3, or 4.</p>
<!-- INDENTATION -->
<p><b>Missing needed &quot;PhotometricInterpretation&quot;
tag</b>. The image did not have a tag that describes how to
display the data.</p>
<!-- INDENTATION -->
<p><b>No &quot;PhotometricInterpretation&quot; tag, assuming
RGB</b>. The image was missing a tag that describes how to
display it, but because it has 3 or 4 samples/pixel, it is
assumed to be <small>RGB.</small></p>
<!-- INDENTATION -->
<p><b>No &quot;PhotometricInterpretation&quot; tag, assuming
min-is-black</b>. The image was missing a tag that describes
how to display it, but because it has 1 sample/pixel, it is
assumed to be a grayscale or bilevel image.</p>
<!-- INDENTATION -->
<p><b>No space for photometric conversion table</b>. There
was insufficient memory for a table used to convert image
samples to 8-bit <small>RGB.</small></p>
<!-- INDENTATION -->
<p><b>Missing required &quot;Colormap&quot; tag</b>. A
Palette image did not have a required <i>Colormap</i>
tag.</p>
<!-- INDENTATION -->
<p><b>No space for tile buffer</b>. There was insufficient
memory to allocate an i/o buffer.</p>
<!-- INDENTATION -->
<p><b>No space for strip buffer</b>. There was insufficient
memory to allocate an i/o buffer.</p>
<!-- INDENTATION -->
<p><b>Can not handle format</b>. The image has a format
(combination of <i>BitsPerSample</i>,
<i>SamplesPerPixel</i>, and
<i>PhotometricInterpretation</i>) that can not be
handled.</p>
<!-- INDENTATION -->
<p><b>No space for B&amp;W mapping table</b>. There was
insufficient memory to allocate a table used to map
grayscale data to <small>RGB.</small></p>
<!-- INDENTATION -->
<p><b>No space for Palette mapping table</b>. There was
insufficient memory to allocate a table used to map data to
8-bit <small>RGB.</small></p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFOpen</b>(3TIFF), <b>TIFFReadRGBAImage</b>(3TIFF),
<b>TIFFReadRGBAImageOriented</b>(3TIFF),
<b>TIFFReadRGBAStrip</b>(3TIFF),
<b>TIFFReadRGBATile</b>(3TIFF), <b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�8Bæ�%html/man/TIFFReadDirectory.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:16 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFReadDirectory</title>
</head>
<body>

<h1 align=center>TIFFReadDirectory</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>TIFFReadDirectory &minus; get the contents of the
next directory in an open</big> TIFF <big>file</big></p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big><b>#include &lt;tiffio.h&gt;</b></big></p>
<!-- INDENTATION -->
<p><big><b>int TIFFReadDirectory(TIFF
*</b><i>tif</i><b>)</b></big></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>Read the next directory in the specified file and
make it the current directory. Applications only need to
call <i>TIFFReadDirectory</i> to read multiple subfiles in a
single</big> TIFF <big>file&mdash; the first directory in a
file is automatically read when <i>TIFFOpen</i> is
called.</big></p>
</td>
</table>
<a name="NOTES"></a>
<h2>NOTES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>If the library is compiled with</big>
STRIPCHOP_SUPPORT <big>enabled, then images that have a
single uncompressed strip or tile of data are automatically
treated as if they were made up of multiple strips or tiles
of approximately 8 kilobytes each. This operation is done
only in-memory; it does not alter the contents of the file.
However, the construction of the &lsquo;&lsquo;chopped
strips&rsquo;&rsquo; is visible to the application through
the number of strips [tiles] returned by
<i>TIFFNumberOfStrips</i>
[<i>TIFFNumberOfTiles</i>].</big></p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>If the next directory was successfully read, 1 is
returned. Otherwise, 0 is returned if an error was
encountered, or if there are no more directories to be
read.</big></p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>All error messages are directed to the
<i>TIFFError</i>(3TIFF) routine. All warning messages are
directed to the <i>TIFFWarning</i>(3TIFF) routine.</big></p>
<!-- INDENTATION -->
<p><big><b>Seek error accessing TIFF directory</b>. An error
occurred while positioning to the location of the
directory.</big></p>
<!-- INDENTATION -->
<p><big><b>Wrong data type %d for field &quot;%s&quot;</b>.
The tag entry in the directory had an incorrect data type.
For example, an <i>ImageDescription</i> tag with a</big>
SHORT <big>data type.</big></p>
<!-- INDENTATION -->
<p><big><b>TIFF directory is missing required &quot;%s&quot;
field</b>. The specified tag is required to be present by
the</big> TIFF <big>5.0 specification, but is missing. The
directory is (usually) unusable.</big></p>
<!-- INDENTATION -->
<p><big><b>%s: Rational with zero denominator</b>. A
directory tag has a</big> RATIONAL <big>value whose
denominator is zero.</big></p>
<!-- INDENTATION -->
<p><big><b>Incorrect count %d for field &quot;%s&quot; (%lu,
expecting %lu); tag ignored</b>. The specified tag&rsquo;s
count field is bad. For example, a count other than 1 for a
<i>SubFileType</i> tag.</big></p>
<!-- INDENTATION -->
<p><big><b>Cannot handle different per-sample values for
field &quot;%s&quot;</b>. The tag has <i>SamplesPerPixel</i>
values and they are not all the same; e.g.
<i>BitsPerSample</i>. The library is unable to handle images
of this sort.</big></p>
<!-- INDENTATION -->
<p><big><b>Count mismatch for field &quot;%s&quot;;
expecting %d, got %d</b>. The count field in a tag does not
agree with the number expected by the library. This should
never happen, so if it does, the library refuses to read the
directory.</big></p>
<!-- INDENTATION -->
<p><big><b>Invalid TIFF directory; tags are not sorted in
ascending order</b>. The directory tags are not properly
sorted as specified in the</big> TIFF <big>5.0
specification. This error is not fatal.</big></p>
<!-- INDENTATION -->
<p><big><b>Ignoring unknown field with tag %d (0x%x)</b>. An
unknown tag was encountered in the directory; the library
ignores all such tags.</big></p>
<!-- INDENTATION -->
<p><big><b>TIFF directory is missing requred
&quot;ImageLength&quot; field</b>. The image violates the
specification by not having a necessary field. There is no
way for the library to recover from this error.</big></p>
<!-- INDENTATION -->
<p><big><b>TIFF directory is missing requred
&quot;PlanarConfig&quot; field</b>. The image violates the
specification by not having a necessary field. There is no
way for the library to recover from this error.</big></p>
<!-- INDENTATION -->
<p><big><b>TIFF directory is missing requred
&quot;StripOffsets&quot; field</b>. The image has multiple
strips, but is missing the tag that specifies the file
offset to each strip of data. There is no way for the
library to recover from this error.</big></p>
<!-- INDENTATION -->
<p><big><b>TIFF directory is missing requred
&quot;TileOffsets&quot; field</b>. The image has multiple
tiles, but is missing the tag that specifies the file offset
to each tile of data. There is no way for the library to
recover from this error.</big></p>
<!-- INDENTATION -->
<p><big><b>TIFF directory is missing required
&quot;StripByteCounts&quot; field</b>. The image has
multiple strips, but is missing the tag that specifies the
size of each strip of data. There is no way for the library
to recover from this error.</big></p>
<!-- INDENTATION -->
<p><big><b>TIFF directory is missing required
&quot;StripByteCounts&quot; field, calculating from
imagelength</b>. The image violates the specification by not
having a necessary field. However, when the image is
comprised of only one strip or tile, the library will
estimate the missing value based on the file size.</big></p>
<!-- INDENTATION -->
<p><big><b>Bogus &quot;StripByteCounts&quot; field, ignoring
and calculating from imagelength</b>. Certain vendors
violate the specification by writing zero for the
StripByteCounts tag when they want to leave the value
unspecified. If the image has a single strip, the library
will estimate the missing value based on the file
size.</big></p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big><b>TIFFOpen</b>(3TIFF),
<b>TIFFWriteDirectory</b>(3TIFF),
<b>TIFFSetDirectory</b>(3TIFF),
<b>TIFFSetSubDirectory</b>(3TIFF),
<b>libtiff</b>(3TIFF)</big></p>
<!-- INDENTATION -->
<p><big>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></big></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\9�r0��(html/man/TIFFReadEncodedStrip.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:16 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFReadEncodedStrip</title>
</head>
<body>

<h1 align=center>TIFFReadEncodedStrip</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>TIFFReadEncodedStrip &minus; read and decode a strip
of data from an open</big> TIFF <big>file</big></p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big><b>#include &lt;tiffio.h&gt;</b></big></p>
<!-- INDENTATION -->
<p><big><b>tsize_t TIFFReadEncodedStrip(TIFF
*</b><i>tif</i><b>, tstrip_t</b> <i>strip</i><b>,
tdata_t</b> <i>buf</i><b>, tsize_t</b>
<i>size</i><b>)</b></big></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>Read the specified strip of data and place up to
<i>size</i> bytes of decompressed information in the (user
supplied) data buffer.</big></p>
</td>
</table>
<a name="NOTES"></a>
<h2>NOTES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>The value of <i>strip</i> is a &lsquo;&lsquo;raw
strip number.&rsquo;&rsquo; That is, the caller must take
into account whether or not the data are organized in
separate planes (<i>PlanarConfiguration</i>=2). To read a
full strip of data the data buffer should typically be at
least as large as the number returned by
<b>TIFFStripSize</b>(3TIFF). If the -1 passed in <i>size</i>
parameter, the whole strip will be read. You should be sure
you have enough space allocated for the buffer.</big></p>
<!-- INDENTATION -->
<p><big>The library attempts to hide bit- and byte-ordering
differences between the image and the native machine by
converting data to the native machine order. Bit reversal is
done if the <i>FillOrder</i> tag is opposite to the native
machine bit order. 16- and 32-bit samples are automatically
byte-swapped if the file was written with a byte order
opposite to the native machine byte order,</big></p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>The actual number of bytes of data that were placed
in <i>buf</i> is returned; <i>TIFFReadEncodedStrip</i>
returns &minus;1 if an error was encountered.</big></p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>All error messages are directed to the
<b>TIFFError</b>(3TIFF) routine.</big></p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big><b>TIFFOpen</b>(3TIFF),
<b>TIFFReadRawStrip</b>(3TIFF),
<b>TIFFReadScanline</b>(3TIFF),
<b>libtiff</b>(3TIFF)</big></p>
<!-- INDENTATION -->
<p><big>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></big></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\z�ar%%'html/man/TIFFReadEncodedTile.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:17 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFReadEncodedTile</title>
</head>
<body>

<h1 align=center>TIFFReadEncodedTile</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFReadEncodedTile &minus; read and decode a tile of
data from an open <small>TIFF</small> file</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>int TIFFReadEncodedTile(TIFF *</b><i>tif</i><b>,
ttile_t</b> <i>tile</i><b>, tdata_t</b> <i>buf</i><b>,
tsize_t</b> <i>size</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Read the specified tile of data and place up to
<i>size</i> bytes of decompressed information in the (user
supplied) data buffer.</p>
</td>
</table>
<a name="NOTES"></a>
<h2>NOTES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The value of <i>tile</i> is a &lsquo;&lsquo;raw tile
number.&rsquo;&rsquo; That is, the caller must take into
account whether or not the data are organized in separate
planes (<i>PlanarConfiguration</i>=2).
<i>TIFFComputeTile</i> automatically does this when
converting an (x,y,z,sample) coordinate quadruple to a tile
number. To read a full tile of data the data buffer should
be at least as large as the value returned by
<i>TIFFTileSize</i>.</p>
<!-- INDENTATION -->
<p>The library attempts to hide bit- and byte-ordering
differences between the image and the native machine by
converting data to the native machine order. Bit reversal is
done if the <i>FillOrder</i> tag is opposite to the native
machine bit order. 16- and 32-bit samples are automatically
byte-swapped if the file was written with a byte order
opposite to the native machine byte order,</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The actual number of bytes of data that were placed in
<i>buf</i> is returned; <i>TIFFReadEncodedTile</i> returns
&minus;1 if an error was encountered.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the
<b>TIFFError</b>(3TIFF) routine.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFOpen</b>(3TIFF), <b>TIFFReadRawTile</b>(3TIFF),
<b>TIFFReadTile</b>(3TIFF), <b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�8��(�(%html/man/TIFFReadRGBAImage.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:17 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFReadRGBAImage</title>
</head>
<body>

<h1 align=center>TIFFReadRGBAImage</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFReadRGBAImage, TIFFReadRGBAImageOriented &minus; read
and decode an image into a fixed-format raster</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>#define TIFFGetR(abgr) ((abgr) &amp; 0xff)<br>
#define TIFFGetG(abgr) (((abgr) &gt;&gt; 8) &amp; 0xff)<br>
#define TIFFGetB(abgr) (((abgr) &gt;&gt; 16) &amp; 0xff)<br>
#define TIFFGetA(abgr) (((abgr) &gt;&gt; 24) &amp;
0xff)</b></p>
<!-- INDENTATION -->
<p><b>int TIFFReadRGBAImage(TIFF *</b><i>tif</i><b>,
uint32</b> <i>width</i><b>, uint32</b> <i>height</i><b>,
uint32 *</b><i>raster</i><b>, int</b>
<i>stopOnError</i><b>)<br>
int TIFFReadRGBAImageOriented(TIFF *</b><i>tif</i><b>,
uint32</b> <i>width</i><b>, uint32</b> <i>height</i><b>,
uint32 *</b><i>raster</i><b>, int</b> <i>orientation</i><b>,
int</b> <i>stopOnError</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFReadRGBAImage</i> reads a strip- or tile-based
image into memory, storing the result in the user supplied
<i>raster</i>. The raster is assumed to be an array of
<i>width</i> times <i>height</i> 32-bit entries, where
<i>width</i> must be less than or equal to the width of the
image (<i>height</i> may be any non-zero size). If the
raster dimensions are smaller than the image, the image data
is cropped to the raster bounds. If the raster height is
greater than that of the image, then the image data are
placed in the lower part of the raster. (Note that the
raster is assume to be organized such that the pixel at
location (<i>x</i>,<i>y</i>) is
<i>raster</i>[<i>y</i>*<i>width</i>+<i>x</i>]; with the
raster origin in the lower-left hand corner.)</p>
<!-- INDENTATION -->
<p><i>TIFFReadRGBAImageOriented</i> works like
<i>TIFFReadRGBAImage</i> with except of that user can
specify the raster origin position with the
<i>orientation</i> parameter. Four orientations
supported:</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>ORIENTATION_TOPLEFT</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>origin in top-left corner,</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>ORIENTATION_TOPRIGHT</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>origin in top-right corner,</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>ORIENTATION_BOTLEFT</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>origin in bottom-left corner and</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>ORIENTATION_BOTRIGHT</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>origin in bottom-right corner.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>If you choose <b>ORIENTATION_BOTLEFT</b> result will be
the same as returned by the <i>TIFFReadRGBAImage.</i></p>
<!-- INDENTATION -->
<p>Raster pixels are 8-bit packed red, green, blue, alpha
samples. The macros <i>TIFFGetR</i>, <i>TIFFGetG</i>,
<i>TIFFGetB</i>, and <i>TIFFGetA</i> should be used to
access individual samples. Images without Associated Alpha
matting information have a constant Alpha of 1.0 (255).</p>
<!-- INDENTATION -->
<p><i>TIFFReadRGBAImage</i> converts non-8-bit images by
scaling sample values. Palette, grayscale, bilevel,
<small>CMYK</small> , and YCbCr images are converted to
<small>RGB</small> transparently. Raster pixels are returned
uncorrected by any colorimetry information present in the
directory.</p>
<!-- INDENTATION -->
<p>The paramater <i>stopOnError</i> specifies how to act if
an error is encountered while reading the image. If
<i>stopOnError</i> is non-zero, then an error will terminate
the operation; otherwise <i>TIFFReadRGBAImage</i> will
continue processing data until all the possible data in the
image have been requested.</p>
</td>
</table>
<a name="NOTES"></a>
<h2>NOTES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>In C++ the <i>stopOnError</i> parameter defaults to
0.</p>
<!-- INDENTATION -->
<p>Samples must be either 1, 2, 4, 8, or 16 bits.
Colorimetric samples/pixel must be either 1, 3, or 4 (i.e.
<i>SamplesPerPixel</i> minus <i>ExtraSamples</i>).</p>
<!-- INDENTATION -->
<p>Palettte image colormaps that appear to be incorrectly
written as 8-bit values are automatically scaled to
16-bits.</p>
<!-- INDENTATION -->
<p><i>TIFFReadRGBAImage</i> is just a wrapper around the
more general <i>TIFFRGBAImage</i>(3TIFF) facilities.</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>1 is returned if the image was successfully read and
converted. Otherwise, 0 is returned if an error was
encountered and <i>stopOnError</i> is zero.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the
<i>TIFFError</i>(3TIFF) routine.</p>
<!-- INDENTATION -->
<p><b>Sorry, can not handle %d-bit pictures</b>. The image
had <i>BitsPerSample</i> other than 1, 2, 4, 8, or 16.</p>
<!-- INDENTATION -->
<p><b>Sorry, can not handle %d-channel images</b>. The image
had <i>SamplesPerPixel</i> other than 1, 3, or 4.</p>
<!-- INDENTATION -->
<p><b>Missing needed &quot;PhotometricInterpretation&quot;
tag</b>. The image did not have a tag that describes how to
display the data.</p>
<!-- INDENTATION -->
<p><b>No &quot;PhotometricInterpretation&quot; tag, assuming
RGB</b>. The image was missing a tag that describes how to
display it, but because it has 3 or 4 samples/pixel, it is
assumed to be <small>RGB.</small></p>
<!-- INDENTATION -->
<p><b>No &quot;PhotometricInterpretation&quot; tag, assuming
min-is-black</b>. The image was missing a tag that describes
how to display it, but because it has 1 sample/pixel, it is
assumed to be a grayscale or bilevel image.</p>
<!-- INDENTATION -->
<p><b>No space for photometric conversion table</b>. There
was insufficient memory for a table used to convert image
samples to 8-bit <small>RGB.</small></p>
<!-- INDENTATION -->
<p><b>Missing required &quot;Colormap&quot; tag</b>. A
Palette image did not have a required <i>Colormap</i>
tag.</p>
<!-- INDENTATION -->
<p><b>No space for tile buffer</b>. There was insufficient
memory to allocate an i/o buffer.</p>
<!-- INDENTATION -->
<p><b>No space for strip buffer</b>. There was insufficient
memory to allocate an i/o buffer.</p>
<!-- INDENTATION -->
<p><b>Can not handle format</b>. The image has a format
(combination of <i>BitsPerSample</i>,
<i>SamplesPerPixel</i>, and
<i>PhotometricInterpretation</i>) that
<i>TIFFReadRGBAImage</i> can not handle.</p>
<!-- INDENTATION -->
<p><b>No space for B&amp;W mapping table</b>. There was
insufficient memory to allocate a table used to map
grayscale data to <small>RGB.</small></p>
<!-- INDENTATION -->
<p><b>No space for Palette mapping table</b>. There was
insufficient memory to allocate a table used to map data to
8-bit <small>RGB.</small></p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFOpen</b>(3TIFF), <b>TIFFRGBAImage</b>(3TIFF),
<b>TIFFReadRGBAStrip</b>(3TIFF),
<b>TIFFReadRGBATile</b>(3TIFF), <b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\B��[99%html/man/TIFFReadRGBAStrip.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:17 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFReadRGBAStrip</title>
</head>
<body>

<h1 align=center>TIFFReadRGBAStrip</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFReadRGBAStrip &minus; read and decode an image strip
into a fixed-format raster</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>#define TIFFGetR(abgr) ((abgr) &amp; 0xff)<br>
#define TIFFGetG(abgr) (((abgr) &gt;&gt; 8) &amp; 0xff)<br>
#define TIFFGetB(abgr) (((abgr) &gt;&gt; 16) &amp; 0xff)<br>
#define TIFFGetA(abgr) (((abgr) &gt;&gt; 24) &amp;
0xff)</b></p>
<!-- INDENTATION -->
<p><b>int TIFFReadRGBAStrip(TIFF *</b><i>tif</i><b>,
uint32</b> <i>row</i><b>, uint32
*</b><i>raster</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFReadRGBAStrip</i> reads a single strip of a
strip-based image into memory, storing the result in the
user supplied RGBA <i>raster</i>. The raster is assumed to
be an array of width times rowsperstrip 32-bit entries,
where width is the width of the image (TIFFTAG_IMAGEWIDTH)
and rowsperstrip is the maximum lines in a strip
(TIFFTAG_ROWSPERSTRIP).</p>
<!-- INDENTATION -->
<p>The <i>row</i> value should be the row of the first row
in the strip (strip * rowsperstrip, zero based).</p>
<!-- INDENTATION -->
<p>Note that the raster is assume to be organized such that
the pixel at location (<i>x</i>,<i>y</i>) is
<i>raster</i>[<i>y</i>*<i>width</i>+<i>x</i>]; with the
raster origin in the <i>lower-left hand corner</i> of the
strip. That is bottom to top organization. When reading a
partial last strip in the file the last line of the image
will begin at the beginning of the buffer.</p>
<!-- INDENTATION -->
<p>Raster pixels are 8-bit packed red, green, blue, alpha
samples. The macros <i>TIFFGetR</i>, <i>TIFFGetG</i>,
<i>TIFFGetB</i>, and <i>TIFFGetA</i> should be used to
access individual samples. Images without Associated Alpha
matting information have a constant Alpha of 1.0 (255).</p>
<!-- INDENTATION -->
<p>See the <i>TIFFRGBAImage</i>(3TIFF) page for more details
on how various image types are converted to RGBA values.</p>
</td>
</table>
<a name="NOTES"></a>
<h2>NOTES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Samples must be either 1, 2, 4, 8, or 16 bits.
Colorimetric samples/pixel must be either 1, 3, or 4 (i.e.
<i>SamplesPerPixel</i> minus <i>ExtraSamples</i>).</p>
<!-- INDENTATION -->
<p>Palette image colormaps that appear to be incorrectly
written as 8-bit values are automatically scaled to
16-bits.</p>
<!-- INDENTATION -->
<p><i>TIFFReadRGBAStrip</i> is just a wrapper around the
more general <i>TIFFRGBAImage</i>(3TIFF) facilities.
It&rsquo;s main advantage over the similar
<i>TIFFReadRGBAImage()</i> function is that for large images
a single buffer capable of holding the whole image
doesn&rsquo;t need to be allocated, only enough for one
strip. The <i>TIFFReadRGBATile()</i> function does a similar
operation for tiled images.</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>1 is returned if the image was successfully read and
converted. Otherwise, 0 is returned if an error was
encountered.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the
<i>TIFFError</i>(3TIFF) routine.</p>
<!-- INDENTATION -->
<p><b>Sorry, can not handle %d-bit pictures</b>. The image
had <i>BitsPerSample</i> other than 1, 2, 4, 8, or 16.</p>
<!-- INDENTATION -->
<p><b>Sorry, can not handle %d-channel images</b>. The image
had <i>SamplesPerPixel</i> other than 1, 3, or 4.</p>
<!-- INDENTATION -->
<p><b>Missing needed &quot;PhotometricInterpretation&quot;
tag</b>. The image did not have a tag that describes how to
display the data.</p>
<!-- INDENTATION -->
<p><b>No &quot;PhotometricInterpretation&quot; tag, assuming
RGB</b>. The image was missing a tag that describes how to
display it, but because it has 3 or 4 samples/pixel, it is
assumed to be <small>RGB.</small></p>
<!-- INDENTATION -->
<p><b>No &quot;PhotometricInterpretation&quot; tag, assuming
min-is-black</b>. The image was missing a tag that describes
how to display it, but because it has 1 sample/pixel, it is
assumed to be a grayscale or bilevel image.</p>
<!-- INDENTATION -->
<p><b>No space for photometric conversion table</b>. There
was insufficient memory for a table used to convert image
samples to 8-bit <small>RGB.</small></p>
<!-- INDENTATION -->
<p><b>Missing required &quot;Colormap&quot; tag</b>. A
Palette image did not have a required <i>Colormap</i>
tag.</p>
<!-- INDENTATION -->
<p><b>No space for tile buffer</b>. There was insufficient
memory to allocate an i/o buffer.</p>
<!-- INDENTATION -->
<p><b>No space for strip buffer</b>. There was insufficient
memory to allocate an i/o buffer.</p>
<!-- INDENTATION -->
<p><b>Can not handle format</b>. The image has a format
(combination of <i>BitsPerSample</i>,
<i>SamplesPerPixel</i>, and
<i>PhotometricInterpretation</i>) that
<i>TIFFReadRGBAImage</i> can not handle.</p>
<!-- INDENTATION -->
<p><b>No space for B&amp;W mapping table</b>. There was
insufficient memory to allocate a table used to map
grayscale data to <small>RGB.</small></p>
<!-- INDENTATION -->
<p><b>No space for Palette mapping table</b>. There was
insufficient memory to allocate a table used to map data to
8-bit <small>RGB.</small></p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFOpen</b>(3TIFF), <b>TIFFRGBAImage</b>(3TIFF),
<b>TIFFReadRGBAImage</b>(3TIFF),
<b>TIFFReadRGBATile</b>(3TIFF), <b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\����!!$html/man/TIFFReadRGBATile.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:17 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFReadRGBATile</title>
</head>
<body>

<h1 align=center>TIFFReadRGBATile</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFReadRGBATile &minus; read and decode an image tile
into a fixed-format raster</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="-2%">

<p><b>#define TIFFGetR(abgr)</b></p>
</td>
<td width="25%"></td>
<td width="6%"></td>
<td width="61%">

<p><b>((abgr) &amp; 0xff)</b></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="-2%">

<p><b>#define TIFFGetG(abgr)</b></p>
</td>
<td width="25%"></td>
<td width="6%"></td>
<td width="61%">

<p><b>(((abgr) &gt;&gt; 8) &amp; 0xff)</b></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="-2%">

<p><b>#define TIFFGetB(abgr)</b></p>
</td>
<td width="25%"></td>
<td width="6%"></td>
<td width="61%">

<p><b>(((abgr) &gt;&gt; 16) &amp; 0xff)</b></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="-2%">

<p><b>#define TIFFGetA(abgr)</b></p>
</td>
<td width="25%"></td>
<td width="6%"></td>
<td width="61%">

<p><b>(((abgr) &gt;&gt; 24) &amp; 0xff)</b></p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>int TIFFReadRGBATile(TIFF *</b><i>tif</i><b>,
uint32</b> <i>x</i><b>, uint32</b> <i>y</i><b>, uint32
*</b><i>raster</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFReadRGBATile</i> reads a single tile of a
tile-based image into memory, storing the result in the user
supplied RGBA <i>raster</i>. The raster is assumed to be an
array of width times length 32-bit entries, where width is
the width of a tile (TIFFTAG_TILEWIDTH) and length is the
height of a tile (TIFFTAG_TILELENGTH).</p>
<!-- INDENTATION -->
<p>The <i>x</i> and <i>y</i> values are the offsets from the
top left corner to the top left corner of the tile to be
read. They must be an exact multiple of the tile width and
length.</p>
<!-- INDENTATION -->
<p>Note that the raster is assume to be organized such that
the pixel at location (<i>x</i>,<i>y</i>) is
<i>raster</i>[<i>y</i>*<i>width</i>+<i>x</i>]; with the
raster origin in the <i>lower-left hand corner</i> of the
tile. That is bottom to top organization. Edge tiles which
partly fall off the image will be filled out with
appropriate zeroed areas.</p>
<!-- INDENTATION -->
<p>Raster pixels are 8-bit packed red, green, blue, alpha
samples. The macros <i>TIFFGetR</i>, <i>TIFFGetG</i>,
<i>TIFFGetB</i>, and <i>TIFFGetA</i> should be used to
access individual samples. Images without Associated Alpha
matting information have a constant Alpha of 1.0 (255).</p>
<!-- INDENTATION -->
<p>See the <i>TIFFRGBAImage</i>(3TIFF) page for more details
on how various image types are converted to RGBA values.</p>
</td>
</table>
<a name="NOTES"></a>
<h2>NOTES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Samples must be either 1, 2, 4, 8, or 16 bits.
Colorimetric samples/pixel must be either 1, 3, or 4 (i.e.
<i>SamplesPerPixel</i> minus <i>ExtraSamples</i>).</p>
<!-- INDENTATION -->
<p>Palette image colormaps that appear to be incorrectly
written as 8-bit values are automatically scaled to
16-bits.</p>
<!-- INDENTATION -->
<p><i>TIFFReadRGBATile</i> is just a wrapper around the more
general <i>TIFFRGBAImage</i>(3TIFF) facilities. It&rsquo;s
main advantage over the similar <i>TIFFReadRGBAImage()</i>
function is that for large images a single buffer capable of
holding the whole image doesn&rsquo;t need to be allocated,
only enough for one tile. The <i>TIFFReadRGBAStrip()</i>
function does a similar operation for stripped images.</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>1 is returned if the image was successfully read and
converted. Otherwise, 0 is returned if an error was
encountered.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the
<i>TIFFError</i>(3TIFF) routine.</p>
<!-- INDENTATION -->
<p><b>Sorry, can not handle %d-bit pictures</b>. The image
had <i>BitsPerSample</i> other than 1, 2, 4, 8, or 16.</p>
<!-- INDENTATION -->
<p><b>Sorry, can not handle %d-channel images</b>. The image
had <i>SamplesPerPixel</i> other than 1, 3, or 4.</p>
<!-- INDENTATION -->
<p><b>Missing needed &quot;PhotometricInterpretation&quot;
tag</b>. The image did not have a tag that describes how to
display the data.</p>
<!-- INDENTATION -->
<p><b>No &quot;PhotometricInterpretation&quot; tag, assuming
RGB</b>. The image was missing a tag that describes how to
display it, but because it has 3 or 4 samples/pixel, it is
assumed to be <small>RGB.</small></p>
<!-- INDENTATION -->
<p><b>No &quot;PhotometricInterpretation&quot; tag, assuming
min-is-black</b>. The image was missing a tag that describes
how to display it, but because it has 1 sample/pixel, it is
assumed to be a grayscale or bilevel image.</p>
<!-- INDENTATION -->
<p><b>No space for photometric conversion table</b>. There
was insufficient memory for a table used to convert image
samples to 8-bit <small>RGB.</small></p>
<!-- INDENTATION -->
<p><b>Missing required &quot;Colormap&quot; tag</b>. A
Palette image did not have a required <i>Colormap</i>
tag.</p>
<!-- INDENTATION -->
<p><b>No space for tile buffer</b>. There was insufficient
memory to allocate an i/o buffer.</p>
<!-- INDENTATION -->
<p><b>No space for strip buffer</b>. There was insufficient
memory to allocate an i/o buffer.</p>
<!-- INDENTATION -->
<p><b>Can not handle format</b>. The image has a format
(combination of <i>BitsPerSample</i>,
<i>SamplesPerPixel</i>, and
<i>PhotometricInterpretation</i>) that
<i>TIFFReadRGBAImage</i> can not handle.</p>
<!-- INDENTATION -->
<p><b>No space for B&amp;W mapping table</b>. There was
insufficient memory to allocate a table used to map
grayscale data to <small>RGB.</small></p>
<!-- INDENTATION -->
<p><b>No space for Palette mapping table</b>. There was
insufficient memory to allocate a table used to map data to
8-bit <small>RGB.</small></p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFOpen</b>(3TIFF), <b>TIFFRGBAImage</b>(3TIFF),
<b>TIFFReadRGBAImage</b>(3TIFF),
<b>TIFFReadRGBAStrip</b>(3TIFF), <b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\\�\y

$html/man/TIFFReadRawStrip.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:17 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFReadRawStrip</title>
</head>
<body>

<h1 align=center>TIFFReadRawStrip</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFReadRawStrip &minus; return the undecoded contents of
a strip of data from an open <small>TIFF</small> file</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>tsize_t TIFFReadRawStrip(TIFF *</b><i>tif</i><b>,
tstrip_t</b> <i>strip</i><b>, tdata_t</b> <i>buf</i><b>,
tsize_t</b> <i>size</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Read the contents of the specified strip into the (user
supplied) data buffer. Note that the value of <i>strip</i>
is a &lsquo;&lsquo;raw strip number.&rsquo;&rsquo; That is,
the caller must take into account whether or not the data is
organized in separate planes (<i>PlanarConfiguration</i>=2).
To read a full strip of data the data buffer should
typically be at least as large as the number returned by
<i>TIFFStripSize</i>.</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The actual number of bytes of data that were placed in
<i>buf</i> is returned; <i>TIFFReadEncodedStrip</i> returns
&minus;1 if an error was encountered.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the
<b>TIFFError</b>(3TIFF) routine.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFOpen</b>(3TIFF),
<b>TIFFReadEncodedStrip</b>(3TIFF),
<b>TIFFReadScanline</b>(3TIFF), <b>TIFFStripSize</b>(3TIFF),
<b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\��[&a
a
#html/man/TIFFReadRawTile.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:17 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFReadRawTile</title>
</head>
<body>

<h1 align=center>TIFFReadRawTile</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFReadRawTile &minus; return an undecoded tile of data
from an open <small>TIFF</small> file</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>tsize_t TIFFReadRawTile(TIFF *</b><i>tif</i><b>,
ttile_t</b> <i>tile</i><b>, tdata_t</b> <i>buf</i><b>,
tsize_t</b> <i>size</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Read the contents of the specified tile into the (user
supplied) data buffer. Note that the value of <i>tile</i> is
a &lsquo;&lsquo;raw tile number.&rsquo;&rsquo; That is, the
caller must take into account whether or not the data is
organized in separate planes (<i>PlanarConfiguration</i>=2).
<i>TIFFComputeTile</i> automatically does this when
converting an (x,y,z,sample) coordinate quadruple to a tile
number. To read a full tile of data the data buffer should
typically be at least as large as the value returned by
<i>TIFFTileSize</i>.</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The actual number of bytes of data that were placed in
<i>buf</i> is returned; <i>TIFFReadEncodedTile</i> returns
&minus;1 if an error was encountered.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the
<b>TIFFError</b>(3TIFF) routine.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFOpen</b>(3TIFF),
<b>TIFFReadEncodedTile</b>(3TIFF),
<b>TIFFReadTile</b>(3TIFF), <b>TIFFTileSize</b>(3TIFF),
<b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\z�!���$html/man/TIFFReadScanline.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:17 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFReadScanline</title>
</head>
<body>

<h1 align=center>TIFFReadScanline</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#BUGS">BUGS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFReadScanline &minus; read and decode a scanline of
data from an open <small>TIFF</small> file</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>int TIFFReadScanline(TIFF *</b><i>tif</i><b>,
tdata_t</b> <i>buf</i><b>, uint32</b> <i>row</i><b>,
tsample_t</b> <i>sample</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Read the data for the specified row into the (user
supplied) data buffer <i>buf</i>. The data are returned
decompressed and, in the native byte- and bit-ordering, but
are otherwise packed (see further below). The buffer must be
large enough to hold an entire scanline of data.
Applications should call the routine <i>TIFFScanlineSize</i>
to find out the size (in bytes) of a scanline buffer. The
<i>row</i> parameter is always used by
<i>TIFFReadScanline</i>; the <i>sample</i> parameter is used
only if data are organized in separate planes
(<i>PlanarConfiguration</i>=2).</p>
</td>
</table>
<a name="NOTES"></a>
<h2>NOTES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The library attempts to hide bit- and byte-ordering
differences between the image and the native machine by
converting data to the native machine order. Bit reversal is
done if the <i>FillOrder</i> tag is opposite to the native
machine bit order. 16- and 32-bit samples are automatically
byte-swapped if the file was written with a byte order
opposite to the native machine byte order,</p>
<!-- INDENTATION -->
<p>In C++ the <i>sample</i> parameter defaults to 0.</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFReadScanline</i> returns &minus;1 if it detects an
error; otherwise 1 is returned.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the
<i>TIFFError</i>(3TIFF) routine.</p>
<!-- INDENTATION -->
<p><b>Compression algorithm does not support random
access</b>. Data was requested in a non-sequential order
from a file that uses a compression algorithm and that has
<i>RowsPerStrip</i> greater than one. That is, data in the
image is stored in a compressed form, and with multiple rows
packed into a strip. In this case, the library does not
support random access to the data. The data should either be
accessed sequentially, or the file should be converted so
that each strip is made up of one row of data.</p>
</td>
</table>
<a name="BUGS"></a>
<h2>BUGS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Reading subsampled YCbCR data does not work correctly
because, for <i>PlanarConfiguration</i>=2 the size of a
scanline is not calculated on a per-sample basis, and for
<i>PlanarConfiguration</i>=1 the library does not unpack the
block-interleaved samples; use the strip- and tile-based
interfaces to read these formats.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFOpen</b>(3TIFF),
<b>TIFFReadEncodedStrip</b>(3TIFF),
<b>TIFFReadRawStrip</b>(3TIFF), <b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�)̐�� html/man/TIFFReadTile.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:17 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFReadTile</title>
</head>
<body>

<h1 align=center>TIFFReadTile</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFReadTile &minus; read and decode a tile of data from
an open <small>TIFF</small> file</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>tsize_t TIFFReadTile(TIFF *</b><i>tif</i><b>,
tdata_t</b> <i>buf</i><b>, uint32</b> <i>x</i><b>,
uint32</b> <i>y</i><b>, uint32</b> <i>z</i><b>,
tsample_t</b> <i>sample</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Return the data for the tile <i>containing</i> the
specified coordinates. The data placed in <i>buf</i> are
returned decompressed and, typically, in the native byte-
and bit-ordering, but are otherwise packed (see further
below). The buffer must be large enough to hold an entire
tile of data. Applications should call the routine
<i>TIFFTileSize</i> to find out the size (in bytes) of a
tile buffer. The <i>x</i> and <i>y</i> parameters are always
used by <i>TIFFReadTile</i>. The <i>z</i> parameter is used
if the image is deeper than 1 slice
(<i>ImageDepth</i>&gt;1). The <i>sample</i> parameter is
used only if data are organized in separate planes
(<i>PlanarConfiguration</i>=2).</p>
</td>
</table>
<a name="NOTES"></a>
<h2>NOTES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The library attempts to hide bit- and byte-ordering
differences between the image and the native machine by
converting data to the native machine order. Bit reversal is
done if the <i>FillOrder</i> tag is opposite to the native
machine bit order. 16- and 32-bit samples are automatically
byte-swapped if the file was written with a byte order
opposite to the native machine byte order,</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFReadTile</i> returns &minus;1 if it detects an
error; otherwise the number of bytes in the decoded tile is
returned.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the
<b>TIFFError</b>(3TIFF) routine.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFCheckTile</b>(3TIFF),
<b>TIFFComputeTile</b>(3TIFF), <b>TIFFOpen</b>(3TIFF),
<b>TIFFReadEncodedTile</b>(3TIFF),
<b>TIFFReadRawTile</b>(3TIFF), <b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�i���$html/man/TIFFSetDirectory.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:17 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFSetDirectory</title>
</head>
<body>

<h1 align=center>TIFFSetDirectory</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFSetDirectory, TIFFSetSubDirectory &minus; set the
current directory for an open <small>TIFF</small> file</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>int TIFFSetDirectory(TIFF *</b><i>tif</i><b>,
tdir_t</b> <i>dirnum</i><b>)<br>
int TIFFSetSubDirectory(TIFF *</b><i>tif</i><b>, uint32</b>
<i>diroff</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFSetDirectory</i> changes the current directory and
reads its contents with <i>TIFFReadDirectory</i>. The
parameter <i>dirnum</i> specifies the subfile/directory as
an integer number, with the first directory numbered
zero.</p>
<!-- INDENTATION -->
<p><i>TIFFSetSubDirectory</i> acts like
<i>TIFFSetDirectory</i>, except the directory is specified
as a file offset instead of an index; this is required for
accessing subdirectories linked through a <i>SubIFD</i>
tag.</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>On successful return 1 is returned. Otherwise, 0 is
returned if <i>dirnum</i> or <i>diroff</i> specifies a
non-existent directory, or if an error was encountered while
reading the directory&rsquo;s contents.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the
<i>TIFFError</i>(3TIFF) routine.</p>
<!-- INDENTATION -->
<p><b>%s: Error fetching directory count</b>. An error was
encountered while reading the &lsquo;&lsquo;directory
count&rsquo;&rsquo; field.</p>
<!-- INDENTATION -->
<p><b>%s: Error fetching directory link</b>. An error was
encountered while reading the &lsquo;&lsquo;link
value&rsquo;&rsquo; that points to the next directory in a
file.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFCurrentDirectory</i>(3TIFF),
<i>TIFFOpen</i>(3TIFF), <i>TIFFReadDirectory</i>(3TIFF),
<i>TIFFWriteDirectory</i>(3TIFF), <i>libtiff</i>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\ӹ�uyuy html/man/TIFFSetField.3tiff.htmlnu�[���<!-- Creator     : groff version 1.20.1 -->
<!-- CreationDate: Thu May  6 13:48:46 2010 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="Content-Style" content="text/css">
<style type="text/css">
       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
       h1      { text-align: center }
</style>
<title>TIFFSetField</title>

</head>
<body>

<h1 align="center">TIFFSetField</h1>

<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>


<h2>NAME
<a name="NAME"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em">TIFFSetField,
TIFFVSetField &minus; set the value(s) of a tag in a
<small>TIFF</small> file open for writing</p>

<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em"><b>#include
&lt;tiffio.h&gt;</b></p>

<p style="margin-left:11%; margin-top: 1em"><b>int
TIFFSetField(TIFF *</b><i>tif</i><b>, ttag_t</b>
<i>tag</i><b>,</b> <i>...</i><b>)</b></p>

<p style="margin-left:11%; margin-top: 1em"><b>#include
&lt;stdarg.h&gt;</b></p>

<p style="margin-left:11%; margin-top: 1em"><b>int
TIFFVSetField(TIFF *</b><i>tif</i><b>, ttag_t</b>
<i>tag</i><b>, va_list</b> <i>ap</i><b>)</b></p>

<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b><i>TIFFSetField</i></b>
sets the value of a field or pseudo-tag in the current
directory associated with the open <small>TIFF</small> file
<i>tif</i>. (A <i>pseudo-tag</i> is a parameter that is used
to control the operation of the <small>TIFF</small> library
but whose value is not read or written to the underlying
file.) To set the value of a field the file must have been
previously opened for writing with <i>TIFFOpen</i>(3TIFF);
pseudo-tags can be set whether the file was opened for
reading or writing. The field is identified by <i>tag</i>,
one of the values defined in the include file <b>tiff.h</b>
(see also the table below). The actual value is specified
using a variable argument list, as prescribed by the
<i>stdarg</i>(3) interface (or, on some machines, the
<i>varargs</i>(3) interface.)</p>


<p style="margin-left:11%; margin-top: 1em"><i>TIFFVSetField</i>
is functionally equivalent to <i>TIFFSetField</i> except
that it takes a pointer to a variable argument list.
<i>TIFFVSetField</i> is useful for writing routines that are
layered on top of the functionality provided by
<i>TIFFSetField</i>.</p>

<p style="margin-left:11%; margin-top: 1em">The tags
understood by <i>libtiff</i>, the number of parameter
values, and the expected types for the parameter values are
shown below. The data types are: <i>char*</i> is
null-terminated string and corresponds to the
<small>ASCII</small> data type; <i>uint16</i> is an unsigned
16-bit value; <i>uint32</i> is an unsigned 32-bit value;
<i>uint16*</i> is an array of unsigned 16-bit values.
<i>void*</i> is an array of data values of unspecified
type.</p>

<p style="margin-left:11%; margin-top: 1em">Consult the
<small>TIFF</small> specification for information on the
meaning of each tag.</p>

<table width="100%" border="0" rules="none" frame="void"
       cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p><i>Tag Name</i></p></td>
<td width="11%"></td>
<td width="29%">


<p><i>Count</i></p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p><i>Types</i></p></td>
<td width="11%">


<p><i>Notes</i></p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_ARTIST</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>char*</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_BADFAXLINES</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint32</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_BITSPERSAMPLE</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">


<p>&dagger;</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_CLEANFAXDATA</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_COLORMAP</p></td>
<td width="11%"></td>
<td width="29%">


<p>3</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16*</p></td>
<td width="11%">


<p>1&lt;&lt;BitsPerSample arrays</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_COMPRESSION</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">


<p>&dagger;</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_CONSECUTIVEBADFAXLINES</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint32</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_COPYRIGHT</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>char*</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_DATETIME</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>char*</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_DOCUMENTNAME</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>char*</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_DOTRANGE</p></td>
<td width="11%"></td>
<td width="29%">


<p>2</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_EXTRASAMPLES</p></td>
<td width="11%"></td>
<td width="29%">


<p>2</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16,uint16*</p></td>
<td width="11%">


<p>&dagger; count &amp; types array</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_FAXFILLFUNC</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>TIFFFaxFillFunc</p></td>
<td width="11%">


<p>G3/G4 compression pseudo-tag</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_FAXMODE</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>int</p></td>
<td width="11%">


<p>&dagger; G3/G4 compression pseudo-tag</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_FILLORDER</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">


<p>&dagger;</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_GROUP3OPTIONS</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint32</p></td>
<td width="11%">


<p>&dagger;</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_GROUP4OPTIONS</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint32</p></td>
<td width="11%">


<p>&dagger;</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_HALFTONEHINTS</p></td>
<td width="11%"></td>
<td width="29%">


<p>2</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_HOSTCOMPUTER</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>char*</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_ICCPROFILE</p></td>
<td width="11%"></td>
<td width="29%">


<p>2</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint32,void*</p></td>
<td width="11%">


<p>count, profile data</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_IMAGEDEPTH</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint32</p></td>
<td width="11%">


<p>&dagger;</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_IMAGEDESCRIPTION</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>char*</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_IMAGELENGTH</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint32</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_IMAGEWIDTH</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint32</p></td>
<td width="11%">


<p>&dagger;</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_INKNAMES</p></td>
<td width="11%"></td>
<td width="29%">


<p>2</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16, char*</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_INKSET</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">


<p>&dagger;</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_JPEGCOLORMODE</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>int</p></td>
<td width="11%">


<p>&dagger; JPEG pseudo-tag</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_JPEGQUALITY</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>int</p></td>
<td width="11%">


<p>JPEG pseudo-tag</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_JPEGTABLES</p></td>
<td width="11%"></td>
<td width="29%">


<p>2</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint32*,void*</p></td>
<td width="11%">


<p>&dagger; count &amp; tables</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_JPEGTABLESMODE</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>int</p></td>
<td width="11%">


<p>&dagger; JPEG pseudo-tag</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_MAKE</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>char*</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_MATTEING</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">


<p>&dagger;</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_MAXSAMPLEVALUE</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_MINSAMPLEVALUE</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_MODEL</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>char*</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_ORIENTATION</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_PAGENAME</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>char*</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_PAGENUMBER</p></td>
<td width="11%"></td>
<td width="29%">


<p>2</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_PHOTOMETRIC</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_PHOTOSHOP</p></td>
<td width="11%"></td>
<td width="29%">


<p>?</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint32,void*</p></td>
<td width="11%">


<p>count, data</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_PLANARCONFIG</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">


<p>&dagger;</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_PREDICTOR</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">


<p>&dagger;</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_PRIMARYCHROMATICITIES</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>float*</p></td>
<td width="11%">


<p>6-entry array</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_REFERENCEBLACKWHITE</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>float*</p></td>
<td width="11%">


<p>&dagger; 6-entry array</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_RESOLUTIONUNIT</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_RICHTIFFIPTC</p></td>
<td width="11%"></td>
<td width="29%">


<p>2</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint32,void*</p></td>
<td width="11%">


<p>count, data</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_ROWSPERSTRIP</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint32</p></td>
<td width="11%">


<p>&dagger; must be &gt; 0</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_SAMPLEFORMAT</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">


<p>&dagger;</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_SAMPLESPERPIXEL</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">


<p>&dagger; value must be &lt;= 4</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_SMAXSAMPLEVALUE</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>double</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_SMINSAMPLEVALUE</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>double</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_SOFTWARE</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>char*</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_STONITS</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>double</p></td>
<td width="11%">


<p>&dagger;</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_SUBFILETYPE</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint32</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_SUBIFD</p></td>
<td width="11%"></td>
<td width="29%">


<p>2</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16,uint32*</p></td>
<td width="11%">


<p>count &amp; offsets array</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_TARGETPRINTER</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>char*</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_THRESHHOLDING</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_TILEDEPTH</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint32</p></td>
<td width="11%">


<p>&dagger;</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_TILELENGTH</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint32</p></td>
<td width="11%">


<p>&dagger; must be a multiple of 8</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_TILEWIDTH</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint32</p></td>
<td width="11%">


<p>&dagger; must be a multiple of 8</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_TRANSFERFUNCTION</p></td>
<td width="11%"></td>
<td width="29%">


<p>1 or 3&Dagger; uint16*</p></td>
<td width="11%">


<p>1&lt;&lt;BitsPerSample entry arrays</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_WHITEPOINT</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>float*</p></td>
<td width="11%">


<p>2-entry array</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_XMLPACKET</p></td>
<td width="11%"></td>
<td width="29%">


<p>2</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint32,void*</p></td>
<td width="11%">


<p>count, data</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_XPOSITION</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>float</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_XRESOLUTION</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>float</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_YCBCRCOEFFICIENTS</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>float*</p></td>
<td width="11%">


<p>&dagger; 3-entry array</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_YCBCRPOSITIONING</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">


<p>&dagger;</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_YCBCRSAMPLING</p></td>
<td width="11%"></td>
<td width="29%">


<p>2</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>uint16</p></td>
<td width="11%">


<p>&dagger;</p></td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_YPOSITION</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>float</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%">


<p>TIFFTAG_YRESOLUTION</p></td>
<td width="11%"></td>
<td width="29%">


<p>1</p></td>
<td width="11%">
</td></tr>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="38%"></td>
<td width="11%"></td>
<td width="29%">


<p>float</p></td>
<td width="11%">
</td></tr>
</table>

<p style="margin-left:11%;">&dagger; Tag may not have its
values changed once data is written. <br>
&Dagger; If <i>SamplesPerPixel</i> is one, then a single
array is passed; otherwise three arrays should be passed.
<br>
* The contents of this field are quite complex. See <b>The
ICC Profile Format Specification</b>, Annex B.3
&quot;Embedding ICC Profiles in TIFF Files&quot; (available
at http://www.color.org) for an explanation.</p>

<h2>RETURN VALUES
<a name="RETURN VALUES"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em">1 is returned
if the operation was successful. Otherwise, 0 is returned if
an error was detected.</p>

<h2>DIAGNOSTICS
<a name="DIAGNOSTICS"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em">All error
messages are directed to the <b>TIFFError</b>(3TIFF)
routine.</p>

<p style="margin-left:11%; margin-top: 1em"><b>%s: Cannot
modify tag &quot;%s&quot; while writing</b>. Data has
already been written to the file, so the specified
tag&rsquo;s value can not be changed. This restriction is
applied to all tags that affect the format of written
data.</p>

<p style="margin-left:11%; margin-top: 1em"><b>%d: Bad
value for &quot;%s&quot;</b>. An invalid value was supplied
for the named tag.</p>

<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>TIFFOpen</b>(3TIFF),
<b>TIFFGetField</b>(3TIFF), <b>TIFFSetDirectory</b>(3TIFF),
<b>TIFFWriteDirectory</b>(3TIFF),
<b>TIFFReadDirectory</b>(3TIFF), <b>libtiff</b>(3TIFF)</p>

<p style="margin-left:11%; margin-top: 1em">Libtiff library
home page: <b>http://www.simplesystems.org/libtiff/</b></p>
<hr>
</body>
</html>
PK粐\s�}u

html/man/TIFFWarning.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:18 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFWarning</title>
</head>
<body>

<h1 align=center>TIFFWarning</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFWarning, TIFFSetWarningHandler &minus; library
warning interface</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>void TIFFWarning(const char *</b><i>module</i><b>,
const char *</b><i>fmt</i><b>,</b> <i>...</i><b>)</b></p>
<!-- INDENTATION -->
<p><b>#include &lt;stdarg.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>typedef void (*TIFFWarningHandler)(const char
*</b><i>module</i><b>, const char *</b><i>fmt</i><b>,
va_list</b> <i>ap</i><b>);</b></p>
<!-- INDENTATION -->
<p><b>TIFFWarningHandler
TIFFSetWarningHandler(TIFFWarningHandler</b>
<i>handler</i><b>);</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFWarning</i> invokes the library-wide warning
handler function to (normally) write a warning message to
the <b>stderr</b>. The <i>fmt</i> parameter is a
<i>printf</i>(3S) format string, and any number arguments
can be supplied. The <i>module</i> parameter is interpreted
as a string that, if non-zero, should be printed before the
message; it typically is used to identify the software
module in which a warning is detected.</p>
<!-- INDENTATION -->
<p>Applications that desire to capture control in the event
of a warning should use <i>TIFFSetWarningHandler</i> to
override the default warning handler. A <small>NULL</small>
(0) warning handler function may be installed to suppress
error messages.</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFSetWarningHandler</i> returns a reference to the
previous error handling function.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFError</b>(3TIFF), <b>libtiff</b>(3TIFF),
<b>printf</b>(3)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�Uk�VV&html/man/TIFFWriteDirectory.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:18 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFWriteDirectory</title>
</head>
<body>

<h1 align=center>TIFFWriteDirectory</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFWriteDirectory, TIFFRewriteDirectory,
TIFFCheckpointDirectory &minus; write the current directory
in an open <small>TIFF</small> file</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>int TIFFWriteDirectory(TIFF *</b><i>tif</i><b>)<br>
int TIFFRewriteDirectory(TIFF *</b><i>tif</i><b>)<br>
int TIFFCheckpointDirectory(TIFF *</b><i>tif</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFWriteDirectory</i> will write the contents of the
current directory to the file and setup to create a new
subfile in the same file. Applications only need to call
<i>TIFFWriteDirectory</i> when writing multiple subfiles to
a single <small>TIFF</small> file. <i>TIFFWriteDirectory</i>
is automatically called by <i>TIFFClose</i> and
<i>TIFFFlush</i> to write a modified directory if the file
is open for writing.</p>
<!-- INDENTATION -->
<p>The <i>TIFFRewriteDirectory</i> function operates
similarly to <i>TIFFWriteDirectory,</i> but can be called
with directories previously read or written that already
have an established location in the file. It will rewrite
the directory, but instead of place it at it&rsquo;s old
location (as <i>TIFFWriteDirectory</i> would) it will place
them at the end of the file, correcting the pointer from the
preceeding directory or file header to point to it&rsquo;s
new location. This is particularly important in cases where
the size of the directory and pointed to data has grown, so
it won&rsquo;t fit in the space available at the old
location.</p>
<!-- INDENTATION -->
<p>The <i>TIFFCheckpointDirectory</i> writes the current
state of the tiff directory into the file to make what is
currently in the file readable. Unlike
<i>TIFFWriteDirectory, TIFFCheckpointDirectory</i> does not
free up the directory data structures in memory, so they can
be updated (as strips/tiles are written) and written again.
Reading such a partial file you will at worst get a tiff
read error for the first strip/tile encountered that is
incomplete, but you will at least get all the valid data in
the file before that. When the file is complete, just use
<i>TIFFWriteDirectory</i> as usual to finish it off
cleanly.</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>1 is returned when the contents are successfully written
to the file. Otherwise, 0 is returned if an error was
encountered when writing the directory contents.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the
<i>TIFFError</i>(3TIFF) routine.</p>
<!-- INDENTATION -->
<p><b>Error post-encoding before directory write</b>. Before
writing the contents of the current directory, any pending
data are flushed. This message indicates that an error
occurred while doing this.</p>
<!-- INDENTATION -->
<p><b>Error flushing data before directory write</b>. Before
writing the contents of the current directory, any pending
data are flushed. This message indicates that an error
occurred while doing this.</p>
<!-- INDENTATION -->
<p><b>Cannot write directory, out of space</b>. There was
not enough space to allocate a temporary area for the
directory that was to be written.</p>
<!-- INDENTATION -->
<p><b>Error writing directory count</b>. A write error
occurred when writing the count of fields in the
directory.</p>
<!-- INDENTATION -->
<p><b>Error writing directory contents</b>. A write error
occurred when writing the directory fields.</p>
<!-- INDENTATION -->
<p><b>Error writing directory link</b>. A write error
occurred when writing the link to the next directory.</p>
<!-- INDENTATION -->
<p><b>Error writing data for field &quot;%s&quot;</b>. A
write error occurred when writing indirect data for the
specified field.</p>
<!-- INDENTATION -->
<p><b>Error writing TIFF header</b>. A write error occurred
when re-writing header at the front of the file.</p>
<!-- INDENTATION -->
<p><b>Error fetching directory count</b>. A read error
occurred when fetching the directory count field for a
previous directory. This can occur when setting up a link to
the directory that is being written.</p>
<!-- INDENTATION -->
<p><b>Error fetching directory link</b>. A read error
occurred when fetching the directory link field for a
previous directory. This can occur when setting up a link to
the directory that is being written.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFOpen</b>(3TIFF), <b>TIFFError</b>(3TIFF),
<b>TIFFReadDirectory</b>(3TIFF),
<b>TIFFSetDirectory</b>(3TIFF), <b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�>���)html/man/TIFFWriteEncodedStrip.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:18 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFWriteEncodedStrip</title>
</head>
<body>

<h1 align=center>TIFFWriteEncodedStrip</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>TIFFWritedEncodedStrip &minus; compress and write a
strip of data to an open</big> TIFF <big>file</big></p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big><b>#include &lt;tiffio.h&gt;</b></big></p>
<!-- INDENTATION -->
<p><big><b>tsize_t TIFFWriteEncodedStrip(TIFF
*</b><i>tif</i><b>, tstrip_t</b> <i>strip</i><b>,
tdata_t</b> <i>buf</i><b>, tsize_t</b>
<i>size</i><b>)</b></big></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>Compress <i>size</i> bytes of raw data from
<i>buf</i> and write the result to the specified strip;
replacing any previously written data. Note that the value
of <i>strip</i> is a &lsquo;&lsquo;raw strip
number.&rsquo;&rsquo; That is, the caller must take into
account whether or not the data are organized in separate
planes (<i>PlanarConfiguration</i>=2).</big></p>
</td>
</table>
<a name="NOTES"></a>
<h2>NOTES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>The library writes encoded data using the native
machine byte order. Correctly implemented</big> TIFF
<big>readers are expected to do any necessary byte-swapping
to correctly process image data with BitsPerSample greater
than 8.</big></p>
<!-- INDENTATION -->
<p><big>The strip number must be valid according to the
current settings of the <i>ImageLength</i> and
<i>RowsPerStrip</i> tags. An image may be dynamically grown
by increasing the value of <i>ImageLength</i> prior to each
call to <i>TIFFWriteEncodedStrip</i>.</big></p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>&minus;1 is returned if an error was encountered.
Otherwise, the value of <i>size</i> is returned.</big></p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>All error messages are directed to the
<i>TIFFError</i>(3TIFF) routine.</big></p>
<!-- INDENTATION -->
<p><big><b>%s: File not open for writing</b>. The file was
opened for reading, not writing.</big></p>
<!-- INDENTATION -->
<p><big><b>Can not write scanlines to a tiled image</b>. The
image is assumed to be organized in tiles because the
<i>TileWidth</i> and <i>TileLength</i> tags have been set
with <i>TIFFSetField</i>(3TIFF).</big></p>
<!-- INDENTATION -->
<p><big><b>%s: Must set &quot;ImageWidth&quot; before
writing data</b>. The image&rsquo;s width has not be set
before the first write. See <i>TIFFSetField</i>(3TIFF) for
information on how to do this.</big></p>
<!-- INDENTATION -->
<p><big><b>%s: Must set &quot;PlanarConfiguration&quot;
before writing data</b>. The organization of data has not be
defined before the first write. See
<i>TIFFSetField</i>(3TIFF) for information on how to do
this.</big></p>
<!-- INDENTATION -->
<p><big><b>%s: No space for strip arrays&quot;</b>. There
was not enough space for the arrays that hold strip offsets
and byte counts.</big></p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big><b>TIFFOpen</b>(3TIFF),
<b>TIFFWriteScanline</b>(3TIFF),
<b>TIFFWriteRawStrip</b>(3TIFF),
<b>libtiff</b>(3TIFF)</big></p>
<!-- INDENTATION -->
<p><big>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></big></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\���(html/man/TIFFWriteEncodedTile.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:18 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFWriteEncodedTile</title>
</head>
<body>

<h1 align=center>TIFFWriteEncodedTile</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>TIFFWritedEncodedTile &minus; compress and write a
tile of data to an open</big> TIFF <big>file</big></p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big><b>#include &lt;tiffio.h&gt;</b></big></p>
<!-- INDENTATION -->
<p><big><b>tsize_t TIFFWriteEncodedTile(TIFF
*</b><i>tif</i><b>, ttile_t</b> <i>tile</i><b>, tdata_t</b>
<i>buf</i><b>, tsize_t</b> <i>size</i><b>)</b></big></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>Compress <i>size</i> bytes of raw data from
<i>buf</i> and <b>append</b> the result to the end of the
specified tile. Note that the value of <i>tile</i> is a
&lsquo;&lsquo;raw tile number.&rsquo;&rsquo; That is, the
caller must take into account whether or not the data are
organized in separate places (<i>PlanarConfiguration</i>=2).
<i>TIFFComputeTile</i> automatically does this when
converting an (x,y,z,sample) coordinate quadruple to a tile
number.</big></p>
</td>
</table>
<a name="NOTES"></a>
<h2>NOTES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>The library writes encoded data using the native
machine byte order. Correctly implemented</big> TIFF
<big>readers are expected to do any necessary byte-swapping
to correctly process image data with BitsPerSample greater
than 8.</big></p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>&minus;1 is returned if an error was encountered.
Otherwise, the value of <i>size</i> is returned.</big></p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>All error messages are directed to the
<b>TIFFError</b>(3TIFF) routine.</big></p>
<!-- INDENTATION -->
<p><big><b>%s: File not open for writing</b>. The file was
opened for reading, not writing.</big></p>
<!-- INDENTATION -->
<p><big><b>Can not write tiles to a stripped image</b>. The
image is assumed to be organized in strips because neither
of the <i>TileWidth</i> or <i>TileLength</i> tags have been
set with <b>TIFFSetField</b>(3TIFF).</big></p>
<!-- INDENTATION -->
<p><big><b>%s: Must set &quot;ImageWidth&quot; before
writing data</b>. The image&rsquo;s width has not be set
before the first write. See <b>TIFFSetField</b>(3TIFF) for
information on how to do this.</big></p>
<!-- INDENTATION -->
<p><big><b>%s: Must set &quot;PlanarConfiguration&quot;
before writing data</b>. The organization of data has not be
defined before the first write. See
<b>TIFFSetField</b>(3TIFF) for information on how to do
this.</big></p>
<!-- INDENTATION -->
<p><big><b>%s: No space for tile arrays&quot;</b>. There was
not enough space for the arrays that hold tile offsets and
byte counts.</big></p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big><b>TIFFOpen</b>(3TIFF), <b>TIFFWriteTile</b>(3TIFF),
<b>TIFFWriteRawTile</b>(3TIFF),
<b>libtiff</b>(3TIFF)</big></p>
<!-- INDENTATION -->
<p><big>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></big></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\E0Q��%html/man/TIFFWriteRawStrip.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:18 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFWriteRawstrip</title>
</head>
<body>

<h1 align=center>TIFFWriteRawstrip</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFWriteRawStrip &minus; write a strip of raw data to an
open <small>TIFF</small> file</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>tsize_t TIFFWriteRawStrip(TIFF *</b><i>tif</i><b>,
tstrip_t</b> <i>strip</i><b>, tdata_t</b> <i>buf</i><b>,
tsize_t</b> <i>size</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Append <i>size</i> bytes of raw data to the specified
strip.</p>
</td>
</table>
<a name="NOTES"></a>
<h2>NOTES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The strip number must be valid according to the current
settings of the <i>ImageLength</i> and <i>RowsPerStrip</i>
tags. An image may be dynamically grown by increasing the
value of <i>ImageLength</i> prior to each call to
<i>TIFFWriteRawStrip</i>.</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>&minus;1 is returned if an error occurred. Otherwise, the
value of <i>size</i> is returned.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the
<b>TIFFError</b>(3TIFF) routine.</p>
<!-- INDENTATION -->
<p><b>%s: File not open for writing</b>. The file was opened
for reading, not writing.</p>
<!-- INDENTATION -->
<p><b>Can not write scanlines to a tiled image</b>. The
image is assumed to be organized in tiles because the
<i>TileWidth</i> and <i>TileLength</i> tags have been set
with <b>TIFFSetField</b>(3TIFF).</p>
<!-- INDENTATION -->
<p><b>%s: Must set &quot;ImageWidth&quot; before writing
data</b>. The image&rsquo;s width has not be set before the
first write. See <b>TIFFSetField</b>(3TIFF) for information
on how to do this.</p>
<!-- INDENTATION -->
<p><b>%s: Must set &quot;PlanarConfiguration&quot; before
writing data</b>. The organization of data has not be
defined before the first write. See
<b>TIFFSetField</b>(3TIFF) for information on how to do
this.</p>
<!-- INDENTATION -->
<p><b>%s: No space for strip arrays&quot;</b>. There was not
enough space for the arrays that hold strip offsets and byte
counts.</p>
<!-- INDENTATION -->
<p><b>%s: Strip %d out of range, max %d</b>. The specified
strip is not a valid strip according to the currently
specified image dimensions.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFOpen</b>(3TIFF),
<b>TIFFWriteEncodedStrip</b>(3TIFF),
<b>TIFFWriteScanline</b>(3TIFF), <b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\Se�E��$html/man/TIFFWriteRawTile.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:18 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFWriteRawtile</title>
</head>
<body>

<h1 align=center>TIFFWriteRawtile</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFWriteRawTile &minus; write a tile of raw data to an
open <small>TIFF</small> file</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>tsize_t TIFFWriteRawTile(TIFF *</b><i>tif</i><b>,
ttile_t</b> <i>tile</i><b>, tdata_t</b> <i>buf</i><b>,
tsize_t</b> <i>size</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Append <i>size</i> bytes of raw data to the specified
tile.</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>&minus;1 is returned if an error occurred. Otherwise, the
value of <i>size</i> is returned.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the
<b>TIFFError</b>(3TIFF) routine.</p>
<!-- INDENTATION -->
<p><b>%s: File not open for writing</b>. The file was opened
for reading, not writing.</p>
<!-- INDENTATION -->
<p><b>Can not write tiles to a stripped image</b>. The image
is assumed to be organized in strips because neither of the
<i>TileWidth</i> or <i>TileLength</i> tags have been set
with <b>TIFFSetField</b>(3TIFF).</p>
<!-- INDENTATION -->
<p><b>%s: Must set &quot;ImageWidth&quot; before writing
data</b>. The image&rsquo;s width has not be set before the
first write. See <b>TIFFSetField</b>(3TIFF) for information
on how to do this.</p>
<!-- INDENTATION -->
<p><b>%s: Must set &quot;PlanarConfiguration&quot; before
writing data</b>. The organization of data has not be
defined before the first write. See
<b>TIFFSetField</b>(3TIFF) for information on how to do
this.</p>
<!-- INDENTATION -->
<p><b>%s: No space for tile arrays&quot;</b>. There was not
enough space for the arrays that hold tile offsets and byte
counts.</p>
<!-- INDENTATION -->
<p><b>%s: Specified tile %d out of range, max %d</b>. The
specified tile is not valid according to the currently
specified image dimensions.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFOpen</b>(3TIFF),
<b>TIFFWriteEncodedTile</b>(3TIFF),
<b>TIFFWriteScanline</b>(3TIFF), <b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\R����%html/man/TIFFWriteScanline.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:18 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFWriteScanline</title>
</head>
<body>

<h1 align=center>TIFFWriteScanline</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#BUGS">BUGS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFWriteScanline &minus; write a scanline to an open
<small>TIFF</small> file</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>int TIFFWriteScanline(TIFF *</b><i>tif</i><b>,
tdata_t</b> <i>buf</i><b>, uint32</b> <i>row</i><b>,
tsample_t</b> <i>sample</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Write data to a file at the specified row. The
<i>sample</i> parameter is used only if data are organized
in separate planes (<i>PlanarConfiguration</i>=2). The data
are assumed to be uncompressed and in the native bit- and
byte-order of the host machine. The data written to the file
is compressed according to the compression scheme of the
current <small>TIFF</small> directory (see further below).
If the current scanline is past the end of the current
subfile, the <i>ImageLength</i> field is automatically
increased to include the scanline (except for
<i>PlanarConfiguration</i>=2, where the <i>ImageLength</i>
cannot be changed once the first data are written). If the
<i>ImageLength</i> is increased, the <i>StripOffsets</i> and
<i>StripByteCounts</i> fields are similarly enlarged to
reflect data written past the previous end of image.</p>
</td>
</table>
<a name="NOTES"></a>
<h2>NOTES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The library writes encoded data using the native machine
byte order. Correctly implemented <small>TIFF</small>
readers are expected to do any necessary byte-swapping to
correctly process image data with BitsPerSample greater than
8. The library attempts to hide bit-ordering differences
between the image and the native machine by converting data
from the native machine order.</p>
<!-- INDENTATION -->
<p>In C++ the <i>sample</i> parameter defaults to 0.</p>
<!-- INDENTATION -->
<p>Once data are written to a file for the current
directory, the values of certain tags may not be altered;
see <i>TIFFSetField</i>(3TIFF) for more information.</p>
<!-- INDENTATION -->
<p>It is not possible to write scanlines to a file that uses
a tiled organization. The routine <i>TIFFIsTiled</i> can be
used to determine if the file is organized as tiles or
strips.</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFWriteScanline</i> returns &minus;1 if it
immediately detects an error and 1 for a successful
write.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the
<i>TIFFError</i>(3TIFF) routine.</p>
<!-- INDENTATION -->
<p><b>%s: File not open for writing .</b> The file was
opened for reading, not writing.</p>
<!-- INDENTATION -->
<p><b>Can not write scanlines to a tiled image</b>. An
attempt was made to write a scanline to a tiled image. The
image is assumed to be organized in tiles because the
<i>TileWidth</i> and <i>TileLength</i> tags have been set
with <i>TIFFSetField</i>(3TIFF).</p>
<!-- INDENTATION -->
<p><b>Compression algorithm does not support random
access</b>. Data was written in a non-sequential order to a
file that uses a compression algorithm and that has
<i>RowsPerStrip</i> greater than one. That is, data in the
image is to be stored in a compressed form, and with
multiple rows packed into a strip. In this case, the library
does not support random access to the data. The data should
either be written as entire strips, sequentially by rows, or
the value of <i>RowsPerStrip</i> should be set to one.</p>
<!-- INDENTATION -->
<p><b>%s: Must set &quot;ImageWidth&quot; before writing
data</b>. The image&rsquo;s width has not be set before the
first write. See <b>TIFFSetField</b>(3TIFF) for information
on how to do this.</p>
<!-- INDENTATION -->
<p><b>%s: Must set &quot;PlanarConfiguration&quot; before
writing data</b>. The organization of data has not be
defined before the first write. See
<b>TIFFSetField</b>(3TIFF) for information on how to do
this.</p>
<!-- INDENTATION -->
<p><b>Can not change &quot;ImageLength&quot; when using
separate planes</b>. Separate image planes are being used
(<i>PlanarConfiguration</i>=2), but the number of rows has
not been specified before the first write. The library
supports the dynamic growth of an image only when data are
organized in a contiguous manner
(<i>PlanarConfiguration</i>=1).</p>
<!-- INDENTATION -->
<p><b>%d: Sample out of range, max %d</b>. The <i>sample</i>
parameter was greater than the value of the SamplesPerPixel
tag.</p>
<!-- INDENTATION -->
<p><b>%s: No space for strip arrays .</b> There was not
enough space for the arrays that hold strip offsets and byte
counts.</p>
</td>
</table>
<a name="BUGS"></a>
<h2>BUGS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Writing subsampled YCbCR data does not work correctly
because, for <i>PlanarConfiguration</i>=2 the size of a
scanline is not calculated on a per-sample basis, and for
<i>PlanarConfiguration</i>=1 the library does not pack the
block-interleaved samples.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFOpen</b>(3TIFF),
<b>TIFFWriteEncodedStrip</b>(3TIFF),
<b>TIFFWriteRawStrip</b>(3TIFF), <b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�ss�66!html/man/TIFFWriteTile.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:18 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFWriteTile</title>
</head>
<body>

<h1 align=center>TIFFWriteTile</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFWriteTile &minus; encode and write a tile of data to
an open <small>TIFF</small> file</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>tsize_t TIFFWriteTile(TIFF *</b><i>tif</i><b>,
tdata_t</b> <i>buf</i><b>, uint32</b> <i>x</i><b>,
uint32</b> <i>y</i><b>, uint32</b> <i>z</i><b>,
tsample_t</b> <i>sample</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Write the data for the tile <i>containing</i> the
specified coordinates. The data in <i>buf</i> are is
(potentially) compressed, and written to the indicated file,
normally being appended to the end of the file. The buffer
must be contain an entire tile of data. Applications should
call the routine <i>TIFFTileSize</i> to find out the size
(in bytes) of a tile buffer. The <i>x</i> and <i>y</i>
parameters are always used by <i>TIFFWriteTile</i>. The
<i>z</i> parameter is used if the image is deeper than 1
slice (<i>ImageDepth</i>&gt;1). The <i>sample</i> parameter
is used only if data are organized in separate planes
(<i>PlanarConfiguration</i>=2).</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFWriteTile</i> returns &minus;1 if it detects an
error; otherwise the number of bytes in the tile is
returned.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the
<b>TIFFError</b>(3TIFF) routine.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFCheckTile</b>(3TIFF),
<b>TIFFComputeTile</b>(3TIFF), <b>TIFFOpen</b>(3TIFF),
<b>TIFFReadTile</b>(3TIFF), <b>TIFFWriteScanline</b>(3TIFF),
<b>TIFFWriteEncodedTile</b>(3TIFF),
<b>TIFFWriteRawTile</b>(3TIFF), <b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�λ((html/man/TIFFbuffer.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:15 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFBUFFER</title>
</head>
<body>

<h1 align=center>TIFFBUFFER</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFReadBufferSetup, TIFFWriteBufferSetup &minus; I/O
buffering control routines</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<pre><b>#include &lt;tiffio.h&gt;

int TIFFReadBufferSetup(TIFF *</b><i>tif</i><b>, tdata_t</b> <i>buffer</i><b>, tsize_t</b> <i>size</i><b>);
int TIFFWriteBufferSetup(TIFF *</b><i>tif</i><b>, tdata_t</b> <i>buffer</i><b>, tsize_t</b> <i>size</i><b>);
</b></pre>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The following routines are provided for client-control of
the I/O buffers used by the library. Applications need never
use these routines; they are provided only for
&lsquo;&lsquo;intelligent clients&rsquo;&rsquo; that wish to
optimize memory usage and/or eliminate potential copy
operations that can occur when working with images that have
data stored without compression.</p>
<!-- INDENTATION -->
<p><i>TIFFReadBufferSetup</i> sets up the data buffer used
to read raw (encoded) data from a file. If the specified
pointer is <small>NULL</small> (zero), then a buffer of the
appropriate size is allocated. Otherwise the caller must
guarantee that the buffer is large enough to hold any
individual strip of raw data. <i>TIFFReadBufferSetup</i>
returns a non-zero value if the setup was successful and
zero otherwise.</p>
<!-- INDENTATION -->
<p><i>TIFFWriteBufferSetup</i> sets up the data buffer used
to write raw (encoded) data to a file. If the specified
<i>size</i> is &minus;1 then the buffer size is selected to
hold a complete tile or strip, or at least 8 kilobytes,
whichever is greater. If the specified <i>buffer</i> is
<small>NULL</small> (zero), then a buffer of the appropriate
size is dynamically allocated. <i>TIFFWriteBufferSetup</i>
returns a non-zero value if the setup was successful and
zero otherwise.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>%s: No space for data buffer at scanline %ld</b>.
<i>TIFFReadBufferSetup</i> was unable to dynamically
allocate space for a data buffer.</p>
<!-- INDENTATION -->
<p><b>%s: No space for output buffer</b>.
<i>TIFFWriteBufferSetup</i> was unable to dynamically
allocate space for a data buffer.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\���tthtml/man/TIFFcodec.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:16 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>CODEC</title>
</head>
<body>

<h1 align=center>CODEC</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFFindCODEC, TIFFRegisterCODEC, TIFFUnRegisterCODEC,
TIFFIsCODECConfigured &minus; codec-related utility
routines</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>const TIFFCodec* TIFFFindCODEC(uint16</b>
<i>scheme</i><b>);<br>
TIFFCodec* TIFFRegisterCODEC(uint16</b> <i>scheme</i><b>,
const char *</b><i>method</i><b>, TIFFInitMethod</b>
<i>init</i><b>);<br>
void TIFFUnRegisterCODEC(TIFFCodec
*</b><i>codec</i><b>);<br>
int TIFFIsCODECConfigured(uint16</b>
<i>scheme</i><b>);</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>libtiff</i> supports a variety of compression schemes
implemented by software <i>codecs</i>. Each codec adheres to
a modular interface that provides for the decoding and
encoding of image data; as well as some other methods for
initialization, setup, cleanup, and the control of default
strip and tile sizes. Codecs are identified by the
associated value of the <small>TIFF</small>
<i>Compression</i> tag; e.g. 5 for <small>LZW</small>
compression.</p>
<!-- INDENTATION -->
<p>The <i>TIFFRegisterCODEC</i> routine can be used to
augment or override the set of codecs available to an
application. If the specified <i>scheme</i> already has a
registered codec then it is <i>overridden</i> and any images
with data encoded with this compression scheme will be
decoded using the supplied coded.</p>
<!-- INDENTATION -->
<p><i>TIFFIsCODECConfigured</i> returns 1 if the codec is
configured and working. Otherwise 0 will be returned.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>No space to register compression scheme %s</b>.
<i>TIFFRegisterCODEC</i> was unable to allocate memory for
the data structures needed to register a codec.</p>
<!-- INDENTATION -->
<p><b>Cannot remove compression scheme %s; not
registered</b>. <i>TIFFUnRegisterCODEC</i> did not locate
the specified codec in the table of registered compression
schemes.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\r}��X�Xhtml/man/TIFFcolor.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:16 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>COLOR</title>
</head>
<body>

<h1 align=center>COLOR</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFYCbCrToRGBInit, TIFFYCbCrtoRGB, TIFFCIELabToRGBInit,
TIFFCIELabToXYZ, TIFFXYZToRGB &minus; color conversion
routines.</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>int TIFFYCbCrToRGBInit(TIFFYCbCrToRGB
*</b><i>ycbcr</i><b>, float *</b><i>luma</i><b>, float
*</b><i>refBlackWhite&quot;</i><b>);&quot;<br>
void TIFFYCbCrtoRGB(TIFFYCbCrToRGB *</b><i>ycbcr</i><b>,
uint32</b> <i>Y</i><b>, int32</b> <i>Cb</i><b>, int32</b>
<i>Cr</i><b>, uint32 *</b><i>R</i><b>, uint32
*</b><i>G</i><b>, uint32 *</b><i>B</i> <b>);</b></p>
<!-- INDENTATION -->
<p><b>int TIFFCIELabToRGBInit(TIFFCIELabToRGB
*</b><i>cielab</i><b>, TIFFDisplay *</b><i>display</i><b>,
float *</b><i>refWhite</i><b>);<br>
void TIFFCIELabToXYZ(TIFFCIELabToRGB *</b><i>cielab</i><b>,
uint32</b> <i>L</i><b>, int32</b> <i>a</i><b>, int32</b>
<i>b</i><b>, float *</b><i>X</i><b>, float *</b><i>Y</i><b>,
float *</b><i>Z</i><b>);<br>
void TIFFXYZToRGB(TIFFCIELabToRGB *</b><i>cielab</i><b>,
float</b> <i>X</i><b>, float</b> <i>Y</i><b>, float</b>
<i>Z&quot;</i><b>,</b><i>uint32</i><b>*&quot;</b><i>R</i><b>,
uint32 *</b><i>G</i><b>, uint32 *</b><i>B</i><b>);</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFF supports several color spaces for images stored in
that format. There is usually a problem of application to
handle the data properly and convert between different
colorspaces for displaying and printing purposes. To
simplify this task libtiff implements several color
conversion routines itself. In particular, these routines
used in <b>TIFFRGBAImage(3TIFF)</b> interface.</p>
<!-- INDENTATION -->
<p><b>TIFFYCbCrToRGBInit()</b> used to initialize
<i>YCbCr</i> to <i>RGB</i> conversion state. Allocating and
freeing of the <i>ycbcr</i> structure belongs to programmer.
<i>TIFFYCbCrToRGB</i> defined in <b>tiffio.h</b> as</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>typedef struct {                /* YCbCr-&gt;RGB support */
        TIFFRGBValue* clamptab; /* range clamping table */
</pre>
</td>
</table>
<!-- TABS -->

<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">

<p>int*</p>
<td width="28%"></td>
<td width="-3%"></td>
<td width="12%"></td>
<td width="6%">

<p>Cr_r_tab;<br>
int*</p>
</td>
<td width="56%">
</td>
<tr valign="top" align="left">
<td width="28%"></td>
<td width="-3%"></td>
<td width="12%"></td>
<td width="6%">

<p>Cb_b_tab;<br>
int32*</p>
</td>
<td width="56%">
</td>
<tr valign="top" align="left">
<td width="28%"></td>
<td width="-3%"></td>
<td width="12%"></td>
<td width="6%">

<p>Cr_g_tab;<br>
int32*</p>
</td>
<td width="56%">
</td>
<tr valign="top" align="left">
<td width="28%"></td>
<td width="-3%"></td>
<td width="12%"></td>
<td width="6%">

<p>Cb_g_tab;</p>
</td>
<td width="56%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p>int32* Y_tab;<br>
} TIFFYCbCrToRGB;</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>luma</i> is a float array of three values representing
proportions of the red, green and blue in luminance, Y (see
section 21 of the TIFF 6.0 specification, where the YCbCr
images discussed). <i>TIFFTAG_YCBCRCOEFFICIENTS</i> holds
that values in TIFF file. <i>refBlackWhite</i> is a float
array of 6 values which specifies a pair of headroom and
footroom image data values (codes) for each image component
(see section 20 of the TIFF 6.0 specification where the
colorinmetry fields discussed).
<i>TIFFTAG_REFERENCEBLACKWHITE</i> is responsible for
storing these values in TIFF file. Following code snippet
should helps to understand the the technique:</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>float *luma, *refBlackWhite;
uint16 hs, vs;

/* Initialize structures */
ycbcr = (TIFFYCbCrToRGB*)
</pre>
</td>
</table>
<!-- TABS -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>_TIFFmalloc(TIFFroundup(sizeof(TIFFYCbCrToRGB),
sizeof(long))</p>
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>+ 4*256*sizeof(TIFFRGBValue)</p>
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>+ 2*256*sizeof(int)</p>
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>+ 3*256*sizeof(int32));</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p>if (ycbcr == NULL) {<br>
TIFFError(&quot;YCbCr-&gt;RGB&quot;,</p></td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="4" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="24%"></td>
<td width="6%">
</td>
<td width="6%">

<p>&quot;No space for YCbCr-&gt;RGB conversion
state&quot;);</p>
</td>
<td width="62%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p>exit(0);<br>
}</p>
<!-- INDENTATION -->
<p>TIFFGetFieldDefaulted(tif, TIFFTAG_YCBCRCOEFFICIENTS,
&amp;luma);<br>
TIFFGetFieldDefaulted(tif, TIFFTAG_REFERENCEBLACKWHITE,
&amp;refBlackWhite);<br>
if (TIFFYCbCrToRGBInit(ycbcr, luma, refBlackWhite) &lt;
0)</p></td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>exit(0);</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p>/* Start conversion */<br>
uint32 r, g, b;<br>
uint32 Y;<br>
int32 Cb, Cr;</p>
<!-- INDENTATION -->
<p>for each pixel in image</p></td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>TIFFYCbCrtoRGB(img-&gt;ycbcr, Y, Cb, Cr, &amp;r, &amp;g,
&amp;b);</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p>/* Free state structure */<br>
_TIFFfree(ycbcr);</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFCIELabToRGBInit()</b> initializes the <i>CIE
L*a*b* 1976</i> to <i>RGB</i> conversion state.
<b>TIFFCIELabToRGB</b> defined as</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>#define CIELABTORGB_TABLE_RANGE 1500

</pre>
</td>
</table>
<!-- TABS -->

<table width="100%" border=0 rules="none" frame="void"
       cols="9" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="6%">

<p>typedef struct {</p>
</td>
<td width="6%"></td>
<td width="6%"></td>
<td width="6%"></td>
<td width="6%">
</td>
<td width="6%">

<p>/* CIE Lab 1976-&gt;RGB support */</p>
</td>
<td width="6%"></td>
<td width="37%">
</td>
<tr valign="top" align="left">
<td width="17%"></td>
<td width="6%">
</td>
<td width="6%">

<p>int</p>
</td>
<td width="6%">

<p>range;</p>
</td>
<td width="6%"></td>
<td width="6%">
</td>
<td width="6%">

<p>/* Size of conversion table */</p>
</td>
<td width="6%"></td>
<td width="37%">
</td>
<tr valign="top" align="left">
<td width="17%"></td>
<td width="6%">
</td>
<td width="6%">

<p>float</p>
</td>
<td width="6%"></td>
<td width="6%">

<p>rstep, gstep, bstep;</p>
</td>
<td width="6%"></td>
<td width="6%"></td>
<td width="6%"></td>
<td width="37%">
</td>
<tr valign="top" align="left">
<td width="17%"></td>
<td width="6%">
</td>
<td width="6%">

<p>float</p>
</td>
<td width="6%"></td>
<td width="6%">

<p>X0, Y0, Z0;</p>
</td>
<td width="6%"></td>
<td width="6%"></td>
<td width="6%">

<p>/* Reference white point */</p>
</td>
<td width="37%">
</td>
<tr valign="top" align="left">
<td width="17%"></td>
<td width="6%"></td>
<td width="6%">

<p>TIFFDisplay display;</p>
</td>
<td width="6%"></td>
<td width="6%"></td>
<td width="6%"></td>
<td width="6%"></td>
<td width="6%"></td>
<td width="37%">
</td>
<tr valign="top" align="left">
<td width="17%"></td>
<td width="6%">
</td>
<td width="6%">

<p>float</p>
</td>
<td width="6%"></td>
<td width="6%">

<p>Yr2r[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yr
to r */</p>
</td>
<td width="6%"></td>
<td width="6%"></td>
<td width="6%"></td>
<td width="37%">
</td>
<tr valign="top" align="left">
<td width="17%"></td>
<td width="6%">
</td>
<td width="6%">

<p>float</p>
</td>
<td width="6%"></td>
<td width="6%">

<p>Yg2g[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yg
to g */</p>
</td>
<td width="6%"></td>
<td width="6%"></td>
<td width="6%"></td>
<td width="37%">
</td>
<tr valign="top" align="left">
<td width="17%"></td>
<td width="6%">
</td>
<td width="6%">

<p>float</p>
</td>
<td width="6%"></td>
<td width="6%">

<p>Yb2b[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yb
to b */</p>
</td>
<td width="6%"></td>
<td width="6%"></td>
<td width="6%"></td>
<td width="37%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p>} TIFFCIELabToRGB;</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>display</i> is a display device description, declared
as</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>typedef struct {
</pre>
</td>
</table>
<!-- TABS -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>float d_mat[3][3]; /* XYZ -&gt; luminance matrix */</p>
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>float d_YCR; /* Light o/p for reference white */</p>
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>float d_YCG;</p>
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>float d_YCB;</p>
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>uint32 d_Vrwr; /* Pixel values for ref. white */</p>
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>uint32 d_Vrwg;</p>
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>uint32 d_Vrwb;</p>
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>float d_Y0R; /* Residual light for black pixel */</p>
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>float d_Y0G;</p>
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>float d_Y0B;</p>
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>float d_gammaR; /* Gamma values for the three guns
*/</p>
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>float d_gammaG;</p>
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>float d_gammaB;</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p>} TIFFDisplay;</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>For example, the one can use sRGB device, which has the
following parameters:</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>TIFFDisplay display_sRGB = {
</pre>
</td>
</table>
<!-- TABS -->

<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="24%"></td>
<td width="0%"></td>
<td width="6%">

<p>{ /* XYZ -&gt; luminance matrix */</p>
</td>
<td width="6%"></td>
<td width="62%">
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="0%"></td>
<td width="6%">
</td>
<td width="6%">

<p>{ 3.2410F, -1.5374F, -0.4986F },</p>
</td>
<td width="62%">
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="0%"></td>
<td width="6%">
</td>
<td width="6%">

<p>{ -0.9692F, 1.8760F, 0.0416F },</p>
</td>
<td width="62%">
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="0%"></td>
<td width="6%">
</td>
<td width="6%">

<p>{ 0.0556F, -0.2040F, 1.0570F }</p>
</td>
<td width="62%">
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="0%"></td>
<td width="6%">

<p>},</p>
</td>
<td width="6%">
</td>
<td width="62%">
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="0%"></td>
<td width="6%">

<p>100.0F, 100.0F, 100.0F, /* Light o/p for reference white
*/</p>
</td>
<td width="6%"></td>
<td width="62%">
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="0%"></td>
<td width="6%">

<p>255, 255, 255, /* Pixel values for ref. white */</p>
</td>
<td width="6%"></td>
<td width="62%">
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="0%"></td>
<td width="6%">

<p>1.0F, 1.0F, 1.0F, /* Residual light o/p for black pixel
*/</p>
</td>
<td width="6%"></td>
<td width="62%">
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="0%"></td>
<td width="6%">

<p>2.4F, 2.4F, 2.4F, /* Gamma values for the three guns
*/</p>
</td>
<td width="6%"></td>
<td width="62%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p>};</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>refWhite</i> is a color temperature of the reference
white. The <i>TIFFTAG_WHITEPOINT</i> contains the
chromaticity of the white point of the image from where the
reference white can be calculated using following
formulae:</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p>refWhite_Y = 100.0<br>
refWhite_X = whitePoint_x / whitePoint_y * refWhite_Y<br>
refWhite_Z = (1.0 - whitePoint_x - whitePoint_y) /
whitePoint_y * refWhite_X</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The conversion itself performed in two steps: at the
first one we will convert <i>CIE L*a*b* 1976</i> to <i>CIE
XYZ</i> using <b>TIFFCIELabToXYZ()</b> routine, and at the
second step we will convert <i>CIE XYZ</i> to <i>RGB</i>
using <b>TIFFXYZToRGB().</b> Look at the code sample
below:</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>float   *whitePoint;
float   refWhite[3];

/* Initialize structures */
img-&gt;cielab = (TIFFCIELabToRGB *)
</pre>
</td>
</table>
<!-- TABS -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>_TIFFmalloc(sizeof(TIFFCIELabToRGB));</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p>if (!cielab) {</p></td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="24%"></td>
<td width="0%"></td>
<td width="6%">

<p>TIFFError(&quot;CIE L*a*b*-&gt;RGB&quot;,</p>
</td>
<td width="6%"></td>
<td width="62%">
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="0%"></td>
<td width="6%">
</td>
<td width="6%">

<p>&quot;No space for CIE L*a*b*-&gt;RGB conversion
state.&quot;);</p>
</td>
<td width="62%">
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="0%"></td>
<td width="6%">

<p>exit(0);</p>
</td>
<td width="6%"></td>
<td width="62%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p>}</p>
<!-- INDENTATION -->
<p>TIFFGetFieldDefaulted(tif, TIFFTAG_WHITEPOINT,
&amp;whitePoint);<br>
refWhite[1] = 100.0F;<br>
refWhite[0] = whitePoint[0] / whitePoint[1] *
refWhite[1];<br>
refWhite[2] = (1.0F - whitePoint[0] -
whitePoint[1])</p></td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>/ whitePoint[1] * refWhite[1];</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p>if (TIFFCIELabToRGBInit(cielab, &amp;display_sRGB,
refWhite) &lt; 0) {</p></td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="24%"></td>
<td width="0%"></td>
<td width="6%">

<p>TIFFError(&quot;CIE L*a*b*-&gt;RGB&quot;,</p>
</td>
<td width="6%"></td>
<td width="62%">
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="0%"></td>
<td width="6%">
</td>
<td width="6%">

<p>&quot;Failed to initialize CIE L*a*b*-&gt;RGB conversion
state.&quot;);</p>
</td>
<td width="62%">
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="0%"></td>
<td width="6%">

<p>_TIFFfree(cielab);</p>
</td>
<td width="6%"></td>
<td width="62%">
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="0%"></td>
<td width="6%">

<p>exit(0);</p>
</td>
<td width="6%"></td>
<td width="62%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p>}</p>
<!-- INDENTATION -->
<p>/* Now we can start to convert */<br>
uint32 r, g, b;<br>
uint32 L;<br>
int32 a, b;<br>
float X, Y, Z;</p>
<!-- INDENTATION -->
<p>for each pixel in image</p></td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>TIFFCIELabToXYZ(cielab, L, a, b, &amp;X, &amp;Y,
&amp;Z);</p>
</td>
<tr valign="top" align="left">
<td width="24%"></td>
<td width="75%">

<p>TIFFXYZToRGB(cielab, X, Y, Z, &amp;r, &amp;g,
&amp;b);</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p>/* Don&rsquo;t forget to free the state structure */<br>
_TIFFfree(cielab);</p></td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFRGBAImage</b>(3TIFF) <b>libtiff</b>(3TIFF),</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\��r�
�
html/man/TIFFmemory.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:16 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>MEMORY</title>
</head>
<body>

<h1 align=center>MEMORY</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>_TIFFmalloc, _TIFFrealloc, _TIFFfree, _TIFFmemset,
_TIFFmemcpy, _TIFFmemcmp, &minus; memory management-related
functions for use with <small>TIFF</small> files</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>tdata_t _TIFFmalloc(tsize_t</b> <i>size</i><b>);<br>
tdata_t _TIFFrealloc(tdata_t</b> <i>buffer</i><b>,
tsize_t</b> <i>size</i><b>);<br>
void _TIFFfree(tdata_t</b> <i>buffer</i><b>);<br>
void _TIFFmemset(tdata_t</b> <i>s</i><b>, int</b>
<i>c</i><b>, tsize_t</b> <i>n</i><b>);<br>
void _TIFFmemcpy(tdata_t</b> <i>dest</i><b>, const
tdata_t</b> <i>src</i><b>, tsize_t</b> <i>n</i><b>);<br>
int _TIFFmemcmp(const tdata_t</b> <i>s1</i><b>, const
tdata_t</b> <i>s2</i><b>, tsize_t</b> <i>n</i><b>);</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>These routines are provided for writing portable software
that uses <i>libtiff</i>; they hide any memory-management
related issues, such as dealing with segmented architectures
found on 16-bit machines.</p>
<!-- INDENTATION -->
<p><i>_TIFFmalloc</i> and <i>_TIFFrealloc</i> are used to
dynamically allocate and reallocate memory used by
<i>libtiff</i>; such as memory passed into the I/O routines.
Memory allocated through these interfaces is released back
to the system using the <i>_TIFFfree</i> routine.</p>
<!-- INDENTATION -->
<p>Memory allocated through one of the above interfaces can
be set to a known value using <i>_TIFFmemset</i>, copied to
another memory location using <i>_TIFFmemcpy</i>, or
compared for equality using <i>_TIFFmemcmp</i>. These
routines conform to the equivalent <small>ANSI</small> C
routines: <i>memset</i>, <i>memcpy</i>, and <i>memcmp</i>,
repsectively.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>None.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>malloc</b>(3), <b>memory</b>(3),
<b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�0��..html/man/TIFFquery.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:16 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>QUERY</title>
</head>
<body>

<h1 align=center>QUERY</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFCurrentRow, TIFFCurrentStrip, TIFFCurrentTile,
TIFFCurrentDirectory, TIFFLastDirectory, TIFFFileno,
TIFFFileName, TIFFGetMode, TIFFIsTiled, TIFFIsByteSwapped,
TIFFIsUpSampled, TIFFIsMSB2LSB, TIFFGetVersion &minus; query
routines</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>uint32 TIFFCurrentRow(TIFF*</b> <i>tif</i><b>)<br>
tstrip_t TIFFCurrentStrip(TIFF*</b> <i>tif</i><b>)<br>
ttile_t TIFFCurrentTile(TIFF*</b> <i>tif</i><b>)<br>
tdir_t TIFFCurrentDirectory(TIFF*</b> <i>tif</i><b>)<br>
int TIFFLastDirectory(TIFF*</b> <i>tif</i><b>)<br>
int TIFFFileno(TIFF*</b> <i>tif</i><b>)<br>
char* TIFFFileName(TIFF*</b> <i>tif</i><b>)<br>
int TIFFGetMode(TIFF*</b> <i>tif</i><b>)<br>
int TIFFIsTiled(TIFF*</b> <i>tif</i><b>)<br>
int TIFFIsByteSwapped(TIFF*</b> <i>tif</i><b>)<br>
int TIFFIsUpSampled(TIFF*</b> <i>tif</i><b>)<br>
int TIFFIsMSB2LSB(TIFF*</b> <i>tif</i><b>)<br>
const char* TIFFGetVersion(void)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The following routines return status information about an
open <small>TIFF</small> file.</p>
<!-- INDENTATION -->
<p><i>TIFFCurrentDirectory</i> returns the index of the
current directory (directories are numbered starting at 0).
This number is suitable for use with the
<i>TIFFSetDirectory</i> routine.</p>
<!-- INDENTATION -->
<p><i>TIFFLastDirectory</i> returns a non-zero value if the
current directory is the last directory in the file;
otherwise zero is returned.</p>
<!-- INDENTATION -->
<p><i>TIFFCurrentRow</i>, <i>TIFFCurrentStrip</i>, and
<i>TIFFCurrentTile</i>, return the current row, strip, and
tile, respectively, that is being read or written. These
values are updated each time a read or write is done.</p>
<!-- INDENTATION -->
<p><i>TIFFFileno</i> returns the underlying file descriptor
used to access the <small>TIFF</small> image in the
filesystem.</p>
<!-- INDENTATION -->
<p><i>TIFFFileName</i> returns the pathname argument passed
to <i>TIFFOpen</i> or <i>TIFFFdOpen</i>.</p>
<!-- INDENTATION -->
<p><i>TIFFGetMode</i> returns the mode with which the
underlying file was opened. On <small>UNIX</small> systems,
this is the value passed to the <i>open</i>(2) system
call.</p>
<!-- INDENTATION -->
<p><i>TIFFIsTiled</i> returns a non-zero value if the image
data has a tiled organization. Zero is returned if the image
data is organized in strips.</p>
<!-- INDENTATION -->
<p><i>TIFFIsByteSwapped</i> returns a non-zero value if the
image data was in a different byte-order than the host
machine. Zero is returned if the TIFF file and local host
byte-orders are the same. Note that TIFFReadTile(),
TIFFReadStrip() and TIFFReadScanline() functions already
normally perform byte swapping to local host order if
needed.</p>
<!-- INDENTATION -->
<p><i>TIFFIsUpSampled</i> returns a non-zero value if image
data returned through the read interface routines is being
up-sampled. This can be useful to applications that want to
calculate I/O buffer sizes to reflect this usage (though the
usual strip and tile size routines already do this).</p>
<!-- INDENTATION -->
<p><i>TIFFIsMSB2LSB</i> returns a non-zero value if the
image data is being returned with bit 0 as the most
significant bit.</p>
<!-- INDENTATION -->
<p><i>TIFFGetVersion</i> returns an <small>ASCII</small>
string that has a version stamp for the <small>TIFF</small>
library software.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>None.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>libtiff</i>(3TIFF), <i>TIFFOpen</i>(3TIFF),
<i>TIFFFdOpen</i>(3TIFF)</p>
</td>
</table>
<hr>
</body>
</html>
PK粐\̠��
�
html/man/TIFFsize.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:17 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFSIZE</title>
</head>
<body>

<h1 align=center>TIFFSIZE</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFScanlineSize, TIFFRasterScanlineSize, &minus; return
the size of various items associated with an open
<small>TIFF</small> file</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>tsize_t TIFFRasterScanlineSize(TIFF
*</b><i>tif</i><b>)<br>
tsize_t TIFFScanlineSize(TIFF *</b><i>tif</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFScanlineSize</i> returns the size in bytes of a
row of data as it would be returned in a call to
<i>TIFFReadScanline</i>, or as it would be expected in a
call to <i>TIFFWriteScanline</i>.</p>
<!-- INDENTATION -->
<p><i>TIFFRasterScanlineSize</i> returns the size in bytes
of a complete decoded and packed raster scanline. Note that
this value may be different from the value returned by
<i>TIFFScanlineSize</i> if data is stored as separate
planes.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>None.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFOpen</b>(3TIFF), <b>TIFFReadScanline</b>(3TIFF),
<b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\���yhtml/man/TIFFstrip.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:17 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFSTRIP</title>
</head>
<body>

<h1 align=center>TIFFSTRIP</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFDefaultStripSize, TIFFStripSize, TIFFVStripSize,
TIFFRawStripSize, TIFFComputeStrip, TIFFNumberOfStrips
&minus; strip-related utility routines</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>uint32 TIFFDefaultStripSize(TIFF *</b><i>tif</i><b>,
uint32</b> <i>estimate</i><b>)<br>
tsize_t TIFFStripSize(TIFF *</b><i>tif</i><b>)<br>
tsize_t TIFFVStripSize(TIFF *</b><i>tif</i><b>, uint32</b>
<i>nrows</i><b>)<br>
tsize_t TIFFRawStripSize(TIFF *</b><i>tif</i><b>,
tstrip_t</b> <i>strip</i><b>)<br>
tstrip_t TIFFComputeStrip(TIFF *</b><i>tif</i><b>,
uint32</b> <i>row</i><b>, tsample_t</b>
<i>sample</i><b>)<br>
tstrip_t TIFFNumberOfStrips(TIFF *</b><i>tif</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFDefaultStripSize</i> returns the number of rows
for a reasonable-sized strip according to the current
settings of the <i>ImageWidth</i>, <i>BitsPerSample</i>,
<i>SamplesPerPixel</i>, tags and any compression-specific
requirements. If the <i>estimate</i> parameter, if non-zero,
then it is taken as an estimate of the desired strip size
and adjusted according to any compression-specific
requirements. The value returned by this function is
typically used to define the <i>RowsPerStrip</i> tag. In
lieu of any unusual requirements <i>TIFFDefaultStripSize</i>
tries to create strips that have approximately 8 kilobytes
of uncompressed data.</p>
<!-- INDENTATION -->
<p><i>TIFFStripSize</i> returns the equivalent size for a
strip of data as it would be returned in a call to
<i>TIFFReadEncodedStrip</i> or as it would be expected in a
call to <i>TIFFWriteEncodedStrip</i>.</p>
<!-- INDENTATION -->
<p><i>TIFFVStripSize</i> returns the number of bytes in a
strip with <i>nrows</i> rows of data.</p>
<!-- INDENTATION -->
<p><i>TIFFRawStripSize</i> returns the number of bytes in a
raw strip (i.e. not decoded).</p>
<!-- INDENTATION -->
<p><i>TIFFComputeStrip</i> returns the strip that contains
the specified coordinates. A valid strip is always returned;
out-of-range coordinate values are clamped to the bounds of
the image. The <i>row</i> parameter is always used in
calculating a strip. The <i>sample</i> parameter is used
only if data are organized in separate planes
(<i>PlanarConfiguration</i>=2).</p>
<!-- INDENTATION -->
<p><i>TIFFNumberOfStrips</i> returns the number of strips in
the image.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>None.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFReadEncodedStrip</b>(3TIFF),
<b>TIFFReadRawStrip</b>(3TIFF),
<b>TIFFWriteEncodedStrip</b>(3TIFF),
<b>TIFFWriteRawStrip</b>(3TIFF), <b>libtiff</b>(3TIFF),</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\r�e%�
�
html/man/TIFFswab.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:18 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>SWAB</title>
</head>
<body>

<h1 align=center>SWAB</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFGetBitRevTable, TIFFReverseBits, TIFFSwabShort,
TIFFSwabLong, TIFFSwabArrayOfShort, TIFFSwabArrayOfLong
&minus; byte- and bit-swapping routines</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>const unsigned char* TIFFGetBitRevTable(int</b>
<i>reversed</i><b>)<br>
void TIFFReverseBits(u_char *</b><i>data</i><b>, unsigned
long</b> <i>nbytes</i><b>)<br>
void TIFFSwabShort(uint16 *</b><i>data</i><b>)<br>
void TIFFSwabLong(uint32 *</b><i>data</i><b>)<br>
void TIFFSwabArrayOfShort(uint16 *</b><i>data</i><b>,
unsigned long</b> <i>nshorts</i><b>)<br>
void TIFFSwabArrayOfLong(uint32 *</b><i>data</i><b>,
unsigned long</b> <i>nlongs</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The following routines are used by the library to swap
16- and 32-bit data and to reverse the order of bits in
bytes.</p>
<!-- INDENTATION -->
<p><i>TIFFSwabShort</i> and <i>TIFFSwabLong</i> swap the
bytes in a single 16-bit and 32-bit item, respectively.
<i>TIFFSwabArrayOfShort</i> and <i>TIFFSwabArrayOfLong</i>
swap the bytes in an array of 16-bit and 32-bit items,
respectively.</p>
<!-- INDENTATION -->
<p><i>TIFFReverseBits</i> replaces each byte in <i>data</i>
with the equivalent bit-reversed value. This operation is
performed with a lookup table, which is returned using the
<i>TIFFGetBitRevTable</i> function. <i>reversed</i>
parameter specifies which table should be returned. Supply
<i>1</i> if you want bit reversal table. Supply <i>0</i> to
get the table that do not reverse bit values. It is a lookup
table that can be used as an <i>identity function</i>; i.e.
<i>TIFFNoBitRevTable[n] == n</i>.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>None.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�OU��html/man/TIFFtile.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:18 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFTILE</title>
</head>
<body>

<h1 align=center>TIFFTILE</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFTileSize, TIFFTileRowSize, TIFFVTileSize,
TIFFDefaultTileSize, TIFFComputeTile, TIFFCheckTile,
TIFFNumberOfTiles &minus; tile-related utility routines</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>void TIFFDefaultTileSize(TIFF *</b><i>tif</i><b>,
uint32 *</b><i>tw</i><b>, uint32 *</b><i>th</i><b>)<br>
tsize_t TIFFTileSize(TIFF *</b><i>tif</i><b>)<br>
tsize_t TIFFTileRowSize(TIFF *</b><i>tif</i><b>)<br>
tsize_t TIFFVTileSize(TIFF *</b><i>tif</i><b>, uint32</b>
<i>nrows</i><b>)<br>
ttile_t TIFFComputeTile(TIFF *</b><i>tif</i><b>, uint32</b>
<i>x</i><b>, uint32</b> <i>y</i><b>, uint32</b> <i>z</i><b>,
tsample_t</b> <i>sample</i><b>)<br>
int TIFFCheckTile(TIFF *</b><i>tif</i><b>, uint32</b>
<i>x</i><b>, uint32</b> <i>y</i><b>, uint32</b> <i>z</i><b>,
tsample_t</b> <i>sample</i><b>)<br>
ttile_t TIFFNumberOfTiles(TIFF *</b><i>tif</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFDefaultTileSize</i> returns the pixel width and
height of a reasonable-sized tile; suitable for setting up
the <i>TileWidth</i> and <i>TileLength</i> tags. If the
<i>tw</i> and <i>th</i> values passed in are non-zero, then
they are adjusted to reflect any compression-specific
requirements. The returned width and height are constrained
to be a multiple of 16 pixels to conform with the
<small>TIFF</small> specification.</p>
<!-- INDENTATION -->
<p><i>TIFFTileSize</i> returns the equivalent size for a
tile of data as it would be returned in a call to
<i>TIFFReadTile</i> or as it would be expected in a call to
<i>TIFFWriteTile</i>.</p>
<!-- INDENTATION -->
<p><i>TIFFVTileSize</i> returns the number of bytes in a
row-aligned tile with <i>nrows</i> of data.</p>
<!-- INDENTATION -->
<p><i>TIFFTileRowSize</i> returns the number of bytes of a
row of data in a tile.</p>
<!-- INDENTATION -->
<p><i>TIFFComputeTile</i> returns the tile that contains the
specified coordinates. A valid tile is always returned;
out-of-range coordinate values are clamped to the bounds of
the image. The <i>x</i> and <i>y</i> parameters are always
used in calculating a tile. The <i>z</i> parameter is used
if the image is deeper than 1 slice
(<i>ImageDepth</i>&gt;1). The <i>sample</i> parameter is
used only if data are organized in separate planes
(<i>PlanarConfiguration</i>=2).</p>
<!-- INDENTATION -->
<p><i>TIFFCheckTile</i> returns a non-zero value if the
supplied coordinates are within the bounds of the image and
zero otherwise. The <i>x</i> parameter is checked against
the value of the <i>ImageWidth</i> tag. The <i>y</i>
parameter is checked against the value of the
<i>ImageLength</i> tag. The <i>z</i> parameter is checked
against the value of the <i>ImageDepth</i> tag (if defined).
The <i>sample</i> parameter is checked against the value of
the <i>SamplesPerPixel</i> parameter if the data are
organized in separate planes.</p>
<!-- INDENTATION -->
<p><i>TIFFNumberOfTiles</i> returns the number of tiles in
the image.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>None.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFReadEncodedTile</b>(3TIFF),
<b>TIFFReadRawTile</b>(3TIFF), <b>TIFFReadTile</b>(3TIFF),
<b>TIFFWriteEncodedTile</b>(3TIFF),
<b>TIFFWriteRawTile</b>(3TIFF), <b>TIFFWriteTile</b>(3TIFF),
<b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\32,�==html/man/fax2ps.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:18 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>FAX2PS</title>
</head>
<body>

<h1 align=center>FAX2PS</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#BUGS">BUGS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>fax2ps &minus; convert a <small>TIFF</small> facsimile to
compressed PostScript&trade;</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>fax2ps</b> [ <i>options</i> ] [ <i>file ...</i> ]</p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>fax2ps</i> reads one or more <small>TIFF</small>
facsimile image files and prints a compressed form of
PostScript on the standard output that is suitable for
printing.</p>
<!-- INDENTATION -->
<p>By default, each page is scaled to reflect the image
dimensions and resolutions stored in the file. The
<b>&minus;x</b> and <b>&minus;y</b> options can be used to
specify the horizontal and vertical image resolutions
(lines/inch), respectively. If the <b>&minus;S</b> option is
specified, each page is scaled to fill an output page. The
default output page is 8.5 by 11 inches. Alternate page
dimensions can be specified in inches with the
<b>&minus;W</b> and <b>&minus;H</b> options.</p>
<!-- INDENTATION -->
<p>By default <i>fax2ps</i> generates PostScript for all
pages in the file. The <b>&minus;p</b> option can be used to
select one or more pages from a multi-page document.</p>
<!-- INDENTATION -->
<p><i>fax2ps</i> generates a compressed form of PostScript
that is optimized for sending pages of text to a PostScript
printer attached to a host through a low-speed link (such as
a serial line). Each output page is filled with white and
then only the black areas are drawn. The PostScript
specification of the black drawing operations is optimized
by using a special font that encodes the move-draw
operations required to fill the black regions on the page.
This compression scheme typically results in a substantially
reduced PostScript description, relative to the
straightforward imaging of the page with a PostScript
<i>image</i> operator. This algorithm can, however, be
ineffective for continuous-tone and white-on-black images.
For these images, it sometimes is more efficient to send the
raster bitmap image directly; see <b>tiff2ps</b>(1).</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="4" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="11%">

<p><b>&minus;p</b> <i>number</i></p>
</td>
<td width="76%">

<p>Print only the indicated page. Multiple pages may be
printed by specifying this option more than once.</p>
</td>
<td width="0%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;x</b> <i>resolution</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="23%"></td>
<td width="76%">
<p>Use <i>resolution</i> as the horizontal resolution, in
dots/inch, of the image data. By default this value is taken
from the file.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;y</b> <i>resolution</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="23%"></td>
<td width="76%">
<p>Use <i>resolution</i> as the vertical resolution, in
lines/inch, of the image data. By default this value is
taken from the file.</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="4" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="12%">

<p><b>&minus;S</b></p>
</td>
<td width="76%">

<p>Scale each page of image data to fill the output page
dimensions. By default images are presented according to the
dimension information recorded in the <small>TIFF</small>
file.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="12%">

<p><b>&minus;W</b> <i>width</i></p>
</td>
<td width="76%">

<p>Use <i>width</i> as the width, in inches, of the output
page.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="12%">

<p><b>&minus;H</b> <i>height</i></p>
</td>
<td width="76%">

<p>Use <i>height</i> as the height, in inches, of the
output page.</p>
</td>
<td width="0%">
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Some messages about malformed <small>TIFF</small> images
come from the <small>TIFF</small> library.</p>
<!-- INDENTATION -->
<p>Various messages about badly formatted facsimile images
may be generated due to transmission errors in received
facsimile. <i>fax2ps</i> attempts to recover from such data
errors by resynchronizing decoding at the end of the current
scanline. This can result in long horizontal black lines in
the resultant PostScript image.</p>
</td>
</table>
<a name="NOTES"></a>
<h2>NOTES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>If the destination printer supports PostScript Level II
then it is always faster to just send the encoded bitmap
generated by the <b>tiff2ps</b>(1) program.</p>
</td>
</table>
<a name="BUGS"></a>
<h2>BUGS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>fax2ps</i> should probably figure out when it is doing
a poor job of compressing the output and just generate
PostScript to image the bitmap raster instead.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiff2ps</b>(1), <b>libtiff</b>(3)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�6�y9y9html/man/fax2tiff.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:18 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>FAX2TIFF</title>
</head>
<body>

<h1 align=center>FAX2TIFF</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#BUGS">BUGS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>fax2tiff &minus; create a <small>TIFF</small> Class F fax
file from raw fax data</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>fax2tiff</b> [ <i>options</i> ] [ <b>&minus;o</b>
<i>output.tif</i> ] <i>input.raw</i></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>Fax2tiff</i> creates a <small>TIFF</small> file
containing <small>CCITT</small> Group 3 or Group 4 encoded
data from one or more files containing
&lsquo;&lsquo;raw&rsquo;&rsquo; Group 3 or Group 4 encoded
data (typically obtained directly from a fax modem). By
default, each row of data in the resultant
<small>TIFF</small> file is 1-dimensionally encoded and
padded or truncated to 1728 pixels, as needed. The resultant
image is a set of low resolution (98 lines/inch) or medium
resolution (196 lines/inch) pages, each of which is a single
strip of data. The generated file conforms to the
<small>TIFF</small> Class F ( <small>FAX</small> )
specification for storing facsimile data. This means, in
particular, that each page of the data does <b>not</b>
include the trailing <i>return to control</i> (
<small>RTC</small> ) code; as required for transmission by
the <small>CCITT</small> Group 3 specifications. The old,
&lsquo;&lsquo;classic&rsquo;&rsquo;, format is created if
the <b>&minus;c</b> option is used. (The Class F format can
also be requested with the <b>&minus;f</b> option.)</p>
<!-- INDENTATION -->
<p>The default name of the output image is <i>fax.tif</i>;
this can be changed with the <b>&minus;o</b> option. Each
input file is assumed to be a separate page of facsimile
data from the same document. The order in which input files
are specified on the command line is the order in which the
resultant pages appear in the output file.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Options that affect the interpretation of input data
are:</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;3</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Assume input data is <small>CCITT</small> Group 3
encoded (default).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;4</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Assume input data is <small>CCITT</small> Group 4
encoded.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;U</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Assume input data is uncompressed (Group 3 or Group
4).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;1</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Assume input data is encoded with the 1-dimensional
version of the <small>CCITT</small> Group 3 Huffman encoding
algorithm (default).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;2</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Assume input data is 2-dimensional version of the
<small>CCITT</small> Group 3 Huffman encoding algorithm.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;P</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Assume input data is <b>not</b> EOL-aligned (default).
This option has effect with Group 3 encoded input only.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;A</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Assume input data is EOL-aligned. This option has effect
with Group 3 encoded input only.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;M</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Treat input data as having bits filled from most
significant bit ( <small>MSB</small> ) to most least bit (
<small>LSB</small> ).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;L</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Treat input data as having bits filled from least
significant bit ( <small>LSB</small> ) to most significant
bit ( <small>MSB</small> ) (default).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;B</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Assume input data was encoded with black as 0 and white
as 1.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;W</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Assume input data was encoded with black as 1 and white
as 0 (default).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;R</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the vertical resolution, in lines/inch, of the
input images. By default input are assumed to have a
vertical resolution of 196 lines/inch. If images are low
resolution facsimile, a value of 98 lines/inch should be
specified.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;X</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the width, in pixels, of the input images. By
default input are assumed to have a width of 1728
pixels.</p>
</td>
<td width="0%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Options that affect the output file format are:</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;o</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the name of the output file.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;7</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force output to be compressed with the
<small>CCITT</small> Group 3 Huffman encoding algorithm
(default).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;8</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force output to be compressed with the
<small>CCITT</small> Group 4 Huffman encoding.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;u</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force output to be uncompressed (Group 3 or Group
4).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;5</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force output to be encoded with the 1-dimensional
version of the <small>CCITT</small> Group 3 Huffman encoding
algorithm.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;6</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force output to be encoded with the 2-dimensional
version of the <small>CCITT</small> Group 3 Huffman encoding
algorithm (default).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;a</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force the last bit of each <i>End Of Line</i> (
<small>EOL</small> ) code to land on a byte boundary
(default). This &lsquo;&lsquo;zero padding&rsquo;&rsquo;
will be reflected in the contents of the
<i>Group3Options</i> tag of the resultant
<small>TIFF</small> file. This option has effect with Group
3 encoded output only.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;p</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Do not EOL-align output. This option has effect with
Group 3 encoded output only.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;c</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Generate &quot;classic&quot; Group 3 TIFF format.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;f</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Generate TIFF Class F (TIFF/F) format (default).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;m</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force output data to have bits filled from most
significant bit ( <small>MSB</small> ) to most least bit (
<small>LSB</small> ).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;l</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force output data to have bits filled from least
significant bit ( <small>LSB</small> ) to most significant
bit ( <small>MSB</small> ) (default).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;r</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the number of rows (scanlines) in each strip of
data written to the output file. By default (or when value
<b>0</b> is specified), <i>tiffcp</i> attempts to set the
rows/strip that no more than 8 kilobytes of data appear in a
strip (with except of G3/G4 compression schemes). If you
specify special value <b>&minus;1</b> it will results in
infinite number of the rows per strip. The entire image will
be the one strip in that case. This is default in case of
G3/G4 output compression schemes.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;s</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Stretch the input image vertically by writing each input
row of data twice to the output file.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;v</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force <i>fax2tiff</i> to print the number of rows of
data it retrieved from the input file.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;z</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force output to be compressed with the LZW encoding.</p>
</td>
<td width="0%">
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The following warnings and errors come from the decoding
routines in the library.</p>
<!-- INDENTATION -->
<p><b>Warning, %s: Premature EOL at scanline %d (x
%d).\n</b>. The input data had a row that was shorter than
the expected width. The row is padded with white.</p>
<!-- INDENTATION -->
<p><b>%s: Premature EOF at scanline %d (x %d).\n</b>. The
decoder ran out of data in the middle of a scanline. The
resultant row is padded with white.</p>
<!-- INDENTATION -->
<p><b>%s: Bad code word at row %d, x %d\n</b>. An invalid
Group 3 <i>code</i> was encountered while decoding the input
file. The row number and horizontal position is given. The
remainder of the input row is discarded, while the
corresponding output row is padded with white.</p>
<!-- INDENTATION -->
<p><b>%s: Bad 2D code word at scanline %d.\n</b>. An invalid
Group 4 or 2D Group 3 <i>code</i> was encountered while
decoding the input file. The row number and horizontal
position is given. The remainder of the input row is
discarded, while the corresponding output row is padded with
white.</p>
</td>
</table>
<a name="BUGS"></a>
<h2>BUGS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Input data are assumed to have a a &lsquo;&lsquo;top
left&rsquo;&rsquo; orientation; it should be possible to
override this assumption from the command line.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b><small>CCITT</small> Recommendation T.4</b>
(Standardization of Group 3 Facsimile Apparatus for Document
Transmission).</p>
<!-- INDENTATION -->
<p><b>The Spirit of TIFF Class F</b>, an appendix to the
TIFF 5.0 specification prepared by Cygnet Technologies.</p>
<!-- INDENTATION -->
<p><b>tiffinfo</b>(1), <b>tiffdither</b>(1),
<b>tiffgt</b>(1), <b>libtiff</b>(3)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\`l!Y��html/man/index.htmlnu�[���<HTML><HEAD><TITLE>Libtiff HTML manpage index</TITLE></HEAD><BODY BGCOLOR=white><ul><H2>Man Pages</h2><p>
<li><A HREF=TIFFbuffer.3tiff.html>TIFFbuffer.3tiff.html</a>
<li><A HREF=TIFFClose.3tiff.html>TIFFClose.3tiff.html</a>
<li><A HREF=TIFFcodec.3tiff.html>TIFFcodec.3tiff.html</a>
<li><A HREF=TIFFcolor.3tiff.html>TIFFcolor.3tiff.html</a>
<li><A HREF=TIFFDataWidth.3tiff.html>TIFFDataWidth.3tiff.html</a>
<li><A HREF=TIFFError.3tiff.html>TIFFError.3tiff.html</a>
<li><A HREF=TIFFFlush.3tiff.html>TIFFFlush.3tiff.html</a>
<li><A HREF=TIFFGetField.3tiff.html>TIFFGetField.3tiff.html</a>
<li><A HREF=TIFFmemory.3tiff.html>TIFFmemory.3tiff.html</a>
<li><A HREF=TIFFOpen.3tiff.html>TIFFOpen.3tiff.html</a>
<li><A HREF=TIFFPrintDirectory.3tiff.html>TIFFPrintDirectory.3tiff.html</a>
<li><A HREF=TIFFquery.3tiff.html>TIFFquery.3tiff.html</a>
<li><A HREF=TIFFReadDirectory.3tiff.html>TIFFReadDirectory.3tiff.html</a>
<li><A HREF=TIFFReadEncodedStrip.3tiff.html>TIFFReadEncodedStrip.3tiff.html</a>
<li><A HREF=TIFFReadEncodedTile.3tiff.html>TIFFReadEncodedTile.3tiff.html</a>
<li><A HREF=TIFFReadRawStrip.3tiff.html>TIFFReadRawStrip.3tiff.html</a>
<li><A HREF=TIFFReadRawTile.3tiff.html>TIFFReadRawTile.3tiff.html</a>
<li><A HREF=TIFFReadRGBAImage.3tiff.html>TIFFReadRGBAImage.3tiff.html</a>
<li><A HREF=TIFFReadRGBAStrip.3tiff.html>TIFFReadRGBAStrip.3tiff.html</a>
<li><A HREF=TIFFReadRGBATile.3tiff.html>TIFFReadRGBATile.3tiff.html</a>
<li><A HREF=TIFFReadScanline.3tiff.html>TIFFReadScanline.3tiff.html</a>
<li><A HREF=TIFFReadTile.3tiff.html>TIFFReadTile.3tiff.html</a>
<li><A HREF=TIFFRGBAImage.3tiff.html>TIFFRGBAImage.3tiff.html</a>
<li><A HREF=TIFFSetDirectory.3tiff.html>TIFFSetDirectory.3tiff.html</a>
<li><A HREF=TIFFSetField.3tiff.html>TIFFSetField.3tiff.html</a>
<li><A HREF=TIFFsize.3tiff.html>TIFFsize.3tiff.html</a>
<li><A HREF=TIFFstrip.3tiff.html>TIFFstrip.3tiff.html</a>
<li><A HREF=TIFFswab.3tiff.html>TIFFswab.3tiff.html</a>
<li><A HREF=TIFFtile.3tiff.html>TIFFtile.3tiff.html</a>
<li><A HREF=TIFFWarning.3tiff.html>TIFFWarning.3tiff.html</a>
<li><A HREF=TIFFWriteDirectory.3tiff.html>TIFFWriteDirectory.3tiff.html</a>
<li><A HREF=TIFFWriteEncodedStrip.3tiff.html>TIFFWriteEncodedStrip.3tiff.html</a>
<li><A HREF=TIFFWriteEncodedTile.3tiff.html>TIFFWriteEncodedTile.3tiff.html</a>
<li><A HREF=TIFFWriteRawStrip.3tiff.html>TIFFWriteRawStrip.3tiff.html</a>
<li><A HREF=TIFFWriteRawTile.3tiff.html>TIFFWriteRawTile.3tiff.html</a>
<li><A HREF=TIFFWriteScanline.3tiff.html>TIFFWriteScanline.3tiff.html</a>
<li><A HREF=TIFFWriteTile.3tiff.html>TIFFWriteTile.3tiff.html</a>
<li><A HREF=fax2ps.1.html>fax2ps.1.html</a>
<li><A HREF=fax2tiff.1.html>fax2tiff.1.html</a>
<!-- <li><A HREF=gif2tiff.1.html>gif2tiff.1.html</a> -->
<li><A HREF=pal2rgb.1.html>pal2rgb.1.html</a>
<li><A HREF=ppm2tiff.1.html>ppm2tiff.1.html</a>
<!-- <li><A HREF=ras2tiff.1.html>ras2tiff.1.html</a> -->
<li><A HREF=raw2tiff.1.html>raw2tiff.1.html</a>
<li><A HREF=rgb2ycbcr.1.html>rgb2ycbcr.1.html</a>
<!-- <li><A HREF=sgi2tiff.1.html>sgi2tiff.1.html</a> -->
<li><A HREF=thumbnail.1.html>thumbnail.1.html</a>
<li><A HREF=tiff2bw.1.html>tiff2bw.1.html</a>
<li><A HREF=tiff2pdf.1.html>tiff2pdf.1.html</a>
<li><A HREF=tiff2ps.1.html>tiff2ps.1.html</a>
<li><A HREF=tiff2rgba.1.html>tiff2rgba.1.html</a>
<li><A HREF=tiffcmp.1.html>tiffcmp.1.html</a>
<li><A HREF=tiffcp.1.html>tiffcp.1.html</a>
<li><A HREF=tiffcrop.1.html>tiffcrop.1.html</a>
<li><A HREF=tiffdither.1.html>tiffdither.1.html</a>
<li><A HREF=tiffdump.1.html>tiffdump.1.html</a>
<li><A HREF=tiffgt.1.html>tiffgt.1.html</a>
<li><A HREF=tiffinfo.1.html>tiffinfo.1.html</a>
<li><A HREF=tiffmedian.1.html>tiffmedian.1.html</a>
<li><A HREF=tiffset.1.html>tiffset.1.html</a>
<li><A HREF=tiffsplit.1.html>tiffsplit.1.html</a>
<!-- <li><A HREF=tiffsv.1.html>tiffsv.1.html</a> -->
</ul></BODY></HTML>
PK粐\Ra7"``html/man/libtiff.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:20 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>INTRO</title>
</head>
<body>

<h1 align=center>INTRO</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#DATA TYPES">DATA TYPES</a><br>
<a href="#LIST OF ROUTINES">LIST OF ROUTINES</a><br>
<a href="#TAG USAGE">TAG USAGE</a><br>
<a href="#PSEUDO TAGS">PSEUDO TAGS</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>
<a href="#BUGS">BUGS</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>libtiff &minus; introduction to <i>libtiff</i>, a
library for reading and writing</big> TIFF
<big>files</big></p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big><b>#include &lt;tiffio.h&gt;</b></big></p>
<!-- INDENTATION -->
<p><big>cc file.c <b>-ltiff</b></big></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big><i>libtiff</i> is a library for reading and writing
data files encoded with the <i>Tag Image File</i> format,
Revision 6.0 (or revision 5.0 or revision 4.0). This file
format is suitable for archiving multi-color and
monochromatic image data.</big></p>
<!-- INDENTATION -->
<p><big>The library supports several compression algorithms,
as indicated by the <i>Compression</i> field, including: no
compression (1),</big> CCITT <big>1D Huffman compression
(2),</big> CCITT <big>Group 3 Facsimile compression
(3),</big> CCITT <big>Group 4 Facsimile compression (4),
Lempel-Ziv &amp; Welch compression (5), baseline JPEG
compression (7), word-aligned 1D Huffman compression
(32771), and PackBits compression (32773). In addition,
several nonstandard compression algorithms are supported:
the 4-bit compression algorithm used by the
<i>ThunderScan</i> program (32809) (decompression only),
NeXT&rsquo;s 2-bit compression algorithm (32766)
(decompression only), an experimental LZ-style algorithm
known as Deflate (32946), and an experimental CIE LogLuv
compression scheme designed for images with high dynamic
range (32845 for LogL and 32845 for LogLuv). Directory
information may be in either little- or big-endian byte
order&minus;byte swapping is automatically done by the
library. Data bit ordering may be either Most Significant
Bit (</big> MSB <big>) to Least Significant Bit (</big> LSB
<big>) or</big> LSB <big>to</big> MSB. <big>Finally, the
library does not support files in which the
<i>BitsPerSample</i>, <i>Compression</i>,
<i>MinSampleValue</i>, or <i>MaxSampleValue</i> fields are
defined differently on a per-sample basis (in Rev. 6.0 the
<i>Compression</i> tag is not defined on a per-sample basis,
so this is immaterial).</big></p>
</td>
</table>
<a name="DATA TYPES"></a>
<h2>DATA TYPES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>The library makes extensive use of C typedefs to
promote portability. Two sets of typedefs are used, one for
communication with clients of the library and one for
internal data structures and parsing of the</big> TIFF
<big>format. The following typedefs are exposed to users
either through function definitions or through parameters
passed through the varargs interfaces.</big></p></td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="3" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="15%"></td>
<td width="46%">

<p><big>typedef unsigned short uint16;</big></p>
</td>
<td width="38%">

<p><big>16-bit unsigned integer</big></p>
</td>
<tr valign="top" align="left">
<td width="15%"></td>
<td width="46%">

<p><big>typedef unsigned &lt;<i>thing</i>&gt;
uint32;</big></p>
</td>
<td width="38%">

<p><big>32-bit unsigned integer</big></p>
</td>
<tr valign="top" align="left">
<td width="15%"></td>
<td width="46%">

<p><big>typedef unsigned int ttag_t;</big></p>
</td>
<td width="38%">

<p><big>directory tag</big></p>
</td>
<tr valign="top" align="left">
<td width="15%"></td>
<td width="46%">

<p><big>typedef uint16 tdir_t;</big></p>
</td>
<td width="38%">

<p><big>directory index</big></p>
</td>
<tr valign="top" align="left">
<td width="15%"></td>
<td width="46%">

<p><big>typedef uint16 tsample_t;</big></p>
</td>
<td width="38%">

<p><big>sample number</big></p>
</td>
<tr valign="top" align="left">
<td width="15%"></td>
<td width="46%">

<p><big>typedef uint32 tstrip_t;</big></p>
</td>
<td width="38%">

<p><big>strip number</big></p>
</td>
<tr valign="top" align="left">
<td width="15%"></td>
<td width="46%">

<p><big>typedef uint32 ttile_t;</big></p>
</td>
<td width="38%">

<p><big>tile number</big></p>
</td>
<tr valign="top" align="left">
<td width="15%"></td>
<td width="46%">

<p><big>typedef int32 tsize_t;</big></p>
</td>
<td width="38%">

<p><big>i/o size in bytes</big></p>
</td>
<tr valign="top" align="left">
<td width="15%"></td>
<td width="46%">

<p><big>typedef void* tdata_t;</big></p>
</td>
<td width="38%">

<p><big>image data ref</big></p>
</td>
<tr valign="top" align="left">
<td width="15%"></td>
<td width="46%">

<p><big>typedef void* thandle_t;</big></p>
</td>
<td width="38%">

<p><big>client data handle</big></p>
</td>
<tr valign="top" align="left">
<td width="15%"></td>
<td width="46%">

<p><big>typedef int32 toff_t;</big></p>
</td>
<td width="38%">

<p><big>file offset</big></p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>Note that <i>tstrip_t</i>, <i>ttile_t</i>, and
<i>tsize_t</i> are constrained to be no more than 32-bit
quantities by 32-bit fields they are stored in in the</big>
TIFF <big>image. Likewise <i>tsample_t</i> is limited by the
16-bit field used to store the <i>SamplesPerPixel</i> tag.
<i>tdir_t</i> constrains the maximum number of</big> IFDs
<big>that may appear in an image and may be an arbitrary
size (w/o penalty). <i>ttag_t</i> must be either int,
unsigned int, pointer, or double because the library uses a
varargs interface and</big> ANSI C <big>restricts the type
of the parameter before an ellipsis to be a promoted type.
<i>toff_t</i> is defined as int32 because TIFF file offsets
are (unsigned) 32-bit quantities. A signed value is used
because some interfaces return &minus;1 on error. Finally,
note that user-specified data references are passed as
opaque handles and only cast at the lowest layers where
their type is presumed.</big></p>
</td>
</table>
<a name="LIST OF ROUTINES"></a>
<h2>LIST OF ROUTINES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>The following routines are part of the library.
Consult specific manual pages for details on their
operation; on most systems doing &lsquo;&lsquo;man
function-name&rsquo;&rsquo; will work.</big></p></td>
</table>
<!-- TABS -->

<p><big><i>Name Description</i></big></p>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="3" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFCheckpointDirectory</big></p>
</td>
<td width="67%">

<p><big>writes the current state of the directory</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFCheckTile</big></p>
</td>
<td width="67%">

<p><big>very x,y,z,sample is within image</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFCIELabToRGBInit</big></p>
</td>
<td width="67%">

<p><big>initialize CIE L*a*b* 1976 to RGB conversion
state</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFCIELabToXYZ</big></p>
</td>
<td width="67%">

<p><big>perform CIE L*a*b* 1976 to CIE XYZ
conversion</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFClientOpen</big></p>
</td>
<td width="67%">

<p><big>open a file for reading or writing</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFClose</big></p>
</td>
<td width="67%">

<p><big>close an open file</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFComputeStrip</big></p>
</td>
<td width="67%">

<p><big>return strip containing y,sample</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFComputeTile</big></p>
</td>
<td width="67%">

<p><big>return tile containing x,y,z,sample</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFCurrentDirectory</big></p>
</td>
<td width="67%">

<p><big>return index of current directory</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFCurrentRow</big></p>
</td>
<td width="67%">

<p><big>return index of current scanline</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFCurrentStrip</big></p>
</td>
<td width="67%">

<p><big>return index of current strip</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFCurrentTile</big></p>
</td>
<td width="67%">

<p><big>return index of current tile</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFDataWidth</big></p>
</td>
<td width="67%">

<p><big>return the size of TIFF data types</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFError</big></p>
</td>
<td width="67%">

<p><big>library error handler</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFFdOpen</big></p>
</td>
<td width="67%">

<p><big>open a file for reading or writing</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFFileName</big></p>
</td>
<td width="67%">

<p><big>return name of open file</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFFileno</big></p>
</td>
<td width="67%">

<p><big>return open file descriptor</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFFindCODEC</big></p>
</td>
<td width="67%">

<p><big>find standard codec for the specific
scheme</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFFlush</big></p>
</td>
<td width="67%">

<p><big>flush all pending writes</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFFlushData</big></p>
</td>
<td width="67%">

<p><big>flush pending data writes</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFGetBitRevTable</big></p>
</td>
<td width="67%">

<p><big>return bit reversal table</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFGetField</big></p>
</td>
<td width="67%">

<p><big>return tag value in current directory</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFGetFieldDefaulted</big></p>
</td>
<td width="67%">

<p><big>return tag value in current directory</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFGetMode</big></p>
</td>
<td width="67%">

<p><big>return open file mode</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFGetVersion</big></p>
</td>
<td width="67%">

<p><big>return library version string</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFIsCODECConfigured</big></p>
</td>
<td width="67%">

<p><big>check, whether we have working codec</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFIsMSB2LSB</big></p>
</td>
<td width="67%">

<p><big>return true if image data is being
returned</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%"></td>
<td width="67%">

<p><big>with bit 0 as the most significant bit</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFIsTiled</big></p>
</td>
<td width="67%">

<p><big>return true if image data is tiled</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFIsByteSwapped</big></p>
</td>
<td width="67%">

<p><big>return true if image data is byte-swapped</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFNumberOfStrips</big></p>
</td>
<td width="67%">

<p><big>return number of strips in an image</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFNumberOfTiles</big></p>
</td>
<td width="67%">

<p><big>return number of tiles in an image</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFOpen</big></p>
</td>
<td width="67%">

<p><big>open a file for reading or writing</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFPrintDirectory</big></p>
</td>
<td width="67%">

<p><big>print description of the current
directory</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFReadBufferSetup</big></p>
</td>
<td width="67%">

<p><big>specify i/o buffer for reading</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFReadDirectory</big></p>
</td>
<td width="67%">

<p><big>read the next directory</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFReadEncodedStrip</big></p>
</td>
<td width="67%">

<p><big>read and decode a strip of data</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFReadEncodedTile</big></p>
</td>
<td width="67%">

<p><big>read and decode a tile of data</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFReadRawStrip</big></p>
</td>
<td width="67%">

<p><big>read a raw strip of data</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFReadRawTile</big></p>
</td>
<td width="67%">

<p><big>read a raw tile of data</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFReadRGBAImage</big></p>
</td>
<td width="67%">

<p><big>read an image into a fixed format raster</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFReadScanline</big></p>
</td>
<td width="67%">

<p><big>read and decode a row of data</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFReadTile</big></p>
</td>
<td width="67%">

<p><big>read and decode a tile of data</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFRegisterCODEC</big></p>
</td>
<td width="67%">

<p><big>override standard codec for the specific
scheme</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFReverseBits</big></p>
</td>
<td width="67%">

<p><big>reverse bits in an array of bytes</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFRGBAImageBegin</big></p>
</td>
<td width="67%">

<p><big>setup decoder state for TIFFRGBAImageGet</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFRGBAImageEnd</big></p>
</td>
<td width="67%">

<p><big>release TIFFRGBAImage decoder state</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFRGBAImageGet</big></p>
</td>
<td width="67%">

<p><big>read and decode an image</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFRGBAImageOK</big></p>
</td>
<td width="67%">

<p><big>is image readable by TIFFRGBAImageGet</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFScanlineSize</big></p>
</td>
<td width="67%">

<p><big>return size of a scanline</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFSetDirectory</big></p>
</td>
<td width="67%">

<p><big>set the current directory</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFSetSubDirectory</big></p>
</td>
<td width="67%">

<p><big>set the current directory</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFSetErrorHandler</big></p>
</td>
<td width="67%">

<p><big>set error handler function</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFSetField</big></p>
</td>
<td width="67%">

<p><big>set a tag&rsquo;s value in the current
directory</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFSetWarningHandler</big></p>
</td>
<td width="67%">

<p><big>set warning handler function</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFStripSize</big></p>
</td>
<td width="67%">

<p><big>returns size of a strip</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFRawStripSize</big></p>
</td>
<td width="67%">

<p><big>returns the number of bytes in a raw
strip</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFSwabShort</big></p>
</td>
<td width="67%">

<p><big>swap bytes of short</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFSwabLong</big></p>
</td>
<td width="67%">

<p><big>swap bytes of long</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFSwabArrayOfShort</big></p>
</td>
<td width="67%">

<p><big>swap bytes of an array of shorts</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFSwabArrayOfLong</big></p>
</td>
<td width="67%">

<p><big>swap bytes of an array of longs</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFTileRowSize</big></p>
</td>
<td width="67%">

<p><big>return size of a row in a tile</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFTileSize</big></p>
</td>
<td width="67%">

<p><big>return size of a tile</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFUnRegisterCODEC</big></p>
</td>
<td width="67%">

<p><big>unregisters the codec</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFVGetField</big></p>
</td>
<td width="67%">

<p><big>return tag value in current directory</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFVGetFieldDefaulted</big></p>
</td>
<td width="67%">

<p><big>return tag value in current directory</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFVSetField</big></p>
</td>
<td width="67%">

<p><big>set a tag&rsquo;s value in the current
directory</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFVStripSize</big></p>
</td>
<td width="67%">

<p><big>returns the number of bytes in a strip</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFWarning</big></p>
</td>
<td width="67%">

<p><big>library warning handler</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFWriteDirectory</big></p>
</td>
<td width="67%">

<p><big>write the current directory</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFWriteEncodedStrip</big></p>
</td>
<td width="67%">

<p><big>compress and write a strip of data</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFWriteEncodedTile</big></p>
</td>
<td width="67%">

<p><big>compress and write a tile of data</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFWriteRawStrip</big></p>
</td>
<td width="67%">

<p><big>write a raw strip of data</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFWriteRawTile</big></p>
</td>
<td width="67%">

<p><big>write a raw tile of data</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFWriteScanline</big></p>
</td>
<td width="67%">

<p><big>write a scanline of data</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFWriteTile</big></p>
</td>
<td width="67%">

<p><big>compress and write a tile of data</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFXYZToRGB</big></p>
</td>
<td width="67%">

<p><big>perform CIE XYZ to RGB conversion</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFYCbCrToRGBInit</big></p>
</td>
<td width="67%">

<p><big>initialize YCbCr to RGB conversion state</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>TIFFYCbCrtoRGB</big></p>
</td>
<td width="67%">

<p><big>perform YCbCr to RGB conversion</big></p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>Auxiliary functions:</big></p></td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="3" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>_TIFFfree</big></p>
</td>
<td width="67%">

<p><big>free memory buffer</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>_TIFFmalloc</big></p>
</td>
<td width="67%">

<p><big>dynamically allocate memory buffer</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>_TIFFmemcmp</big></p>
</td>
<td width="67%">

<p><big>compare contents of the memory buffers</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>_TIFFmemcpy</big></p>
</td>
<td width="67%">

<p><big>copy contents of the one buffer to
another</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>_TIFFmemset</big></p>
</td>
<td width="67%">

<p><big>fill memory buffer with a constant byte</big></p>
</td>
<tr valign="top" align="left">
<td width="8%"></td>
<td width="23%">

<p><big>_TIFFrealloc</big></p>
</td>
<td width="67%">

<p><big>dynamically reallocate memory buffer</big></p>
</td>
</table>
<a name="TAG USAGE"></a>
<h2>TAG USAGE</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><big>The table below lists the</big> TIFF <big>tags that
are recognized and handled by the library. If no use is
indicated in the table, then the library reads and writes
the tag, but does not use it internally. Note that some tags
are meaningful only when a particulPK粐\���||html/man/pal2rgb.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:19 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>PAL2RGB</title>
</head>
<body>

<h1 align=center>PAL2RGB</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#BUGS">BUGS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>pal2rgb &minus; convert a palette color
<small>TIFF</small> image to a full color image</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>pal2rgb</b> [ <i>options</i> ] <i>input.tif
output.tif</i></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>Pal2rgb</i> converts a palette color
<small>TIFF</small> image to a full color image by applying
the colormap of the palette image to each sample to generate
a full color <small>RGB</small> image.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Options that affect the interpretation of input data
are:</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="2%">

<p><b>&minus;C</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>This option overrides the default behavior of
<i>pal2rgb</i> in determining whether or not colormap
entries contain 16-bit or 8-bit values. By default the
colormap is inspected and if no colormap entry greater than
255 is found, the colormap is assumed to have only 8-bit
values; otherwise 16-bit values (as required by the
<small>TIFF</small> specification) are assumed. The
<b>&minus;C</b> option can be used to explicitly specify the
number of bits for colormap entries: <b>&minus;C 8</b> for
8-bit values, <b>&minus;C 16</b> for 16-bit values.</p>
</td>
<td width="0%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Options that affect the output file format are:</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="5%">

<p><b>&minus;p</b></p>
</td>
<td width="3%"></td>
<td width="80%">

<p>Explicitly select the planar configuration used in
organizing data samples in the output image: <b>&minus;p
contig</b> for samples packed contiguously, and <b>&minus;p
separate</b> for samples stored separately. By default
samples are packed.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="5%">

<p><b>&minus;c</b></p>
</td>
<td width="3%"></td>
<td width="80%">

<p>Use the specific compression algorithm to encoded image
data in the output file: <b>&minus;c packbits</b> for
Macintosh Packbits, <b>&minus;c lzw</b> for Lempel-Ziv &amp;
Welch, <b>&minus;c zip</b> for Deflate, <b>&minus;c none</b>
for no compression. If no compression-related option is
specified, the input file&rsquo;s compression algorithm is
used.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="5%">

<p><b>&minus;r</b></p>
</td>
<td width="3%"></td>
<td width="80%">

<p>Explicitly specify the number of rows in each strip of
the output file. If the <b>&minus;r</b> option is not
specified, a number is selected such that each output strip
has approximately 8 kilobytes of data in it.</p>
</td>
<td width="0%">
</td>
</table>
<a name="BUGS"></a>
<h2>BUGS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Only 8-bit images are handled.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiffinfo</b>(1), <b>tiffcp</b>(1),
<b>tiffmedian</b>(1), <b>libtiff</b>(3)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�c��html/man/ppm2tiff.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:19 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>PPM2TIFF</title>
</head>
<body>

<h1 align=center>PPM2TIFF</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>ppm2tiff &minus; create a <small>TIFF</small> file from
<small>PPM, PGM</small> and <small>PBM</small> image
files</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>ppm2tiff</b> [ <i>options</i> ] [ <i>input.ppm</i> ]
<i>output.tif</i></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>ppm2tiff</i> converts a file in the <small>PPM,
PGM</small> and <small>PBM</small> image formats to
<small>TIFF.</small> By default, the <small>TIFF</small>
image is created with data samples packed
(<i>PlanarConfiguration</i>=1), compressed with the Packbits
algorithm (<i>Compression</i>=32773), and with each strip no
more than 8 kilobytes. These characteristics can be
overridden, or explicitly specified with the options
described below</p>
<!-- INDENTATION -->
<p>If the <small>PPM</small> file contains greyscale data,
then the <i>PhotometricInterpretation</i> tag is set to 1
(min-is-black), otherwise it is set to 2 (RGB).</p>
<!-- INDENTATION -->
<p>If no <small>PPM</small> file is specified on the command
line, <i>ppm2tiff</i> will read from the standard input.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;c</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify a compression scheme to use when writing image
data: <b>none</b> for no compression, <b>packbits</b> for
PackBits compression (will be used by default), <b>lzw</b>
for Lempel-Ziv &amp; Welch compression, <b>jpeg</b> for
baseline JPEG compression, <b>zip</b> for Deflate
compression, <b>g3</b> for CCITT Group 3 (T.4) compression,
and <b>g4</b> for CCITT Group 4 (T.6) compression.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;r</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Write data with a specified number of rows per strip; by
default the number of rows/strip is selected so that each
strip is approximately 8 kilobytes.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;R</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Mark the resultant image to have the specified X and Y
resolution (in dots/inch).</p>
</td>
<td width="0%">
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiffinfo</b>(1), <b>tiffcp</b>(1),
<b>tiffmedian</b>(1), <b>libtiff</b>(3)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\P95�1�1html/man/raw2tiff.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:19 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>RAW2TIFF</title>
</head>
<body>

<h1 align=center>RAW2TIFF</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#GUESSING THE IMAGE GEOMETRY">GUESSING THE IMAGE GEOMETRY</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>raw2tiff &minus; create a <small>TIFF</small> file from a
raw data</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>raw2tiff</b> [ <i>options</i> ] <i>input.raw
output.tif</i></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>raw2tiff</i> converts a raw byte sequence into
<small>TIFF.</small> By default, the <small>TIFF</small>
image is created with data samples packed
(<i>PlanarConfiguration</i>=1), compressed with the PackBits
algorithm (<i>Compression</i>=32773), and with each strip no
more than 8 kilobytes. These characteristics can overridden,
or explicitly specified with the options described
below.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;H</b> <i>number</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>size of input image file header in bytes (0 by default).
This amount of data just will be skipped from the start of
file while reading.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;w</b> <i>number</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>width of input image in pixels (can be guessed, see
<b><small>GUESSING THE IMAGE GEOMETRY</small></b>
below).</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;l</b> <i>number</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>length of input image in lines (can be guessed, see
<b><small>GUESSING THE IMAGE GEOMETRY</small></b>
below).</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;b</b> <i>number</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>number of bands in input image (1 by default).</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;d</b> <i>data_type</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>type of samples in input image, where <i>data_type</i>
may be:</p></td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="3" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="10%">

<p><b>byte</b></p>
</td>
<td width="70%">

<p>8-bit unsigned integer (default),</p>
</td>
<tr valign="top" align="left">
<td width="19%"></td>
<td width="10%">

<p><b>short</b></p>
</td>
<td width="70%">

<p>16-bit unsigned integer,</p>
</td>
<tr valign="top" align="left">
<td width="19%"></td>
<td width="10%">

<p><b>long</b></p>
</td>
<td width="70%">

<p>32-bit unsigned integer,</p>
</td>
<tr valign="top" align="left">
<td width="19%"></td>
<td width="10%">

<p><b>sbyte</b></p>
</td>
<td width="70%">

<p>8-bit signed integer,</p>
</td>
<tr valign="top" align="left">
<td width="19%"></td>
<td width="10%">

<p><b>sshort</b></p>
</td>
<td width="70%">

<p>16-bit signed integer,</p>
</td>
<tr valign="top" align="left">
<td width="19%"></td>
<td width="10%">

<p><b>slong</b></p>
</td>
<td width="70%">

<p>32-bit signed integer,</p>
</td>
<tr valign="top" align="left">
<td width="19%"></td>
<td width="10%">

<p><b>float</b></p>
</td>
<td width="70%">

<p>32-bit IEEE floating point,</p>
</td>
<tr valign="top" align="left">
<td width="19%"></td>
<td width="10%">

<p><b>double</b></p>
</td>
<td width="70%">

<p>64-bit IEEE floating point.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;i</b> <i>config</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>type of samples interleaving in input image, where
<i>config</i> may be:</p></td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="3" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="8%">

<p><b>pixel</b></p>
</td>
<td width="71%">

<p>pixel interleaved data (default),</p>
</td>
<tr valign="top" align="left">
<td width="19%"></td>
<td width="8%">

<p><b>band</b></p>
</td>
<td width="71%">

<p>band interleaved data.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;p</b> <i>photo</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>photometric interpretation (color space) of the input
image, where <i>photo</i> may be:</p></td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="3" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="15%">

<p><b>miniswhite</b></p>
</td>
<td width="65%">

<p>white color represented with 0 value,</p>
</td>
<tr valign="top" align="left">
<td width="19%"></td>
<td width="15%">

<p><b>minisblack</b></p>
</td>
<td width="65%">

<p>black color represented with 0 value (default),</p>
</td>
<tr valign="top" align="left">
<td width="19%"></td>
<td width="15%">

<p><b>rgb</b></p>
</td>
<td width="65%">

<p>image has RGB color model,</p>
</td>
<tr valign="top" align="left">
<td width="19%"></td>
<td width="15%">

<p><b>cmyk</b></p>
</td>
<td width="65%">

<p>image has CMYK (separated) color model,</p>
</td>
<tr valign="top" align="left">
<td width="19%"></td>
<td width="15%">

<p><b>ycbcr</b></p>
</td>
<td width="65%">

<p>image has YCbCr color model,</p>
</td>
<tr valign="top" align="left">
<td width="19%"></td>
<td width="15%">

<p><b>cielab</b></p>
</td>
<td width="65%">

<p>image has CIE L*a*b color model,</p>
</td>
<tr valign="top" align="left">
<td width="19%"></td>
<td width="15%">

<p><b>icclab</b></p>
</td>
<td width="65%">

<p>image has ICC L*a*b color model,</p>
</td>
<tr valign="top" align="left">
<td width="19%"></td>
<td width="15%">

<p><b>itulab</b></p>
</td>
<td width="65%">

<p>image has ITU L*a*b color model.</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;s</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>swap bytes fetched from the input file.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;L</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>input data has LSB2MSB bit order (default).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;M</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>input data has MSB2LSB bit order.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;c</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify a compression scheme to use when writing image
data: <b>&minus;c none</b> for no compression, <b>&minus;c
packbits</b> for the PackBits compression algorithm (the
default), <b>&minus;c jpeg</b> for the baseline JPEG
compression algorithm, <b>&minus;c zip</b> for the Deflate
compression algorithm, and <b>&minus;c lzw</b> for
Lempel-Ziv &amp; Welch.</p>
</td>
<td width="0%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;r</b> <i>number</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>Write data with a specified number of rows per strip; by
default the number of rows/strip is selected so that each
strip is approximately 8 kilobytes.</p>
</td>
</table>
<a name="GUESSING THE IMAGE GEOMETRY"></a>
<h2>GUESSING THE IMAGE GEOMETRY</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>raw2tiff</i> can guess image width and height in case
one or both of these parameters are not specified. If you
omit one of those parameters, the complementary one will be
calculated based on the file size (taking into account
header size, number of bands and data type). If you omit
both parameters, the statistical approach will be used.
Utility will compute correlation coefficient between two
lines at the image center using several appropriate line
sizes and the highest absolute value of the coefficient will
indicate the right line size. That is why you should be
cautious with the very large images, because guessing
process may take a while (depending on your system
performance). Of course, the utility can&rsquo;t guess the
header size, number of bands and data type, so it should be
specified manually. If you don&rsquo;t know anything about
your image, just try with the several combinations of those
options.</p>
<!-- INDENTATION -->
<p>There is no magic, it is just a mathematical statistics,
so it can be wrong in some cases. But for most ordinary
images guessing method will work fine.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>pal2rgb</b>(1), <b>tiffcp</b>(1),
<b>tiffmedian</b>(1), <b>libtiff</b>(3)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\��R��html/man/tiff2bw.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:19 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFF2BW</title>
</head>
<body>

<h1 align=center>TIFF2BW</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>tiff2bw &minus; convert a color <small>TIFF</small> image
to greyscale</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiff2bw</b> [ <i>options</i> ] <i>input.tif
output.tif</i></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>Tiff2bw</i> converts an <small>RGB</small> or Palette
color <small>TIFF</small> image to a greyscale image by
combining percentages of the red, green, and blue channels.
By default, output samples are created by taking 28% of the
red channel, 59% of the green channel, and 11% of the blue
channel. To alter these percentages, the <b>&minus;R</b>,
<b>&minus;G</b>, and <b>&minus;B</b> options may be
used.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;c</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify a compression scheme to use when writing image
data: <b>&minus;c none</b> for no compression, <b>&minus;c
packbits</b> for the PackBits compression algorithm,
<b>&minus;c zip</b> for the Deflate compression algorithm,
<b>&minus;c g3</b> for the CCITT Group 3 compression
algorithm, <b>&minus;c g4</b> for the CCITT Group 4
compression algorithm, and <b>&minus;c lzw</b> for
Lempel-Ziv &amp; Welch (the default).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;r</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Write data with a specified number of rows per strip; by
default the number of rows/strip is selected so that each
strip is approximately 8 kilobytes.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;R</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the percentage of the red channel to use
(default 28).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;G</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the percentage of the green channel to use
(default 59).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;B</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the percentage of the blue channel to use
(default 11).</p>
</td>
<td width="0%">
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>pal2rgb</b>(1), <b>tiffinfo</b>(1), <b>tiffcp</b>(1),
<b>tiffmedian</b>(1), <b>libtiff</b>(3)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\@���FFhtml/man/tiff2pdf.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:19 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFF2PDF</title>
</head>
<body>

<h1 align=center>TIFF2PDF</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#EXAMPLES">EXAMPLES</a><br>
<a href="#BUGS">BUGS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>tiff2pdf &minus; convert a TIFF image to a PDF
document</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>tiff2pdf</b> [ <i>options</i> ] <i>input.tiff</i></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><i>tiff2pdf</i> opens a TIFF image and writes a PDF
document to standard output.</p>
<!-- INDENTATION -->
<p>The program converts one TIFF file to one PDF file,
including multiple page TIFF files, tiled TIFF files, black
and white. grayscale, and color TIFF files that contain data
of TIFF photometric interpretations of bilevel, grayscale,
RGB, YCbCr, CMYK separation, and ICC L*a*b* as supported by
<i>libtiff</i> and PDF.</p>
<!-- INDENTATION -->
<p>If you have multiple TIFF files to convert into one PDF
file then use <i>tiffcp</i> or other program to concatenate
the files into a multiple page TIFF file. If the input TIFF
file is of huge dimensions (greater than 10000 pixels height
or width) convert the input image to a tiled TIFF if it is
not already.</p>
<!-- INDENTATION -->
<p>The standard output is standard output. Set the output
file name with the <b>&minus;o</b> <i>output.pdf</i>
option.</p>
<!-- INDENTATION -->
<p>All black and white files are compressed into a single
strip CCITT G4 Fax compressed PDF, unless tiled, where tiled
black and white images are compressed into tiled CCITT G4
Fax compressed PDF, <i>libtiff</i> CCITT support is
assumed.</p>
<!-- INDENTATION -->
<p>Color and grayscale data can be compressed using either
JPEG compression, ITU-T T.81, or Zip/Deflate LZ77
compression. Set the compression type using the
<b>&minus;j</b> or <b>&minus;z</b> options. JPEG compression
support requires that <i>libtiff</i> be configured with JPEG
support, and Zip/Deflate compression support requires that
<i>libtiff</i> be configured with Zip support, in
tiffconf.h. Use only one or the other of <b>&minus;j</b> and
<b>&minus;z.</b></p>
<!-- INDENTATION -->
<p>If the input TIFF contains single strip CCITT G4 Fax
compressed information, then that is written to the PDF file
without transcoding, unless the options of no compression
and no passthrough are set, <b>&minus;d</b> and
<b>&minus;n.</b></p>
<!-- INDENTATION -->
<p>If the input TIFF contains JPEG or single strip
Zip/Deflate compressed information, and they are configured,
then that is written to the PDF file without transcoding,
unless the options of no compression and no passthrough are
set.</p>
<!-- INDENTATION -->
<p>The default page size upon which the TIFF image is placed
is determined by the resolution and extent of the image
data. Default values for the TIFF image resolution can be
set using the <b>&minus;x</b> and <b>&minus;y</b> options.
The page size can be set using the <b>&minus;p</b> option
for paper size, or <b>&minus;w</b> and <b>&minus;l</b> for
paper width and length, then each page of the TIFF image is
centered on its page. The distance unit for default
resolution and page width and length can be set by the
<b>&minus;u</b> option, the default unit is inch.</p>
<!-- INDENTATION -->
<p>Various items of the output document information can be
set with the <b>&minus;e</b>, <b>&minus;c</b>,
<b>&minus;a</b>, <b>&minus;t</b>, <b>&minus;s</b>, and
<b>&minus;k</b> options. Setting the argument of the option
to &quot;&quot; for these tags causes the relevant document
information field to be not written. Some of the document
information values otherwise get their information from the
input TIFF image, the software, author, document name, and
image description.</p>
<!-- INDENTATION -->
<p>The Portable Document Format (PDF) specification is
copyrighted by Adobe Systems, Incorporated.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>&minus;o</b> <i>output-file</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set the output to go to file. <i>output-file</i></p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="4" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="4%">

<p><b>&minus;j</b></p>
</td>
<td width="5%"></td>
<td width="77%">

<p>Compress with JPEG (requires <i>libjpeg</i> configured
with <i>libtiff</i>).</p>
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="4%">

<p><b>&minus;z</b></p>
</td>
<td width="5%"></td>
<td width="77%">

<p>Compress with Zip/Deflate (requires <i>zlib</i>
configured with <i>libtiff</i>).</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>&minus;q</b> <i>quality</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set the compression quality, 1-100 for JPEG.</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="4" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="2%">

<p><b>&minus;n</b></p>
</td>
<td width="7%"></td>
<td width="77%">

<p>Do not allow data to be converted without uncompressing,
no compressed data passthrough.</p>
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="2%">

<p><b>&minus;b</b></p>
</td>
<td width="7%"></td>
<td width="77%">

<p>Set PDF &lsquo;&lsquo;Interpolate&rsquo;&rsquo; user
preference.</p>
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="2%">

<p><b>&minus;d</b></p>
</td>
<td width="7%"></td>
<td width="77%">

<p>Do not compress (decompress).</p>
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="2%">

<p><b>&minus;i</b></p>
</td>
<td width="7%"></td>
<td width="77%">

<p>Invert colors.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>&minus;p</b> <i>paper-size</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set paper size, e.g., <b>letter</b>, <b>legal</b>,
<b>A4</b>.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>&minus;u</b> [<b>i</b>|<b>m</b>]</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set distance unit, <b>i</b> for inch, <b>m</b> for
centimeter.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>&minus;w</b> <i>width</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set width in units.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>&minus;l</b> <i>length</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set length in units.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>&minus;x</b> <i>xres</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set x/width resolution default.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>&minus;y</b> <i>yres</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set y/length resolution default.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>&minus;r</b> [<b>d</b>|<b>o</b>]</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set <b>d</b> for resolution default for images without
resolution, <b>o</b> for resolution override for all
images.</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="2%">

<p><b>&minus;f</b></p>
</td>
<td width="13%"></td>
<td width="57%">

<p>Set PDF &lsquo;&lsquo;Fit Window&rsquo;&rsquo; user
preference.</p>
</td>
<td width="14%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>&minus;e</b> <i>YYYYMMDDHHMMSS</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set document information date, overrides image or current
date/time default, <i>YYYYMMDDHHMMSS.</i></p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>&minus;c</b> <i>creator</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set document information creator, overrides image
software default.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>&minus;a</b> <i>author</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set document information author, overrides image artist
default.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>&minus;t</b> <i>title</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set document information title, overrides image document
name default.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>&minus;s</b> <i>subject</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set document information subject, overrides image image
description default.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>&minus;k</b> <i>keywords</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="21%"></td>
<td width="77%">
<p>Set document information keywords.</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="2%">

<p><b>&minus;h</b></p>
</td>
<td width="13%"></td>
<td width="57%">

<p>List usage reminder to stderr and exit.</p>
</td>
<td width="14%">
</td>
</table>
<a name="EXAMPLES"></a>
<h2>EXAMPLES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>The following example would generate the file output.pdf
from input.tiff.</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="20%"></td>
<td width="79%">
<pre>tiff2pdf &minus;o output.pdf input.tiff
</pre>
</td>
</table>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>The following example would generate PDF output from
input.tiff and write it to standard output.</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="20%"></td>
<td width="79%">
<pre>tiff2pdf input.tiff
</pre>
</td>
</table>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>The following example would generate the file output.pdf
from input.tiff, putting the image pages on a letter sized
page, compressing the output with JPEG, with JPEG quality
75, setting the title to
&lsquo;&lsquo;Document&rsquo;&rsquo;, and setting the
&lsquo;&lsquo;Fit Window&rsquo;&rsquo; option.</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="20%"></td>
<td width="79%">
<pre>tiff2pdf &minus;p letter &minus;j &minus;q 75 &minus;t &quot;Document&quot; &minus;f &minus;o output.pdf input.tiff
</pre>
</td>
</table>
<a name="BUGS"></a>
<h2>BUGS</h2>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>Please report bugs via the web interface at</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="20%"></td>
<td width="79%">

<p>http://bugzilla.remotesensing.org/enter_bug.cgi?product=libtiff</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>libtiff</b>(3), <b>tiffcp</b>(1),
<b>tiff2ps</b>(1)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�GǨ:�:html/man/tiff2ps.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:19 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFF2PS</title>
</head>
<body>

<h1 align=center>TIFF2PS</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#EXAMPLES">EXAMPLES</a><br>
<a href="#BUGS">BUGS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>tiff2ps &minus; convert a <small>TIFF</small> image to
PostScript&trade;</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiff2ps</b> [ <i>options</i> ] <i>input.tif
...</i></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>tiff2ps</i> reads <small>TIFF</small> images and
writes PostScript or Encapsulated PostScript (EPS) on the
standard output. By default, <i>tiff2ps</i> writes
Encapsulated PostScript for the first image in the specified
<small>TIFF</small> image file.</p>
<!-- INDENTATION -->
<p>By default, <i>tiff2ps</i> will generate PostScript that
fills a printed area specified by the <small>TIFF</small>
tags in the input file. If the file does not contain
<i>XResolution</i> or <i>YResolution</i> tags, then the
printed area is set according to the image dimensions. The
<b>&minus;w</b> and <b>&minus;h</b> options (see below) can
be used to set the dimensions of the printed area in inches;
overriding any relevant <small>TIFF</small> tags.</p>
<!-- INDENTATION -->
<p>The PostScript generated for <small>RGB,</small> palette,
and <small>CMYK</small> images uses the <i>colorimage</i>
operator. The PostScript generated for greyscale and bilevel
images uses the <i>image</i> operator. When the
<i>colorimage</i> operator is used, PostScript code to
emulate this operator on older PostScript printers is also
generated. Note that this emulation code can be very
slow.</p>
<!-- INDENTATION -->
<p>Color images with associated alpha data are composited
over a white background.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;1</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Generate PostScript Level 1 (the default).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;2</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Generate PostScript Level 2.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;3</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Generate PostScript Level 3. It basically allows one to
use the /flateDecode filter for ZIP compressed TIFF
images.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;8</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Disable use of ASCII85 encoding with PostScript Level 2/3.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;a</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Generate output for all IFDs (pages) in the input
file.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;b</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the bottom margin for the output (in inches).
This does not affect the height of the printed image.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;c</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Center the image in the output. This option only shows
an effect if both the <b>&minus;w</b> and the
<b>&minus;h</b> option are given.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;C</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the document creator name.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;d</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Set the initial <small>TIFF</small> directory to the
specified directory number. (NB: Directories are numbered
starting at zero.) This option is useful for selecting
individual pages in a multi-page (e.g. facsimile) file.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;D</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Enable duplex printing (two pages per sheet of paper).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;e</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force the generation of Encapsulated PostScript (implies
<b>&minus;z</b>).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;h</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the vertical size of the printed area (in
inches).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;H</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the maximum height of image (in inches). Images
with larger sizes will be split in several pages. Option
<b>&minus;L</b> may be used for specifying size of split
images overlapping.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;i</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Enable/disable pixel interpolation. This option requires
a single numeric value: zero to disable pixel interpolation
and non-zero to enable. The default is enabled.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;L</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the size of overlapping for split images (in
inches). Used in conjunction with <b>&minus;H</b> and <b>&minus;W</b>
options.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;l</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the left margin for the output (in inches). This
does not affect the width of the printed image.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;m</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Where possible render using the <i>imagemask</i>
PostScript operator instead of the <i>image</i> operator.
When this option is specified <i>tiff2ps</i> will use
<i>imagemask</i> for rendering 1 bit deep images. If this
option is not specified or if the image depth is greater
than 1 then the <i>image</i> operator is used.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;o</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Set the initial <small>TIFF</small> directory to the
<small>IFD</small> at the specified file offset. This option
is useful for selecting thumbnail images and the like which
are hidden using the <i>SubIFD</i> tag.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;O</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Write PostScript to specified file instead of standard output.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;p</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force the generation of (non-Encapsulated)
PostScript.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;P</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Set optional PageOrientation DSC comment to Landscape or Portrait.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;r</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Rotate image by 180 degrees.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;s</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Generate output for a single IFD (page) in the input
file.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;t</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the document title string.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;T</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Print pages for top edge binding.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;w</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the horizontal size of the printed area (in
inches).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;W</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the maximum width of image (in inches). Images
with larger sizes will be split in several pages. Option
<b>&minus;L</b> may be used for specifying size of split
images overlapping.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;x</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Override resolution units specified in the TIFF as
centimeters.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;y</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Override resolution units specified in the TIFF as
inches.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;z</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>When generating PostScript Level 2, data is scaled so
that it does not image into the <i>deadzone</i> on a page
(the outer margin that the printing device is unable to
mark). This option suppresses this behavior. When PostScript
Level 1 is generated, data is imaged to the entire printed
page and this option has no affect.</p>
</td>
<td width="0%">
</td>
</table>
<a name="EXAMPLES"></a>
<h2>EXAMPLES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The following generates PostScript Level 2 for all pages
of a facsimile:</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>tiff2ps &minus;a2 fax.tif | lpr
</pre>
</td>
</table>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Note also that if you have version 2.6.1 or newer of
Ghostscript then you can efficiently preview facsimile
generated with the above command.</p>
<!-- INDENTATION -->
<p>To generate Encapsulated PostScript for a the image at
directory 2 of an image use:</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>tiff2ps &minus;d 1 foo.tif
</pre>
</td>
</table>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>(Notice that directories are numbered starting at
zero.)</p>
<!-- INDENTATION -->
<p>If you have a long image, it may be split in several
pages:</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>tiff2ps &minus;h11 &minus;w8.5 &minus;H14 &minus;L.5 foo.tif &gt; foo.ps
</pre>
</td>
</table>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The page size is set to 8.5x11 by <b>&minus;w</b> and
<b>&minus;h</b> options. We will accept a small amount of
vertical compression, so <b>&minus;H</b> set to 14. Any
pages between 11 and 14 inches will be fit onto one page.
Pages longer than 14 inches are cut off at 11 and continued
on the next page. The <b>&minus;L.5</b> option says to
repeat a half inch on the next page (to improve
readability).</p>
</td>
</table>
<a name="BUGS"></a>
<h2>BUGS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Because PostScript does not support the notion of a
colormap, 8-bit palette images produce 24-bit PostScript
images. This conversion results in output that is six times
bigger than the original image and which takes a long time
to send to a printer over a serial line. Matters are even
worse for 4-, 2-, and 1-bit palette images.</p>
<!-- INDENTATION -->
<p>Does not handle tiled images when generating PostScript
Level I output.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>pal2rgb</b>(1), <b>tiffinfo</b>(1), <b>tiffcp</b>(1),
<b>tiffgt</b>(1), <b>tiffmedian</b>(1), <b>tiff2bw</b>(1),
<b>tiffsv</b>(1), <b>libtiff</b>(3)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�u\���html/man/tiff2rgba.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:19 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFF2RGBA</title>
</head>
<body>

<h1 align=center>TIFF2RGBA</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>tiff2rgba &minus; convert a <small>TIFF</small> image to
RGBA color space</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiff2rgba</b> [ <i>options</i> ] <i>input.tif
output.tif</i></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>Tiff2rgba</i> converts a wide variety of TIFF images
into an RGBA TIFF image. This includes the ability to
translate different color spaces and photometric
interpretation into RGBA, support for alpha blending, and
translation of many different bit depths into a 32bit RGBA
image.</p>
<!-- INDENTATION -->
<p>Internally this program is implemented using the
<i>TIFFReadRGBAImage()</i> function, and it suffers any
limitations of that image. This includes limited support for
&gt; 8 BitsPerSample images, and flaws with some esoteric
combinations of BitsPerSample, photometric interpretation,
block organization and planar configuration.</p>
<!-- INDENTATION -->
<p>The generated images are stripped images with four
samples per pixel (red, green, blue and alpha) or if the
<b>&minus;n</b> flag is used, three samples per pixel (red,
green, and blue). The resulting images are always planar
configuration contiguous. For this reason, this program is a
useful utility for transform exotic TIFF files into a form
ingestible by almost any TIFF supporting software.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="2%">

<p><b>&minus;c</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify a compression scheme to use when writing image
data: <b>&minus;c none</b> for no compression (the default),
<b>&minus;c packbits</b> for the PackBits compression
algorithm, <b>&minus;c zip</b> for the Deflate compression
algorithm, <b>&minus;c jpeg</b> for the JPEG compression
algorithm, and <b>&minus;c lzw</b> for Lempel-Ziv &amp;
Welch.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="2%">

<p><b>&minus;r</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Write data with a specified number of rows per strip; by
default the number of rows/strip is selected so that each
strip is approximately 8 kilobytes.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="2%">

<p><b>&minus;b</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Process the image one block (strip/tile) at a time
instead of by reading the whole image into memory at once.
This may be necessary for very large images on systems with
limited RAM.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="2%">

<p><b>&minus;n</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Drop the alpha component from the output file, producing
a pure RGB file. Currently this does not work if the
<b>&minus;b</b> flag is also in effect.</p>
</td>
<td width="0%">
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiff2bw</b>(1), <b>TIFFReadRGBAImage</b>(3t),
<b>libtiff</b>(3)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\��11html/man/tiffcmp.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:19 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFCMP</title>
</head>
<body>

<h1 align=center>TIFFCMP</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#BUGS">BUGS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>tiffcmp &minus; compare two <small>TIFF</small> files</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiffcmp</b> [ <i>options</i> ] <i>file1.tif
file2.tif</i></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>Tiffcmp</i> compares the tags and data in two files
created according to the Tagged Image File Format, Revision
6.0. The schemes used for compressing data in each file are
immaterial when data are compared&minus;data are compared on
a scanline-by-scanline basis after decompression. Most
directory tags are checked; notable exceptions are:
<i>GrayResponseCurve</i>, <i>ColorResponseCurve</i>, and
<i>ColorMap</i> tags. Data will not be compared if any of
the <i>BitsPerSample</i>, <i>SamplesPerPixel</i>, or
<i>ImageWidth</i> values are not equal. By default,
<i>tiffcmp</i> will terminate if it encounters any
difference.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="2%">

<p><b>&minus;l</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>List each byte of image data that differs between the
files.</p>
</td>
<td width="0%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;z</b> <i>number</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>List specified number of image data bytes that differs
between the files.</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="2%">

<p><b>&minus;t</b></p>
</td>
<td width="11%"></td>
<td width="52%">

<p>Ignore any differences in directory tags.</p>
</td>
<td width="23%">
</td>
</table>
<a name="BUGS"></a>
<h2>BUGS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Tags that are not recognized by the library are not
compared; they may also generate spurious diagnostics.</p>
<!-- INDENTATION -->
<p>The image data of tiled files is not compared, since the
<i>TIFFReadScanline()</i> function is used. An error will be
reported for tiled files.</p>
<!-- INDENTATION -->
<p>The pixel and/or sample number reported in differences
may be off in some exotic cases.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>pal2rgb</b>(1), <b>tiffcp</b>(1),
<b>tiffmedian</b>(1), <b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�z��=�=html/man/tiffcp.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:20 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFCP</title>
</head>
<body>

<h1 align=center>TIFFCP</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#EXAMPLES">EXAMPLES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>tiffcp &minus; copy (and possibly convert) a
<small>TIFF</small> file</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiffcp</b> [ <i>options</i> ] <i>src1.tif ... srcN.tif
dst.tif</i></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>tiffcp</i> combines one or more files created
according to the Tag Image File Format, Revision 6.0 into a
single <small>TIFF</small> file. Because the output file may
be compressed using a different algorithm than the input
files, <i>tiffcp</i> is most often used to convert between
different compression schemes.</p>
<!-- INDENTATION -->
<p>By default, <i>tiffcp</i> will copy all the understood
tags in a <small>TIFF</small> directory of an input file to
the associated directory in the output file.</p>
<!-- INDENTATION -->
<p><i>tiffcp</i> can be used to reorganize the storage
characteristics of data in a file, but it is explicitly
intended to not alter or convert the image data content in
any way.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">
<p><b>&minus;a</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Append to an existing output file instead of overwriting it.</p>
</td>
<td width="0%">
</td>
</tr>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">
<p><b>&minus;b</b></p></td>
<td width="5%"></td>
<td width="80%">
<p>subtract the following monochrome image from all others
processed. This can be used to remove a noise bias from a
set of images. This bias image is typically an image of
noise the camera saw with its shutter closed.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;B</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force output to be written with Big-Endian byte order.
This option only has an effect when the output file is
created or overwritten and not when it is appended to.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;C</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Suppress the use of &lsquo;&lsquo;strip
chopping&rsquo;&rsquo; when reading images that have a
single strip/tile of uncompressed data.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;c</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the compression to use for data written to the
output file: <b>none</b> for no compression, <b>packbits</b>
for PackBits compression, <b>lzw</b> for Lempel-Ziv &amp;
Welch compression, <b>jpeg</b> for baseline JPEG
compression, <b>zip</b> for Deflate compression, <b>g3</b>
for CCITT Group 3 (T.4) compression, <b>g4</b> for CCITT
Group 4 (T.6) compression, or <b>sgilog</b> for SGILOG compression.
By default <i>tiffcp</i> will
compress data according to the value of the
<i>Compression</i> tag found in the source file.</p>
</td>
<td width="0%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p>The <small>CCITT</small> Group 3 and Group 4 compression
algorithms can only be used with bilevel data.</p>
<!-- INDENTATION -->
<p>Group 3 compression can be specified together with
several T.4-specific options: <b>1d</b> for 1-dimensional
encoding, <b>2d</b> for 2-dimensional encoding, and
<b>fill</b> to force each encoded scanline to be zero-filled
so that the terminating EOL code lies on a byte boundary.
Group 3-specific options are specified by appending a
&lsquo;&lsquo;:&rsquo;&rsquo;-separated list to the
&lsquo;&lsquo;g3&rsquo;&rsquo; option; e.g. <b>&minus;c
g3:2d:fill</b> to get 2D-encoded data with byte-aligned EOL
codes.</p>
<!-- INDENTATION -->
<p><small>LZW</small> compression can be specified together
with a <i>predictor</i> value. A predictor value of 2 causes
each scanline of the output image to undergo horizontal
differencing before it is encoded; a value of 1 forces each
scanline to be encoded without differencing. LZW-specific
options are specified by appending a
&lsquo;&lsquo;:&rsquo;&rsquo;-separated list to the
&lsquo;&lsquo;lzw&rsquo;&rsquo; option; e.g. <b>&minus;c
lzw:2</b> for <small>LZW</small> compression with horizontal
differencing.</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;f</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the bit fill order to use in writing output
data. By default, <i>tiffcp</i> will create a new file with
the same fill order as the original. Specifying <b>&minus;f
lsb2msb</b> will force data to be written with the FillOrder
tag set to <small>LSB2MSB,</small> while <b>&minus;f
msb2lsb</b> will force data to be written with the FillOrder
tag set to <small>MSB2LSB.</small></p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;i</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Ignore non-fatal read errors and continue processing of
the input file.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;l</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the length of a tile (in pixels). <i>tiffcp</i>
attempts to set the tile dimensions so that no more than 8
kilobytes of data appear in a tile.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;L</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force output to be written with Little-Endian byte
order. This option only has an effect when the output file
is created or overwritten and not when it is appended
to.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;M</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Suppress the use of memory-mapped files when reading
images.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;o</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Set initial directory offset.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;p</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the planar configuration to use in writing image
data that has one 8-bit sample per pixel. By default,
<i>tiffcp</i> will create a new file with the same planar
configuration as the original. Specifying <b>&minus;p
contig</b> will force data to be written with multi-sample
data packed together, while <b>&minus;p separate</b> will
force samples to be written in separate planes.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;r</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the number of rows (scanlines) in each strip of
data written to the output file. By default (or when value
<b>0</b> is specified), <i>tiffcp</i> attempts to set the
rows/strip that no more than 8 kilobytes of data appear in a
strip. If you specify special value <b>&minus;1</b> it will
results in infinite number of the rows per strip. The entire
image will be the one strip in that case.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;s</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force the output file to be written with data organized
in strips (rather than tiles).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;t</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force the output file to be written with data organized
in tiles (rather than strips). options can be used to force
the resultant image to be written as strips or tiles of
data, respectively.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;w</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the width of a tile (in pixels). <i>tiffcp</i>
attempts to set the tile dimensions so that no more than 8
kilobytes of data appear in a tile. <i>tiffcp</i> attempts
to set the tile dimensions so that no more than 8 kilobytes
of data appear in a tile.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;x</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force the output file to be written with PAGENUMBER value
in sequence.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;8</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Write BigTIFF instead of classic TIFF format.</p>
</td>
<td width="0%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;,=</b><i>character</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>substitute <i>character</i> for &lsquo;,&rsquo; in
parsing image directory indices in files. This is necessary
if filenames contain commas. Note that <b>&minus;,=</b> with
whitespace immediately following will disable the special
meaning of the &lsquo;,&rsquo; entirely. See examples.</p>
</td>
</table>
<a name="EXAMPLES"></a>
<h2>EXAMPLES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The following concatenates two files and writes the
result using <small>LZW</small> encoding:</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>tiffcp &minus;c lzw a.tif b.tif result.tif
</pre>
</td>
</table>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>To convert a G3 1d-encoded <small>TIFF</small> to a
single strip of G4-encoded data the following might be
used:</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>tiffcp &minus;c g4 &minus;r 10000 g3.tif g4.tif
</pre>
</td>
</table>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>(1000 is just a number that is larger than the number of
rows in the source file.)</p>
<!-- INDENTATION -->
<p>To extract a selected set of images from a multi-image
TIFF file, the file name may be immediately followed by a
&lsquo;,&rsquo; separated list of image directory indices.
The first image is always in directory 0. Thus, to copy the
1st and 3rd images of image file
&lsquo;&lsquo;album.tif&rsquo;&rsquo; to
&lsquo;&lsquo;result.tif&rsquo;&rsquo;:</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>tiffcp album.tif,0,2 result.tif
</pre>
</td>
</table>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>A trailing comma denotes remaining images in sequence.
The following command will copy all image with except the
first one:</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>tiffcp album.tif,1, result.tif
</pre>
</td>
</table>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Given file &lsquo;&lsquo;CCD.tif&rsquo;&rsquo; whose
first image is a noise bias followed by images which include
that bias, subtract the noise from all those images
following it (while decompressing) with the
command:</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>tiffcp &minus;c none &minus;b CCD.tif CCD.tif,1, result.tif
</pre>
</td>
</table>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>If the file above were named
&lsquo;&lsquo;CCD,X.tif&rsquo;&rsquo;, the <b>&minus;,=</b>
option would be required to correctly parse this filename
with image numbers, as follows:</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>tiffcp &minus;c none &minus;,=% &minus;b CCD,X.tif CCD,X%1%.tif result.tif

</pre>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>pal2rgb</b>(1), <b>tiffinfo</b>(1), <b>tiffcmp</b>(1),
<b>tiffmedian</b>(1), <b>tiffsplit</b>(1),
<b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\|�O�Ohtml/man/tiffcrop.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:20 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFCROP</title>
</head>
<body>

<h1 align=center>TIFFCROP</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#EXAMPLES">EXAMPLES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>tiffcrop &minus; copy (and possibly convert and crop or
process) a <small>TIFF</small> file</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiffcrop</b> [ <i>options</i> ] <i>src1.tif ...
srcN.tif dst.tif</i></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>tiffcrop</i> combines one or more files created
according to the Tag Image File Format, Revision 6.0 into a
single <small>TIFF</small> file. The output file may be
compressed using a different algorithm than the input files.
<i>tiffcrop</i> is most often used to extract portions of an
image for processing with bar code recognizer or OCR
software when that software cannot restrict the region of
interest to a specific portion of the image or to improve
efficiency when the regions of interest must be rotated.</p>
<!-- INDENTATION -->
<p>By default, <i>tiffcrop</i> will copy all the understood
tags in a <small>TIFF</small> directory of an input file to
the associated directory in the output file.</p>
<!-- INDENTATION -->
<p><i>tiffcrop</i> can be used to reorganize the storage
characteristics of data in a file, and it will alter or
convert the image data content as specified at the same
time, unlike tiffcp.</p>
<!-- INDENTATION -->
<p><i>tiffcrop</i> will behave exactly like tiffcp if none
of the new options are specified.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;N odd|even|#,#-#,#|last</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>sequences and ranges of images within file to process.
The words <b>odd</b> or <b>even</b> may be used to specify
all odd or even numbered images. The word <b>last</b> may be
used in place of a number in the sequence to indicate the
final image in the file without knowing how many images
there are. Ranges of images may be specified with a dash and
multiple sets can be indicated by joining them in a
comma-separated list. e.g.. use <b>&minus;N 1,5-7,last</b>
to process the 1st, 5th through 7th, and final image in the
file.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;E top|bottom|left|right</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>use the top, bottom, left, or right edge as origin
reference for width and length of crop regions. May be
abbreviated to first letter.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;U in|cm|px</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>units to apply to dimensions for margins and crop
regions. Inches or centimeters are converted to pixels using
the resolution unit specified in the TIFF file (which
defaults to inches if not specified in the IFD).</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;m #,#,#,#</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>margins to be removed from the image. The order must be
top, left, bottom, right with only commas separating the
elements of the list. Margins are scaled according to the
current units and removed before any other extractions are
computed. Capital M was in use.</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="6%">

<p><b>&minus;X #</b></p>
</td>
<td width="2%"></td>
<td width="80%">

<p>horizontal (X-axis) dimension of a region to extract
relative to the specified origin reference. If the origin is
the top or bottom edge, the X axis value will be assumed to
start at the left edge.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="6%">

<p><b>&minus;Y #</b></p>
</td>
<td width="2%"></td>
<td width="80%">

<p>vertical (Y-axis) dimension of a region to extract
relative to the specified origin reference. If the origin is
the left or right edge, the Y axis value will be assumed to
start at the top.</p>
</td>
<td width="0%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;Z #:#,#:#</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>zones of the image designated as position X of Y equal
sized portions measured from the reference edge, e.g. 1:3
would be first third of the image starting from the
reference edge minus any margins specified for the confining
edges. Multiple zones can be specified as a comma separated
list but they must reference the same edge. To extract the
top quarter and the bottom third of an image you would use
<b>&minus;Z 1:4,3:3.</b></p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;F horiz|vert</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>flip, i.e. mirror, the image or extracted region
horizontally or vertically.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;R 90|180|270</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>rotate the image or extracted region 90, 180, or 270
degrees clockwise.</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="2%">

<p><b>&minus;I</b></p>
</td>
<td width="6%"></td>
<td width="80%">

<p>invert the colorspace values for grayscale and bi-level
images. This would be used to correct negative images that
have incorrect PHOTOMETRIC INTERPRETATION tags. No support
for color images.</p>
</td>
<td width="0%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;b</b> <i>image</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>subtract the following monochrome image from all others
processed. This can be used to remove a noise bias from a
set of images. This bias image is typically an image of
noise the camera saw with its shutter closed. Bias image
support is not available with options for cropping,
rotating, or inverting the image.</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;B</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force output to be written with Big-Endian byte order.
This option only has an effect when the output file is
created or overwritten and not when it is appended to.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;C</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Suppress the use of &lsquo;&lsquo;strip
chopping&rsquo;&rsquo; when reading images that have a
single strip/tile of uncompressed data.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;c</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the compression to use for data written to the
output file: <b>none</b> for no compression, <b>packbits</b>
for PackBits compression, <b>lzw</b> for Lempel-Ziv &amp;
Welch compression, <b>jpeg</b> for baseline JPEG
compression, <b>zip</b> for Deflate compression, <b>g3</b>
for CCITT Group 3 (T.4) compression, and <b>g4</b> for CCITT
Group 4 (T.6) compression. By default <i>tiffcrop</i> will
compress data according to the value of the
<i>Compression</i> tag found in the source file.</p>
</td>
<td width="0%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p>The <small>CCITT</small> Group 3 and Group 4 compression
algorithms can only be used with bi-level data.</p>
<!-- INDENTATION -->
<p>Group 3 compression can be specified together with
several T.4-specific options: <b>1d</b> for 1-dimensional
encoding, <b>2d</b> for 2-dimensional encoding, and
<b>fill</b> to force each encoded scanline to be zero-filled
so that the terminating EOL code lies on a byte boundary.
Group 3-specific options are specified by appending a
&lsquo;&lsquo;:&rsquo;&rsquo;-separated list to the
&lsquo;&lsquo;g3&rsquo;&rsquo; option; e.g. <b>&minus;c
g3:2d:fill</b> to get 2D-encoded data with byte-aligned EOL
codes.</p>
<!-- INDENTATION -->
<p><small>LZW</small> compression can be specified together
with a <i>predictor</i> value. A predictor value of 2 causes
each scanline of the output image to undergo horizontal
differencing before it is encoded; a value of 1 forces each
scanline to be encoded without differencing. LZW-specific
options are specified by appending a
&lsquo;&lsquo;:&rsquo;&rsquo;-separated list to the
&lsquo;&lsquo;lzw&rsquo;&rsquo; option; e.g. <b>&minus;c
lzw:2</b> for <small>LZW</small> compression with horizontal
differencing.</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;f</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the bit fill order to use in writing output
data. By default, <i>tiffcrop</i> will create a new file
with the same fill order as the original. Specifying
<b>&minus;f lsb2msb</b> will force data to be written with
the FillOrder tag set to <small>LSB2MSB,</small> while
<b>&minus;f msb2lsb</b> will force data to be written with
the FillOrder tag set to <small>MSB2LSB.</small></p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;i</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Ignore non-fatal read errors and continue processing of
the input file.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;l</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the length of a tile (in pixels).
<i>tiffcrop</i> attempts to set the tile dimensions so that
no more than 8 kilobytes of data appear in a tile.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;L</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force output to be written with Little-Endian byte
order. This option only has an effect when the output file
is created or overwritten and not when it is appended
to.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;M</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Suppress the use of memory-mapped files when reading
images.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;p</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the planar configuration to use in writing image
data that has one 8-bit sample per pixel. By default,
<i>tiffcrop</i> will create a new file with the same planar
configuration as the original. Specifying <b>&minus;p
contig</b> will force data to be written with multi-sample
data packed together, while <b>&minus;p separate</b> will
force samples to be written in separate planes.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;r</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the number of rows (scanlines) in each strip of
data written to the output file. By default (or when value
<b>0</b> is specified), <i>tiffcrop</i> attempts to set the
rows/strip that no more than 8 kilobytes of data appear in a
strip. If you specify special value <b>-1</b> it will
results in infinite number of the rows per strip. The entire
image will be the one strip in that case.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;s</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force the output file to be written with data organized
in strips (rather than tiles).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;t</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Force the output file to be written with data organized
in tiles (rather than strips). options can be used to force
the resultant image to be written as strips or tiles of
data, respectively.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;w</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the width of a tile (in pixels). <i>tiffcrop</i>
attempts to set the tile dimensions so that no more than 8
kilobytes of data appear in a tile. <i>tiffcrop</i> attempts
to set the tile dimensions so that no more than 8 kilobytes
of data appear in a tile.</p>
</td>
<td width="0%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;,={character}</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>substitute {character} for &rsquo;,&rsquo; in parsing
image directory indices in files. This is necessary if
filenames contain commas. Note that &rsquo;,=&rsquo; with
whitespace immediately following will disable the special
meaning of the &rsquo;,&rsquo; entirely. See examples.</p>
</td>
</table>
<a name="EXAMPLES"></a>
<h2>EXAMPLES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The following concatenates two files and writes the
result using <small>LZW</small> encoding:</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>tiffcrop -c lzw a.tif b.tif result.tif
</pre>
</td>
</table>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>To convert a G3 1d-encoded <small>TIFF</small> to a
single strip of G4-encoded data the following might be
used:</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>tiffcrop -c g4 -r 10000 g3.tif g4.tif
</pre>
</td>
</table>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>(1000 is just a number that is larger than the number of
rows in the source file.)</p>
<!-- INDENTATION -->
<p>To extract a selected set of images from a multi-image
TIFF file use the -N option described above. Thus, to copy
the 1st and 3rd images of image file &quot;album.tif&quot;
to &quot;result.tif&quot;:</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>tiffcrop -N 1,3 album.tif result.tif
</pre>
</td>
</table>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Given file &quot;CCD.tif&quot; whose first image is a
noise bias followed by images which include that bias,
subtract the noise from all those images following it (while
decompressing) with the command:</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>tiffcrop -c none -b CCD.tif CCD.tif -d 2 result.tif
</pre>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>pal2rgb</b>(1), <b>tiffinfo</b>(1), <b>tiffcmp</b>(1),
<b>tiffcp</b>(1), <b>tiffmedian</b>(1), <b>tiffsplit</b>(1),
<b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\#����html/man/tiffdither.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:20 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFDITHER</title>
</head>
<body>

<h1 align=center>TIFFDITHER</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>tiffdither &minus; convert a greyscale image to bilevel
using dithering</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiffdither</b> [ <i>options</i> ] <i>input.tif
output.tif</i></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>tiffdither</i> converts a single channel 8-bit
greyscale image to a bilevel image using Floyd-Steinberg
error propagation with thresholding.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="2%">

<p><b>&minus;c</b></p>
</td>
<td width="6%"></td>
<td width="80%">

<p>Specify the compression to use for data written to the
output file: <b>none</b> for no compression, <b>packbits</b>
for PackBits compression, <b>lzw</b> for Lempel-Ziv &amp;
Welch compression, <b>zip</b> for Deflate compression,
<b>g3</b> for CCITT Group 3 (T.4) compression, and <b>g4</b>
for CCITT Group 4 (T.6) compression. By default
<i>tiffdither</i> will compress data according to the value
of the <i>Compression</i> tag found in the source file.</p>
</td>
<td width="0%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p>The <small>CCITT</small> Group 3 and Group 4 compression
algorithms can only be used with bilevel data.</p>
<!-- INDENTATION -->
<p>Group 3 compression can be specified together with
several T.4-specific options: <b>1d</b> for 1-dimensional
encoding, <b>2d</b> for 2-dimensional encoding, and
<b>fill</b> to force each encoded scanline to be zero-filled
so that the terminating EOL code lies on a byte boundary.
Group 3-specific options are specified by appending a
&lsquo;&lsquo;:&rsquo;&rsquo;-separated list to the
&lsquo;&lsquo;g3&rsquo;&rsquo; option; e.g. <b>&minus;c
g3:2d:fill</b> to get 2D-encoded data with byte-aligned EOL
codes.</p>
<!-- INDENTATION -->
<p><small>LZW</small> compression can be specified together
with a <i>predictor</i> value. A predictor value of 2 causes
each scanline of the output image to undergo horizontal
differencing before it is encoded; a value of 1 forces each
scanline to be encoded without differencing. LZW-specific
options are specified by appending a
&lsquo;&lsquo;:&rsquo;&rsquo;-separated list to the
&lsquo;&lsquo;lzw&rsquo;&rsquo; option; e.g. <b>&minus;c
lzw:2</b> for <small>LZW</small> compression with horizontal
differencing.</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;f</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the bit fill order to use in writing output
data. By default, <i>tiffdither</i> will create a new file
with the same fill order as the original. Specifying
<b>&minus;f lsb2msb</b> will force data to be written with
the <i>FillOrder</i> tag set to <small>LSB2MSB ,</small>
while <b>&minus;f msb2lsb</b> will force data to be written
with the <i>Fill- Order</i> tag set to <small>MSB2LSB
.</small></p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;r</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Make each strip have no more than the given number of rows.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;t</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Set the threshold value for dithering. By default the
threshold value is 128.</p>
</td>
<td width="0%">
</td>
</table>
<a name="NOTES"></a>
<h2>NOTES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The dither algorithm is taken from the
<b>tiffmedian</b>(1) program (written by Paul Heckbert).</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>pal2rgb</b>(1), <b>fax2tiff</b>(1),
<b>tiffinfo</b>(1), <b>tiffcp</b>(1), <b>tiff2bw</b>(1),
<b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�t�]@@html/man/tiffdump.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:20 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFDUMP</title>
</head>
<body>

<h1 align=center>TIFFDUMP</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>tiffdump &minus; print verbatim information about
<small>TIFF</small> files</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiffdump</b> [ <i>options</i> ] <i>name ...</i></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>tiffdump</i> displays directory information from files
created according to the Tag Image File Format, Revision
6.0. The header of each <small>TIFF</small> file (magic
number, version, and first directory offset) is displayed,
followed by the tag contents of each directory in the file.
For each tag, the name, data type, count, and value(s) is
displayed. When the symbolic name for a tag or data type is
known, the symbolic name is displayed followed by it&rsquo;s
numeric (decimal) value. Tag values are displayed enclosed
in &lsquo;&lsquo;&lt;&gt;&rsquo;&rsquo; characters
immediately preceded by the value of the count field. For
example, an <i>ImageWidth</i> tag might be displayed as
&lsquo;&lsquo;ImageWidth (256) SHORT (3)
1&lt;800&gt;&rsquo;&rsquo;.</p>
<!-- INDENTATION -->
<p><i>tiffdump</i> is particularly useful for investigating
the contents of <small>TIFF</small> files that
<i>libtiff</i> does not understand.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="2%">

<p><b>&minus;h</b></p>
</td>
<td width="6%"></td>
<td width="80%">

<p>Force numeric data to be printed in hexadecimal rather
than the default decimal.</p>
</td>
<td width="0%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;m</b> <i>items</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>Change the number of indirect data items that are
printed. By default, this will be 24.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;o</b> <i>offset</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>Dump the contents of the <small>IFD</small> at the a
particular file offset. The file offset may be specified
using the usual C-style syntax; i.e. a leading
&lsquo;&lsquo;0x&rsquo;&rsquo; for hexadecimal and a leading
&lsquo;&lsquo;0&rsquo;&rsquo; for octal.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiffinfo</b>(1), <b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\���ffhtml/man/tiffinfo.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:20 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFINFO</title>
</head>
<body>

<h1 align=center>TIFFINFO</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>tiffinfo &minus; print information about
<small>TIFF</small> files</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiffinfo</b> [ <i>options</i> ] <i>input.tif
...</i></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>Tiffinfo</i> displays information about files created
according to the Tag Image File Format, Revision 6.0. By
default, the contents of each <small>TIFF</small> directory
in each file is displayed, with the value of each tag shown
symbolically (where sensible).</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;c</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Display the colormap and color/gray response curves, if
present.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;D</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>In addition to displaying the directory tags, read and
decompress all the data in each image (but not display
it).</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;d</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>In addition to displaying the directory tags, print each
byte of decompressed data in hexadecimal.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;j</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Display any <small>JPEG</small> -related tags that are
present.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;o</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Set the initial <small>TIFF</small> directory according
to the specified file offset. The file offset may be
specified using the usual C-style syntax; i.e. a leading
&lsquo;&lsquo;0x&rsquo;&rsquo; for hexadecimal and a leading
&lsquo;&lsquo;0&rsquo;&rsquo; for octal.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;s</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Display the offsets and byte counts for each data strip
in a directory.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;z</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Enable strip chopping when reading image data.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="3%">

<p><b>&minus;#</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Set the initial <small>TIFF</small> directory to
<i>#</i>.</p>
</td>
<td width="0%">
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>pal2rgb</b>(1), <b>tiffcp</b>(1), <b>tiffcmp</b>(1),
<b>tiffmedian</b>(1), <b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\%""html/man/tiffmedian.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:20 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFMEDIAN</title>
</head>
<body>

<h1 align=center>TIFFMEDIAN</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>tiffmedian &minus; apply the median cut algorithm to data
in a <small>TIFF</small> file</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiffmedian</b> [ <i>options</i> ] <i>input.tif
output.tif</i></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>tiffmedian</i> applies the median cut algorithm to an
<small>RGB</small> image in <i>input.tif</i> to generate a
palette image that is written to <i>output.tif</i>. The
generated colormap has, by default, 256 entries. The image
data is quantized by mapping each pixel to the closest color
values in the colormap.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="2%">

<p><b>&minus;c</b></p>
</td>
<td width="5%"></td>
<td width="80%">

<p>Specify the compression to use for data written to the
output file: <b>none</b> for no compression, <b>packbits</b>
for PackBits compression, <b>lzw</b> for Lempel-Ziv &amp;
Welch compression, and <b>zip</b> for Deflate compression.
By default <i>tiffmedian</i> will compress data according to
the value of the <i>Compression</i> tag found in the source
file.</p>
</td>
<td width="0%">
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<p><small>LZW</small> compression can be specified together
with a <i>predictor</i> value. A predictor value of 2 causes
each scanline of the output image to undergo horizontal
differencing before it is encoded; a value of 1 forces each
scanline to be encoded without differencing. LZW-specific
options are specified by appending a
&lsquo;&lsquo;:&rsquo;&rsquo;-separated list to the
&lsquo;&lsquo;lzw&rsquo;&rsquo; option; e.g. <b>&minus;c
lzw:2</b> for <small>LZW</small> compression with horizontal
differencing.</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="5" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="2%">

<p><b>&minus;C</b></p>
</td>
<td width="6%"></td>
<td width="80%">

<p>Specify the number of entries to use in the generated
colormap. By default all 256 entries/colors are used.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="2%">

<p><b>&minus;f</b></p>
</td>
<td width="6%"></td>
<td width="80%">

<p>Apply Floyd-Steinberg dithering before selecting a
colormap entry.</p>
</td>
<td width="0%">
</td>
<tr valign="top" align="left">
<td width="10%"></td>
<td width="2%">

<p><b>&minus;r</b></p>
</td>
<td width="6%"></td>
<td width="80%">

<p>Specify the number of rows (scanlines) in each strip of
data written to the output file. By default,
<i>tiffmedian</i> attempts to set the rows/strip that no
more than 8 kilobytes of data appear in a strip.</p>
</td>
<td width="0%">
</td>
</table>
<a name="NOTES"></a>
<h2>NOTES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>This program is derived from Paul Heckbert&rsquo;s
<i>median</i> program.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>pal2rgb</b>(1), <b>tiffinfo</b>(1), <b>tiffcp</b>(1),
<b>tiffcmp</b>(1), <b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p><b>Color Image Quantization for Frame Buffer Display</b>,
Paul Heckbert, SIGGRAPH proceedings, 1982, pp. 297-307.</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\X�Ӭ88html/man/tiffset.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:20 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFSET</title>
</head>
<body>

<h1 align=center>TIFFSET</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#EXAMPLES">EXAMPLES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>tiffset &minus; set a field in a <small>TIFF</small>
header</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiffset</b> [ <i>options</i> ] <i>filename.tif</i></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>Tiffset</i> sets the value of a <small>TIFF</small>
header to a specified value.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;s</b> <i>tagnumber</i> [ <i>count</i> ]
<i>value ...</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>Set the value of the named tag to the value or values
specified.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>&minus;sf</b> <i>tagnumber filename</i></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="19%"></td>
<td width="80%">
<p>Set the value of the tag to the contents of filename.
This option is supported for ASCII tags only.</p>
</td>
</table>
<a name="EXAMPLES"></a>
<h2>EXAMPLES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The following example sets the image description tag
(270) of a.tif to the contents of the file descrip:</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>tiffset &minus;sf 270 descrip a.tif
</pre>
</td>
</table>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>The following example sets the artist tag (315) of a.tif
to the string
&lsquo;&lsquo;Anonymous&rsquo;&rsquo;:</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>tiffset &minus;s 305 Anonymous a.tif
</pre>
</td>
</table>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>This example sets the resolution of the file a.tif to 300
dpi:</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="17%"></td>
<td width="82%">
<pre>tiffset &minus;s 296 2 a.tif
tiffset &minus;s 282 300.0 a.tif
tiffset &minus;s 283 300.0 a.tif
</pre>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->

<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiffdump</b>(1), <b>tiffinfo</b>(1), <b>tiffcp</b>(1),
<b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\iGoohtml/man/tiffsplit.1.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:20 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFSPLIT</title>
</head>
<body>

<h1 align=center>TIFFSPLIT</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#BUGS">BUGS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>tiffsplit &minus; split a multi-image <small>TIFF</small>
into single-image <small>TIFF</small> files</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiffsplit</b> <i>src.tif</i> [ <i>prefix</i> ]</p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>tiffsplit</i> takes a multi-directory (page)
<small>TIFF</small> file and creates one or more
single-directory (page) <small>TIFF</small> files from it.
The output files are given names created by concatenating a
prefix, a lexically ordered suffix in the range
[<i>aaa</i>-<i>zzz</i>], the suffix <i>.tif</i> (e.g.
<i>xaaa.tif</i>, <i>xaab.tif</i>, <i>xzzz.tif</i>). If a
prefix is not specified on the command line, the default
prefix of <i>x</i> is used.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>None.</p>
</td>
</table>
<a name="BUGS"></a>
<h2>BUGS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>Only a select set of &lsquo;&lsquo;known
tags&rsquo;&rsquo; is copied when splitting.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>tiffcp</b>(1), <b>tiffinfo</b>(1),
<b>libtiff</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\��2��
�
html/man/CMakeLists.txtnu�[���# CMake build for libtiff
#
# Copyright © 2015 Open Microscopy Environment / University of Dundee
# Written by Roger Leigh <rleigh@codelibre.net>
#
# Permission to use, copy, modify, distribute, and sell this software and
# its documentation for any purpose is hereby granted without fee, provided
# that (i) the above copyright notices and this permission notice appear in
# all copies of the software and related documentation, and (ii) the names of
# Sam Leffler and Silicon Graphics may not be used in any advertising or
# publicity relating to the software without the specific, prior written
# permission of Sam Leffler and Silicon Graphics.
#
# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
#
# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
# OF THIS SOFTWARE.

set(indexfile index.html)

set(docfiles
    libtiff.3tiff.html
    TIFFbuffer.3tiff.html
    TIFFClose.3tiff.html
    TIFFcodec.3tiff.html
    TIFFcolor.3tiff.html
    TIFFDataWidth.3tiff.html
    TIFFError.3tiff.html
    TIFFFieldDataType.3tiff.html
    TIFFFieldName.3tiff.html
    TIFFFieldPassCount.3tiff.html
    TIFFFieldReadCount.3tiff.html
    TIFFFieldTag.3tiff.html
    TIFFFieldWriteCount.3tiff.html
    TIFFFlush.3tiff.html
    TIFFGetField.3tiff.html
    TIFFmemory.3tiff.html
    TIFFOpen.3tiff.html
    TIFFPrintDirectory.3tiff.html
    TIFFquery.3tiff.html
    TIFFReadDirectory.3tiff.html
    TIFFReadEncodedStrip.3tiff.html
    TIFFReadEncodedTile.3tiff.html
    TIFFReadRawStrip.3tiff.html
    TIFFReadRawTile.3tiff.html
    TIFFReadRGBAImage.3tiff.html
    TIFFReadRGBAStrip.3tiff.html
    TIFFReadRGBATile.3tiff.html
    TIFFReadScanline.3tiff.html
    TIFFReadTile.3tiff.html
    TIFFRGBAImage.3tiff.html
    TIFFSetDirectory.3tiff.html
    TIFFSetField.3tiff.html
    TIFFsize.3tiff.html
    TIFFstrip.3tiff.html
    TIFFswab.3tiff.html
    TIFFtile.3tiff.html
    TIFFWarning.3tiff.html
    TIFFWriteDirectory.3tiff.html
    TIFFWriteEncodedStrip.3tiff.html
    TIFFWriteEncodedTile.3tiff.html
    TIFFWriteRawStrip.3tiff.html
    TIFFWriteRawTile.3tiff.html
    TIFFWriteScanline.3tiff.html
    TIFFWriteTile.3tiff.html
    fax2ps.1.html
    fax2tiff.1.html
    pal2rgb.1.html
    ppm2tiff.1.html
    raw2tiff.1.html
    tiff2bw.1.html
    tiff2pdf.1.html
    tiff2ps.1.html
    tiff2rgba.1.html
    tiffcmp.1.html
    tiffcp.1.html
    tiffcrop.1.html
    tiffdither.1.html
    tiffdump.1.html
    tiffgt.1.html
    tiffinfo.1.html
    tiffmedian.1.html
    tiffset.1.html
    tiffsplit.1.html)

set(doc_DATA ${indexfile} ${docfiles})

extra_dist(${doc_DATA})

install(FILES ${doc_DATA}
        DESTINATION "${LIBTIFF_DOCDIR}/html/man")

# htmldoc target to regenerate HTML files
string(REPLACE ";" "^" escaped_docfiles "${docfiles}")
add_custom_target(htmldoc
  COMMAND "${CMAKE_COMMAND}"
  "-DMANSRCDIR=${PROJECT_SOURCE_DIR}/man"
  "-DHTMLMANDIR=${PROJECT_SOURCE_DIR}/html/man"
  "-DINDEXFILE=${indexfile}"
  "-DDOCFILES=${escaped_docfiles}"
  -P "${CMAKE_CURRENT_SOURCE_DIR}/HtmlDoc.cmake")

PK粐\}\cchtml/man/HtmlDoc.cmakenu�[���# CMake documentation generation for libtiff
#
# Copyright © 2015 Open Microscopy Environment / University of Dundee
# Written by Roger Leigh <rleigh@codelibre.net>
#
# Permission to use, copy, modify, distribute, and sell this software and
# its documentation for any purpose is hereby granted without fee, provided
# that (i) the above copyright notices and this permission notice appear in
# all copies of the software and related documentation, and (ii) the names of
# Sam Leffler and Silicon Graphics may not be used in any advertising or
# publicity relating to the software without the specific, prior written
# permission of Sam Leffler and Silicon Graphics.
#
# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
#
# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
# OF THIS SOFTWARE.

string(REPLACE "^" ";" DOCFILES "${DOCFILES}")

set(INDEXSTART "<html><head><title>Libtiff HTML manpage index</title></head><body bgcolor=white><ul><h2>Man Pages</h2><p>")
set(INDEXEND "</ul></body></html>")

set(indexcontent "${INDEXSTART}
")

foreach(doc ${DOCFILES})
  string(REGEX REPLACE "(.*)\\.html$" "\\1" man "${doc}")
  execute_process(COMMAND groff -Thtml -mandoc "${MANSRCDIR}/${man}"
    OUTPUT_FILE "${HTMLMANDIR}/${doc}"
    RESULT_VARIABLE GROFF_STATUS)
  if(GROFF_STATUS)
    message(FATAL_ERROR "Groff failed to generate HTML manpage")
  endif()
  message(STATUS "Generated ${HTMLMANDIR}/${doc} from ${MANSRCDIR}/${man}")

  set(indexcontent "${indexcontent}<li><a href=\"${doc}\">${man}</a>
")
endforeach()

set(indexcontent "${indexcontent}${INDEXEND}
")
file(WRITE "${HTMLMANDIR}/${INDEXFILE}" "${indexcontent}")
message(STATUS "Generated ${HTMLMANDIR}/${INDEXFILE}")
PK粐\�/Ǥ�	�	html/man/TIFFClose.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:15 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFClose</title>
</head>
<body>

<h1 align=center>TIFFClose</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFClose &minus; close a previously opened
<small>TIFF</small> file</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>void TIFFClose(TIFF *</b><i>tif</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFClose</i> closes a file that was previously opened
with <b>TIFFOpen</b>(3TIFF). Any buffered data are flushed
to the file, including the contents of the current directory
(if modified); and all resources are reclaimed.</p>
</td>
</table>
<a name="DIAGNOSTICS"></a>
<h2>DIAGNOSTICS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>All error messages are directed to the routine. Likewise,
warning messages are directed to the
<b>TIFFWarning</b>(3TIFF) routine.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>libtiff</b>(3TIFF), <b>TIFFOpen</b>(3TIFF)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\ƕ�5�	�	!html/man/TIFFDataWidth.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:16 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFDataWidth</title>
</head>
<body>

<h1 align=center>TIFFDataWidth</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFDataWidth &minus; Get the size of TIFF data types</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>int TIFFDataWidth(TIFFDataType</b>
<i>type</i><b>)</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFDataWidth</i> returns a size of <i>type</i> in
bytes. Currently following data types are supported:<i><br>
TIFF_BYTE<br>
TIFF_ASCII<br>
TIFF_SBYTE<br>
TIFF_UNDEFINED<br>
TIFF_SHORT<br>
TIFF_SSHORT<br>
TIFF_LONG<br>
TIFF_SLONG<br>
TIFF_FLOAT<br>
TIFF_IFD<br>
TIFF_RATIONAL<br>
TIFF_SRATIONAL<br>
TIFF_DOUBLE</i></p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFDataWidth</i> returns a number of bytes occupied
by the item of given type. 0 returned when uknown data type
supplied.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>libtiff</b>(3TIFF),</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�)���html/man/TIFFError.3tiff.htmlnu�[���<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Sat Feb 24 18:37:16 2007 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>TIFFError</title>
</head>
<body>

<h1 align=center>TIFFError</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p>TIFFError, TIFFSetErrorHandler &minus; library error
handling interface</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>#include &lt;tiffio.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>void TIFFError(const char *</b><i>module</i><b>, const
char *</b><i>fmt</i><b>,</b> <i>...</i><b>)</b></p>
<!-- INDENTATION -->
<p><b>#include &lt;stdarg.h&gt;</b></p>
<!-- INDENTATION -->
<p><b>typedef void (*TIFFErrorHandler)(const char
*</b><i>module</i><b>, const char *</b><i>fmt</i><b>,
va_list</b> <i>ap</i><b>);<br>
TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler
handler);</b></p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFError</i> invokes the library-wide error handling
function to (normally) write an error message to the
<b>stderr</b>. The <i>fmt</i> parameter is a
<i>printf</i>(3S) format string, and any number arguments
can be supplied. The <i>module</i> parameter, if non-zero,
is printed before the message; it typically is used to
identify the software module in which an error is
detected.</p>
<!-- INDENTATION -->
<p>Applications that desire to capture control in the event
of an error should use <i>TIFFSetErrorHandler</i> to
override the default error handler. A <small>NULL</small>
(0) error handling function may be installed to suppress
error messages.</p>
</td>
</table>
<a name="RETURN VALUES"></a>
<h2>RETURN VALUES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><i>TIFFSetErrorHandler</i> returns a reference to the
previous error handling function.</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="8%"></td>
<td width="91%">
<p><b>TIFFWarning</b>(3TIFF), <b>libtiff</b>(3TIFF),
<b>printf</b>(3)</p>
<!-- INDENTATION -->
<p>Libtiff library home page:
<b>http://www.simplesystems.org/libtiff/</b></p>
</td>
</table>
<hr>
</body>
</html>
PK粐\�����%html/man/TIFFFieldDataType.3tiff.htmlnu�[���<!-- Creator     : groff version 1.21 -->
<!-- CreationDate: Sun Jul 29 12:12:01 2012 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="Content-Style" content="text/css">
<style type="text/css">
       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
       h1      { text-align: center }
</style>
<title>TIFFFieldDataType</title>

</head>
<body>

<h1 align="center">TIFFFieldDataType</h1>

<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUES">RETURN VALUES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>


<h2>NAME
<a name="NAME"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em">TIFFFieldDataType
&minus; Get TIFF data type from field information</p>

<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em"><b>#include
&lt;tiffio.h&gt;</b></p>


<p style="margin-left:11%; margin-top: 1em"><b>TIFFDataType
TIFFFieldDataType(const TIFFField*</b>
<i>fip</i><b>)</b></p>

<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>TIFFFieldDataType</b>
returns the data type stored in a TIFF field.</p>

<p style="margin-left:11%; margin-top: 1em"><i>fip</i> is a
field information pointer previously returned by
<b>TIFFFindField</b>, <b>TIFFFieldWithTag</b>, or
<b>TIFFFieldWithName</b>.</p>

<h2>RETURN VALUES
<a name="RETURN VALUES"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>TIFFFieldDataType</b>
returns a member of the enum type <b>TIFFDataType</b>.</p>

<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>libtiff</b>(3TIFF),</p>

<p style="margin-left:11%; margin-top: 1em">Libtiff library
home page: <b>http://www.simplesystems.org/libtiff/</b></p>
<hr>
</body>
</html>
PK粐\��l"��html/v3.4beta036.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.4beta036
</TITLE>
</HEAD>

<BODY>
<FONT FACE="Arial, Helvetica, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.4beta036<BR>
<B>Previous Version</B>: <A HREF=v3.4beta035.html>v3.4beta035</A><BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.sgi.com/graphics/tiff">ftp.sgi.com (192.48.153.1), directory graphics/tiff</A><BR>
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
<LI>support was added for building the library as a DSO under HP-UX with 
    the native C compiler
<LI>tools are now built with explicit pathnames for the DSO under IRIX,
    Solaris, and Linux
<LI>DSO configuration support for Linux was changed to require that
    <B>libc.so</B> only be readable (not executable)
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
<LI>support was add for ICC: <TT>NumberOfInks</TT>, and <TT>ICCProfile</TT>
<LI>a memory leak caused by doing <TT>TIFFSetDirectory(0)</TT> was fixed
<LI>a bug was fixed whereby certain multi-directory files were not
    properly handled when accessed by mapping the data into memory 
<LI>the strip chopping support is now always compiled
    into the library with the default usage controlled by a
    <TT>STRIPCHOP_DEFAULT</TT> configuration parameter
<LI>the strip chopping support no longer chops tiled images
<LI>all static strings are now const--for shared libraries
<LI>the logic for estimating the strip size of images without
    a <TT>StripByteCounts</TT> tag was improved by handling
    <TT>PlanarContig</TT> images differently from <TT>PlanarSeparate</TT>
<LI>a bug was fixed in the G3 codec when converting the Y resolution
    of data specified in metric units
<LI>a bug was fixed in the G3/G4 decoder for data where lines terminate
    with a v0 code
<LI>the <TT>TIFFRGBAImage</TT> support was changed to scale 16-bit colormap
    entries more conservatively to avoid problems with applications
    that do not generate fully saturated pixel values
<LI>the LZW decoder was changed to use a more conservative scheme when
    bounds checking the hash table array; this avoids pitfalls with
    systems that load objects into memory in unusual locations
<LI>a bug was fixed in <TT>TIFFPrintDirectory</TT>'s handling of the
    <TT>InkNames</TT> tag
<LI><TT>TIFFPrintDirectory</TT> now understands <TT>NumberOfInks</TT>
    and ICC-related tags
<LI>the routines for reading image data now provide more useful information
    when a read error is encountered
<LI>support was added for compiling with Microsoft Visual C++ 4.0
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
<LI>a bug was fixed in <B>pal2rgb</B>'s colormap handling
<LI><B>tiff2ps</B> now includes John Wehle's changes for maintaining 
    the aspect ratio
    of images when scaling and for honoring the deadzone on a page when
    generating PostScript Level II
<LI><B>tiff2ps</B> does a better job guarding against the mishandling
    of greyscale images
<LI><B>tiff2ps</B> now correctly converts X- and Y-resolution values
    specified in metric units
<LI><B>tiffdump</B> has a new <TT>-m</TT> option to control the maximum
    number of indirect
    data values printed for a tag (by default 24)
<LI><B>tiffdump</B> understands several new tags
<LI><B>tiffdump</B> now shows any terminating null in ASCII strings
<LI><B>tiffinfo</B> now suppresses strip chopping when interpreting an image;
    a new <TT>-z</TT> option has been added to enable strip chopping
</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

<ADDRESS>
<A HREF="sam.html">Sam Leffler</A> / <A HREF="mailto:sam@engr.sgi.com">sam@engr.sgi.com</A>
Last updated $Date: 2016-09-25 20:05:45 $.
</ADDRESS>

</BODY>
</HTML>
PK粐\�tqr}}html/v3.5.1.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.5.1
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Arial, Helvetica, Sans">
<FONT FACE="Arial, Helvetica, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.5.1<BR>
<B>Previous Version</B>: v3.4beta037<BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.onshore.com/pub/libtiff">ftp.onshore.com, directory graphics/tiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff//>http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
		  <LI> <em> None of consequence </em> 
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>


<UL>
<LI> Support was added for IPTC Newsphoto metadata (TIFFTAGE_IPTCNEWSPHOTO)
<LI> Support was added for photoshop caption handling (TIFFTAG_PHOTOSHOP)
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
<LI> <A HREF=mailto:billr@corbis.com>Bill Radcliffe's</a> iptcutil was
added to the "contrib" subdirectory .  It can convert an IPTC binary
blob to ASCII text and vice-versa.  The blob itself can be extracted
from or added to an image with the <A
href=http://www.ImageMagick.org/>ImageMagick</a> convert(1)
utility.
</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\	U��html/v3.5.2.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.5.2
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Arial, Helvetica, Sans">
<FONT FACE="Arial, Helvetica, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.5.2<BR>
<B>Previous Version</B>: <A HREF=v3.5.1.html>v3.5.1</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.onshore.com/pub/libtiff">ftp.onshore.com, directory graphics/tiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff//">http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
	<LI> Corrected alpha versioning.  

	<LI> Removed distinction between  alpha and release targets in Makefile.in. 

	<LI> Added release.stamp target, which tags cvs tree, and updates 
	  "RELEASE-DATE"

	<LI> Added releasediff target, which diffs tree with source as of 
	  date in "RELEASE-DATE"
	  
	<LI>Ticked up version to 3.5.2 (alpha 01 -- but I think we'll moving 
	  away from alpha/non-alpha distinctions). 

</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>


<UL> 
        <LI> Added IRIX/gcc, and OSF/1 4.x support on behalf of 
	Albert Chin-A-Young <china@thewrittenword.com>

        <LI> Added TIFFReassignTagToIgnore() API on behalf of 
        Bruce Cameron <cameron@petris.com>.  Man page still pending.

        <LI> pre-remove so link before softlink in LINUXdso action in 
	libtiff/Makefile.in to avoid failure on LINUXdso builds other than
	the first.

        <LI> Fixed problem with cvtcmap() in tif_getimage.c modifying the
	colormaps owned by the TIFF handle itself when trying to fixup wrong
	(eight bit) colormaps.  Corrected by maintaining a private copy of
	the colormap. 

	<LI> Added TIFFReadRGBATile()/TIFFReadRGBAStrip() support in 
	tif_getimage.c.

	<LI> Applied "a" mode fix to tif_win32.c/TIFFOpen() as suggested 
	by Christopher Lawton <clawton@mathworks.com>

	<LI> Set O_BINARY for tif_unix.c open() ... used on cygwin for instance.

	<LI> Added CYGWIN case in configure.

	<LI> Applied Francois Dagand's patch to handle fax decompression bug. 
	(sizes >= 65536 were failing) 
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
        <LI> Added addtiffo (add overviews to a TIFF file) in contrib.  Didn't
	    put it in tools since part of it is in C++.
</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\�eL��html/v3.5.3.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.5.3
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Arial, Helvetica, Sans">
<FONT FACE="Arial, Helvetica, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.5.3<BR>
<B>Previous Version</B>: <A HREF=v3.5.2.html>v3.5.2</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.onshore.com/pub/libtiff">ftp.onshore.com</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff//">http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
</UL>
<p> 
The ChangeLog will follow, but please note the most important change: 
LZW compression has been removed. 
<p>
Unisys has the patent on LZW compression and have been very active in
their enforcement of late, demanding payments of $5000 or more from
websites using unlicensed software to create GIF's.  They could well
do the same do persons using libtiff to create LZW compressed TIFF
images.
<p> 
From <A HREF=http://burnallgifs.org>Burn All GIF's Day</a>:
<br> 
<em>The catch is that it appears to be difficult or impossible to get a
Unisys license to use LZW in free software that complies with the Open
Source Definition</em>
<P>
Unfortunatly, the removal of LZW compression means that saved image size has
grown dramatically.  Without a change in the TIFF spec to support
another lossless compression format, this is unavoidable.
<P>
The library can use zip for lossless compression, but as this is not
part of the spec, TIFFs using zip compression may not work with other
software
<P> 
We will be making a patch available that will contain the LZW
compression code for users who have either obtained a license from
Unisys or are willing to risk it. 
<p> 
LZW decompression is unchanged. 
<p> 
<P><HR WIDTH=65% ALIGN=left>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
	<LI> Added zip creation to release makefile target 


</UL>

<P><HR WIDTH=65% ALIGN=left>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>


<UL> 

	<LI> Added html for TIFFWriteTile.3t man page. 
	
	<LI> Added some changes to tif_write.c to support rewriting existing
	fixed sized tiles and strips.  Code mods disabled by default, only
	enabled if REWRITE_HACK is defined for now.

	<LI> Added TIFFWriteTile.3t man page.

	<LI> Added notes on use of makefile.vc in build.html, and fixed 
	email subscription address.

	<LI>  Fixed apocalypse-inducing y2k bug in contrib/ras/ras2tiff.c 

	<LI>  Did some casts cleaning up to reduce compiler warnings in tif_fax3.c,
	   from Bruce Carmeron <cameron@petris.com> -- modifications of 
	   changes made by Frank (sun cc still complained on cast). 

	<LI> fixed various VC++ warnings as suggested by Gilles Vollant
	<info@winimage.com>.  

	<LI> Modified TIFFquery.3t man pages info on TIFFIsByteSwapped() to
	not imply applications are responsible for image data swapping.

	<LI>  HTML-ized the man pages, added to html/man
	
	<LI>  Removed LZW Compression to comply with Unisys patent extortion. 

	<LI>  Corrected one remaining 16 -> 32 bit value in tif_fax3.c, 
	   From Ivo Penzar <ivo.penzar@infolink-software.com. 

	<LI>  Added patch from Ivo Penzar to have TiffAdvanceDirectory handle
	   memory mapped files. <ivo.penzar@infolink-software.com>
</UL>

<P><HR WIDTH=65% ALIGN=left>

<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
	<LI> Fixed apocalypse-inducing y2k bug in contrib/ras/ras2tiff.c 
</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\�=�J	J	html/v3.5.4.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.5.4
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.5.4<BR>
<B>Previous Version</B>: <A HREF=v3.5.3.html>v3.5.3</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.onshore.com/pub/libtiff">ftp.onshore.com</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff//">http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
	<LI> None


</UL>

<P><HR WIDTH=65% ALIGN=left>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>


<UL> 

	<li> Added Pixar tag support.  Contributed by Phil Beffery <phil@pixar.com> 

	<li>  Made one more change to tif_dir.c for removal of LZW compression. Also added notice 
	  when LZW compression invoked. 

        <li> Fixed bug that caused LZW (non) compression to segfault. Added 
	  warning about LZW compression removed being removed, and why. 

</UL>

<P><HR WIDTH=65% ALIGN=left>

<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
	<li> Changed default compression in tools to TIFF_PACKBITS, and changed usage descriptions
	  in tools to reflect removal of LZW compression
	
	<li> Added nostrip to install in tools/Makefile.in so that debugging 
	  symbols are kept. 
	
 	<li> Made Packbits the default compression in tools/tiff2rgba.c instead
	of LZW.


</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\�B�B��html/v3.5.5.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.5.5
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.5.5<BR>
<B>Previous Version</B>: <A HREF=v3.5.4.html>v3.5.4</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.onshore.com/pub/libtiff">ftp.onshore.com</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff//">http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#lzwkit">Changes in the LZW compression kit</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

        <LI> configure: added test for libc6 for linux targets.  Bug reported by 
        Stanislav Brabec <utx@k332.feld.cvut.cz>

         <LI>	configure: fixed bugs in sed scripts 
	(applied sed script s:/@:s;@:;s:/s;;:;: to configure). 
	fix submitted by Stanislav Brabec <utx@k332.feld.cvut.cz>

	<LI> tools/iptcutil was not in files list, and wasn't being 
	added to tar archive.  Updated Makefile.in.

        <LI>  Added 3.5 docs to html/Makefile.in.  
	Thanks to  Stanislav Brabec <utx@k332.feld.cvut.cz>

        <LI> Fixed tools/tiffcmp so that stopondiff testing works.
	     Patch care of Joseph Orost <joe@sanskrit.lz.att.com>.

        <LI> Added fax3sm_winnt.c to distribution list in Makefile.in. 

         <LI> Added libtiff/libtiff.def to TIFFILES distribution list.
</UL>

<P><HR WIDTH=65% ALIGN=left>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>


<UL> 
        <LI>tif_fax3.c: Fixed serious bug introduced during the uint16->uint32 
        conversion for the run arrays.  

	<LI> Set td_sampleformat default to SAMPLEFORMAT_UINT instead of 
	SAMPLEFORMAT_VOID in TIFFDefaultDirectory() in tif_dir.c.

        <LI> Added "GetDefaulted" support for TIFFTAG_SAMPLEFORMAT in tif_aux.c.

	<LI> Patched tif_fax3.c so that dsp->runs is allocated a bit bigger
	to avoid overruns encountered with frle_bug.tif.

        
	<LI> Modified tif_unix.c to support 2-4GB seeks if USE_64BIT_API is
	  set to 1, and added default (off) setting in tiffconf.h.  This
	  should eventually be set by the configure script somehow.

	  The original work on all these 2-4GB changes was done by 
	  Peter Smith (psmith@creo.com).

	<LI> Modified tif_win32.c to support 2-4GB seeks.

	<LI> tentatively changed toff_t to be unsigned instead of signed to
	  facilitate support for 2-4GB files. 

	<LI>  Updated a variety of files to use toff_t.  Fixed some mixups
	      between toff_t and tsize_t.

	<LI> Set tif_rawdatasize to zero when freeing raw data buffer in
	     TIFFWriteDirectory().

         <LI> Enabled "REWRITE_HACK" in tif_write.c by default.
        
         <LI> Fix bug in tif_write.c when switching between reading one directory
	      and writing to another. 

         <LI> Made TIFFWriteCheck() public, and added TIFFCreateDirectory()

         <LI> Added TIFFmemory(3t) functions to libtiff.def.

         <LI> Added libtiff/libtiff.def to TIFFILES distribution list.
</UL>

<P><HR WIDTH=65% ALIGN=left>

<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
	<LI> fax2ps: Fixed mixup of width and height in bounding box statement
	as per submission by Nalin Dahyabhai <nalin@redhat.com>.

	<LI> fax2ps:  Modified printruns to take uint32 instead of uint16.  
	Patch courtesy of Bernt Herd <herd@herdsoft.com> 


	<LI> Largely reimplemented contrib/addtiffo to avoid temp files, 
 	    updating the TIFF file in place.  Fixed a few other bugs to.

       <LI> Altered descriptions in tools to reflect "by default" lzw not supported
</UL>

<P><HR WIDTH=65% ALIGN=left>

<A NAME="lzwkit"><B><FONT SIZE=+3>C</FONT>HANGES IN THE LZW COMPRESSION KIT</B></A>
<UL> 
	<LI>created mangle-src.sh -- sed scripts to munge src into LZW enabled format. Thanks to Stanislav Brabec <utx@k332.feld.cvut.cz>
	
	<LI>created Makefile
	
	<LI>merged  tif_dir.c with current source. 


	<LI>  Created lzw compression kit, as a new CVS module (libtiff-lzw-compression-kit). 

	<LI>  Updated index.html to note lzw compression kit. 

</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\�N�s��html/v3.5.6-beta.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.5.6
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.5.6beta<BR>
<B>Previous Version</B>: <A HREF=v3.5.5.html>v3.5.5</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.onshore.com/pub/libtiff">ftp.onshore.com</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff//">http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in contrib</A>
<LI><A HREF="#lzwkit">Changes in the LZW compression kit</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

	<LI> Added GNULDdso target and switched linux and freebsd to use it. 
	<LI> tools/Makefile.in: Modified to install properly on SGI.
	<LI> configure: Fixed DSO test for Linux as per patch from
	  Jan Van Buggenhout <chipzz@Ace.ULYSSIS.Student.KULeuven.Ac.Be>.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>


<UL> 

	<LI> tif_dir.c: Clear TIFF_ISTILED flag in TIFFDefaultDirectory
	as per http://bugzilla.remotesensing.org/show_bug.cgi?id=18
	from vandrove@vc.cvut.cz.

	<LI> Modified tif_packbits.c decoding to avoid overrunning the
	output buffer, and to issue a warning if data needs to be
	discarded.  See http://bugzilla.remotesensing.org/show_bug.cgi?id=18

	<LI> Modified TIFFClientOpen() to emit an error on an attempt to
	open a comperessed file for update (O_RDWR/r+) access.  This is
	because the compressor/decompressor code gets very confused when
	the mode is O_RDWR, assuming this means writing only.  See
	bug http://bugzilla.remotesensing.org/show_bug.cgi?id=13

	<LI> Applied patch for 0x0000 sequences in tif_fax3.h's definition
	of EXPAND1D() as per bug 11 (from Roman). 

	<LI> Fixed tiffcomp.h to avoid win32 stuff if unix #defined, to improve
	cygwin compatibility.

	<LI> Applied patch from Roman Shpount to tif_fax3.c.  This seems to
	be a proper fix to the buffer sizing problem.  See 
	http://bugzilla.remotesensing.org/show_bug.cgi?id=11

	<LI> Fixed tif_getimage.c to fix overrun bug with YCbCr images without
	downsampling.  http://bugzilla.remotesensing.org/show_bug.cgi?id=10
	Thanks to Nick Lamb <njl98r@ecs.soton.ac.uk> for reporting the
	bug and proving the patch.
	
	<LI> Fixed tif_jpeg.c so avoid destroying the decompressor before
	we are done access data thanks to bug report from:
	Michael Eckstein <eckstein@gepro.cz>.

	<LI> tif_open.c: Don't set MMAP for O_RDWR files.

	<LI> tif_open.c: Set STRIPCHOP_DEFAULT for O_RDWR as well as O_RDONLY
	so that files opened for update can be strip chopped too.

	<LI> tif_read.c: fixed up bug with files missing rowsperstrip and
	the strips per separation fix done a few weeks ago.

	<LI> Tentatively added support for SAMPLEFORMAT_COMPLEXIEEEFP, and
	SAMPLEFORMAT_COMPLEXINT.

	<LI> index.html, bugs.html: added bugzilla info. 

	<LI> tif_read.c: fix subtle bug with determining the number of
	rows for strips that are the last strip in a separation but
	not the last strip of all in TIFFReadEncodedStrip().  

	<LI> Applied 16/32 bit fix to tif_fax3.c.  Fix supplied by
	Peter Skarpetis <peters@serendipity-software.com.au>

	<LI> Modified tiffio.h logic with regard to including windows.h.  It
	won't include it when building with __CYGWIN__.

	<LI> README: update to mention www.libtiff.org, don't list Sam's old
	email address.

	<LI> libtiff/tif_dirread.c: Don't use estimate strip byte count for
	one tile/strip images with an offset, and byte count of zero. These
	could be "unpopulated" images. 

	<LI> tif_win32.c:  Applied patch to fix overreads and ovverwrites
	  caught by BoundsChecker.  From Arvan Pritchard 
	  <arvan.pritchard@infomatix.co.uk>  (untested). 
	
        <LI> tif_getimage.c:  Applied patch to silence VC6 warnings.  From 
	  Arvan Pritchard <arvan.pritchard@informatix.co.uk>
	
	<LI> tif_lzw.c:  Applied patch to silence VC6 warnings.  From 
	  Arvan Pritchard <arvan.pritchard@informatix.co.uk>

	<LI> libtiff/tif_apple.c: Applied "Carbon" support patches supplied by
	Leonard Rosenthol <leonardr@lazerware.com>.  May interfere
	with correct building on older systems.  If so, please let me know.


</UL>

<P><HR WIDTH=65% ALIGN=left>

<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>

	<LI> tools/rgb2ycbcr.c: fixed output strip size to account for vertical 
	roundup if rows_per_strip not a multiple of vertical sample size.

	<LI> tools/tiffsplit.c: Copy TIFFTAG_SAMPLEFORMAT.

	<LI>  Modified tiff2bw to ensure portions add to 100%, and that
	 white is properly recovered.  See bug
	 http://bugzilla.remotesensing.org/show_bug.cgi?id=15 Patch
	 c/o Stanislav Brabec <utx@penguin.cz>

</UL>

<P><HR WIDTH=65% ALIGN=left>

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN CONTRIB:</B></A>

<UL>

	<LI> contrib/addtiffo: Added "averaging" resampling option.

	<LI> Added contrib/stream (stream io) code submitted by Avi Bleiweiss.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<A NAME="lzwkit"><B><FONT SIZE=+3>C</FONT>HANGES IN THE LZW COMPRESSION KIT</B></A>
<UL> 

    <LI> updated tif_dir.c to reflect changes to no-lzw tif_dir.c

</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\-�C$'$'html/v3.5.7.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.5.7
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.5.7<BR>
<B>Previous Version</B>: <A HREF=v3.5.6-beta.html>v3.5.6 Beta</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff//">http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#lzwkit">Changes in the LZW compression kit</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
<li> libtiff/libtiff.def: Brent Roman submitted new version adding
serveral missing entry points.  Also add a few other entry points 
later.

<li> configure, Makefile.in, etc: added support for OPTIMIZER being
	set from config.site. 
<li> config.guess: updated wholesale to an FSF version apparently 
	from 1998 (as opposed to 1994).  This is mainly inspired by 
	providing for MacOS X support.

<li> configure/config.site: modified to check if -lm is needed for
	MACHDEPLIBS if not supplied by config.site.  Needed for Darwin.
<li> libtiff/tiff.h: Applied hac to try and resolve the problem
	with the inttypes.h include file on AIX. (Bug 39)

<li> configure, *Makefile.in: Various changes to improve configuration
	for HP/UX specifically, and also in general.  (Bug 40) They include:
<ul>
 <li> Try to handle /usr/bin/sh instead of /bin/sh where necessary.
 <li> Upgrade to HP/UX 10.x+ compiler, linker and dso options.
 <li> Fixed mmap() test to avoid MMAP_FIXED ... it isn't available on HP
 <li> Use -${MAKEFLAGS} in sub makes from makefiles.
 <li> Fixed SCRIPT_SH/SHELL handling.
</ul>
<li> configure: Changes for DSO generation on AIX provided by
	John Marquart <jomarqua@indiana.edu>.

<li> configure, libtiff/Makefile.in: Modified to build DSOs properly
	on Darwin thanks to Robert Krajewski (rpk@alum.mit.edu) and
	Keisuke Fujii (fujiik@jlcuxf.kek.jp).

<li> configure, libtiff/Makefile.in: applied OpenBSD patches as per bug 61.

<li> Makefile.in: added DESTDIR support as per bug 60.

<li> libtiff/tif_jpeg.c: Define HAVE_BOOLEAN on windows if RPCNDR.H 
	has been included.
<li> man/Makefile.in: add TIFFClientOpen link as per debian submitted
	bug 66.
<li> libtiff/Makefile.in: Fixed @DSOSUB_VERSION to be @DSOSUF_VERSION@
	in two places.
</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>


<UL> 
<li> tif_fax3.c: keep rw_mode flag internal to fax3 state to remember
	whether we are encoding or decoding.  This is to ensure graceful 
	recovery if TIFFClientOpen() discovers an attempt to open a compressed
	file for "r+" access, and subsequently close it, as it resets the 
	tif_mode flag to O_RDONLY in this case to avoid writes, confusing the
	compressor's concept of whether it is in encode or decode mode.
<li> tif_luv.c/tiff.h/tiffio.h: 
	New version of TIFF LogLuv (SGILOG) modules contributed by Greg Ward 
	(greg@shutterfly.com).  He writes:

<ol>
	<li> I improved the gamut-mapping function in tif_luv.c for imaginary
	colors, because some images were being super-saturated on the input 
	side and this resulted in some strange color shifts in the output.

	<li> I added a psuedotag in tiff.h to control random dithering during
	LogLuv encoding.  This is turned off by default for 32-bit LogLuv and 
	on for 24-bit LogLuv output.  Dithering improves the average color 
	accuracy over the image.

	<li> I added a #define for LOG_LUV_PUBLIC, which is enabled by default in
	tiffio.h, to expose internal routines for converting between LogLuv and
	XYZ coordinates.  This is helpful for writing more efficient,
	specialized conversion routines, especially for reading LogLuv files.
</ol>

<li> libtiff/tif_dirinfo.c: don't declare tiffFieldInfo static on VMS.

<li> Added TIFFTAG_COPYRIGHT support.
<li> tif_getimage.c: Added support for 16bit minisblack/miniswhite 
	images in RGBA interface.
<li> libtiff/tif_dirinfo.c: removed duplicate TIFFTAG_PHOTOSHOP as per
	bug 44.
<li> libtiff/tif_dirwrite.c: Added support for TIFF_VARIABLE2 in the
	case of writing TIFF_BYTE/TIFF_SBYTE fields as per bug 43.

<li> libtiff/tif_dirinfo.c: Modified the TIFF_BYTE definition for
	TIFFTAG_PHOTOSHOP to use a writecount of TIFF_VARIABLE2 (-3) to
	force use of uint32 counts instead of short counts. 

<li> libtiff/tif_dirinfo.c: moved pixar and copyright flags to 
	ensure everything is in order.

<li> Integrated experimental OJPEG support from Scott Marovich of HP.  

<li> libtiff/tif_open.c: Seek back to zero after failed read,
	before writing header.

<li> libtiff/tiff.h, libtiff/tif_fax3.c: added check for __LP64__ 
	when checking for 64 bit architectures as per bugzilla bug 67.
<li> libtiff/tif_getimage.c: Use memmove() instead of TIFFmemcpy()
	in TIFFReadRGBATile() to avoid issues in cases of overlapping
	buffers.  See Bug 69 in Bugzilla. 
<li> libtiff/tif_getimage.c: Don't complain for CMYK (separated)
	images with more than four samples per pixel as per bug 73.

<li> libtiff/tif_getimage.c: relax handling of contig case where
there are extra samples that are supposed to be ignored as per bug 75.  This
should now work for 8bit greyscale or palletted images.  

<li> libtiff/tif_packbits.c: fixed memory overrun error as per bug 77.

<li> libtiff/tif_getimage.c: Fixed problem with reading strips or
tiles that don't start on a tile boundary.  Fix contributed by
Josep Vallverdu (from HP), and further described in bug 47.

<li> libtif/tif_fax3.c: Removed #ifdef PURIFY logic, and modified to
	always use the "safe" version, even if there is a very slight
	cost in performance as per bug 54.
<li> libtiff/tif_lzw.c: added dummy LZWSetupEncode() to report an
	error about LZW not being available.

<li> libtiff/tif_dir.c: propagate failure to initialize compression
	back from TIFFSetField() as an error status, so applications can 
	detect failure.

<li> libtiff/tif_lzw.c: Avoid MS VC++ 5.0 optimization bug as per bug 78.

<li> libtiff/tif_dirwrite.c: added TIFFRewriteDirectory() function.
Updated TIFFWriteDirectory man page to include TIFFRewriteDirectory.

<li> libtiff/tiff.h: I have created COMPRESSION_CCITT_T4, 
	COMPRESSION_CCITT_T6, TIFFTAG_T4OPTIONS and TIFFTAG_T6OPTIONS aliases 
	in keeping with TIFF 6.0 standard in tiff.h as per bug 83.

<li> Added PHOTOMETRIC_ITULAB as per bug 90.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->

<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
<li> Brent Roman contributed updated tiffcp utility (and tiffcp.1)
	with support for extracting subimages with the ,n syntax, and also
	adding the -b bias removal flag. 
<li> tiff2ps.c/tiff2ps.1: Substantial changes to tiff2ps by
	Bruce A. Mallett, including a faster encoder, fixes for level
	2 PostScript, and support for the imagemask operator.
<li> fax2ps.c: Helge (libtiff at oldach.net) submitted fix
that corrects behaviour for non-Letter paper
sizes. (Bug 35) It fixes two problems:
<br>
	Without	scaling (-S) the fax is now centered on the page size specified
	with -H	and/or -W. Before, fax2ps was using an obscure and practially
	useless algorithm to allocate the image relative to Letter sized paper
	which sometime sled to useless whitespace on the paper, while at the
	same time cutting of the faxes printable area at the opposite border.
<br>

	Second, scaling now preserves aspect ratio, which makes unusual faxes
	(in particular short ones) print properly.

<li> thumbnail.c: changed default output compression
	to packbits from LZW since LZW isn't generally available.
<li> tiff2rgba.c: added -n flag to avoid emitting alpha component. Also added
a man page for tiff2rgba.

<li> tiffcmp.c: Fixed multi samples per pixel support for ContigCompare
as per bug 53.
Updated bug section of tiffcmp.1 to note tiled file issues.

<li> libtiff/tif_getimage.c: Fixed so that failure is properly
	reported by gtTileContig, gtStripContig, gtTileSeparate and 
	gtStripSeparate as per bug 51.


</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="lzwkit"><B><FONT SIZE=+3>C</FONT>HANGES IN THE LZW COMPRESSION KIT:</B></A>
<UL> 
	<LI> Rewrote lzw patching process so that is required to enable full
	LZW support is to drop the tif_lzw.c from the 
	libtiff-lzw-compression-kit over the one in the libtiff directory. 

	<LI> Some changes were made to make recovery from failure to
	initialize the LZW compressor more graceful.

	<LI> Note that as distributed libtiff support LZW decompression, but
        not LZW compression. 
</UL>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>
<UL> 
<li> Fixed distribution to include contrib/addtiffo/tif_ovrcache.{c,h}.
</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\�3p��A�Ahtml/v3.6.0.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.6.0
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.6.0<BR>
<B>Previous Version</B>: <A HREF=v3.5.7.html>v3.5.7</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#hightlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
<LI><A HREF="#lzwkit">Changes in the LZW compression kit</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<ul>
	<li> New utility <a href=./man/raw2tiff.1.html>raw2tiff</a>
for converting raw rasters into TIFF files.
	<li> Lots of new <a href=./man/tiff2ps.1.html>tiff2ps</a> options.
	<li> Lots of new <a href=./man/fax2tiff.1.html>fax2tiff</a> options.
	<li> Lots of bug fixes for LZW, JPEG and OJPEG compression. 
</ul>

<h3>Custom Tag Support</h3>

The approach to extending libtiff with custom tags has changed radically.
Previously, all internally supported TIFF tags had a place in the 
private TIFFDirectory structure within libtiff to hold the values (if read),
and a "field number" (ie. FIELD_SUBFILETYPE) used to identify that tag. 
However, every time a new tag was added to the core, the size of the
TIFFDirectory structure would changing, breaking any dynamically linked
software that used the private data structures.<p>

Also, any tag not recognised
by libtiff would not be read and accessable to applications without some
fairly complicated work on the applications part to pre-register the tags
as exemplified by the support for "Geo"TIFF tags by libgeotiff layered on
libtiff.  <p>

Amoung other things this approach required the extension code
to access the private libtiff structures ... which made the higher level
non-libtiff code be locked into a specific version of libtiff at compile time.
This caused no end of bug reports!<p>

The new approach is for libtiff to read all tags from TIFF files.  Those that
aren't recognised as "core tags" (those having an associated FIELD_ value, 
and place for storage in the TIFFDirectory structure) are now read into a 
dynamic list of extra tags (td_customValues in TIFFDirectory).  When a new
tag code is encountered for the first time in a given TIFF file, a new 
anonymous tag definition is created for the tag in the tag definition list. 
The type, and some other metadata is worked out from the instance encountered.
These fields are known as "custom tags".  <p>

Custom tags can be set and fetched normally using TIFFSetField() and 
TIFFGetField(), and appear pretty much like normal tags to application code.
However, they have no impact on internal libtiff processing (such as
compression).  Some utilities, such as tiffcp will now copy these custom
tags to the new output files. <p>

As well as the internal work with custom tags, new C API entry points
were added so that extension libraries, such as libgeotiff, could 
define new tags more easily without accessing internal data structures.  
Because tag handling of extension tags is done via the "custom fields" 
mechanism as well, the definition provided externally mostly serves to provide
a meaningful name for the tag.

The addition of "custom tags" and the altered approach to extending libtiff
with externally defined tags is the primary reason for the shift to the 
3.6.x version number from 3.5.x.<p>

<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
<li> configure, config.site: Fix for large files (>2GiB) support. New
option in the config.site: LARGEFILE="yes". Should be enougth for the large
files I/O.

<li> configure: Set -DPIXARLOG_SUPPORT option along with -DZIP_SUPPORT.

<li> html/Makefile.in: Updated to use groffhtml for generating html pages
from man pages.

<li> configure, libtiff/Makefile.in: Added SCO OpenServer 5.0.6 support
from John H. DuBois III.  

<li> libtiff/{Makefile.vc, libtiff.def}: Missed declarations added.

<li> libtiff/Makefile.in, tools/Makefile.in: Shared library will not be
stripped when installing, utility binaries will do be stripped. As per bug 93.

<li> man/Makefile.in: Patch DESTDIR handling as per bug 95.

<li> configure: OpenBSD changes for Sparc64 and DSO version as per bug 96.

<li> config.site/configure: added support for OJPEG=yes option to enable
OJPEG support from config.site.

<li> config.guess, config.sub: Updated from ftp.gnu.org/pub/config.

<li> configure: Modify CheckForBigEndian so it can work in a cross
compiled situation.

<li> configure, libtiff/Makefile.in: Changes for building on MacOS 10.1
as per bug 94.

<li> html/Makefile.in: added missing images per bug 92.

<li> port/Makefile.in: fixed clean target per bug 92.
</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>

<li> libtiff/tif_getimage.c: New function <A
HREF="./man/TIFFReadRGBAImage.3t.html">TIFFReadRGBAImageOriented()</A>
implemented to retrieve raster array with user-specified origin position.

<li> libtiff/tif_fax3.c: Fix wrong line numbering.

<li> libtiff/tif_dirread.c: Check field counter against number of fields.

<li> Store a list of opened IFD to prevent directory looping.

<li> libtiff/tif_jpeg.c: modified segment_height calculation to always
be a full height tile for tiled images.  Also changed error to just
be a warning.

<li> libtiff/tif_lzw.c: fixed so that decoder state isn't allocated till
LZWSetupDecode().  Needed to read LZW files in "r+" mode.
	
<li> libtiff/tif_dir.c: fixed up the tif_postdecode settings responsible
for byte swapping complex image data.
	
<li> libtiff/tif_open.c: Removed error if opening a compressed file
in update mode bug (198).

<li> libtiff/tif_write.c: TIFFWriteCheck() now fails if the image is
a pre-existing compressed image.  That is, image writing to pre-existing
compressed images is not allowed.

<li> html/man/*.html: Web pages regenerated from man pages.

<li> libtiff/tif_jpeg.c: Hack to ensure that "boolean" is defined properly
on Windows so as to avoid the structure size mismatch error from libjpeg
(bug 188).

<li> libtiff/tiff.h: #ifdef USING_VISUALAGE around previous Visual Age
AIX porting hack as it screwed up gcc. (bug 39)

<li> libtiff/tiff.h: added COMPRESSION_JP2000 (34712) for LEAD tools
custom compression.

<li> libtiff/tif_dirread.c: Another fix for the fetching SBYTE arrays
by the TIFFFetchByteArray() function. (bug 52)

<li> libtiff/tif_dirread.c: Expand v[2] to v[4] in TIFFFetchShortPair()
as per bug 196.

<li> libtiff/tif_lzw.c: Additional consistency checking added in
LZWDecode() and LZWDecodeCompat() fixing bugs 190 and 100.

<li> libtiff/tif_lzw.c: Added check for valid code lengths in LZWDecode()
and LZWDecodeCompat(). Fixes bug 115.

<li> tif_getimage.c: Ensure that TIFFRGBAImageBegin() returns the
return code from the underlying pick function as per bug 177.

<li> libtiff/{tif_jpeg.c,tif_strip.c,tif_print.c}: Hacked tif_jpeg.c to
fetch TIFFTAG_YCBCRSUBSAMPLING from the jpeg data stream if it isn't
present in the tiff tags as per bug 168.

<li> libtiff/tif_jpeg.c: Fixed problem with setting of nrows in 
JPEGDecode() as per bug 129. 

<li> libtiff/tif_read.c, libtiff/tif_write.c: TIFFReadScanline() and
TIFFWriteScanline() now set tif_row explicitly in case the codec has
fooled with the value as per bug 129.

<li> libtiff/tif_ojpeg.c: Major upgrade from Scott.  Details in bug 156.

<li>  libtiff/tif_open.c: Pointers to custom procedures
in TIFFClientOpen() are checked to be not NULL-pointers.

<li> libtiff/tif_lzw.c: Assertions in LZWDecode and LZWDecodeCompat
replaced by warnings. Now libtiff should read corrupted LZW-compressed
files by skipping bad strips as per bug 100.
	
<li> libtiff/: tif_dirwrite.c, tif_write.c, tiffio.h:
<a href=./man/TIFFWriteDirectory.3t.html>TIFFCheckpointDirectory()</a>
routine added as per bug 124.  The
<a href=./man/TIFFWriteDirectory.3t.html>TIFFWriteDirectory</a>
man page discusses this new function as well as the related 
<a href=./man/TIFFWriteDirectory.3t.html>TIFFRewriteDirectory()</a>.

<li> libtiff/: tif_codec.c, tif_compress.c, tiffiop.h, tif_getimage.c: 
Introduced
additional members tif->tif_decodestatus and tif->tif_encodestatus
for correct handling of unconfigured codecs (we should not try to read
data or to define data size without correct codecs). See bug 119.

<li> tif_dirread.c: avoid div-by-zero if rowbytes is zero in chop func as
per bug 111.

<li> libtiff/: tiff.h, tif_dir.c, tif_dir.h, tif_dirinfo.c, tif_dirread.c,
tif_dirwrite.c: Dwight Kelly added get/put code for new tag XMLPACKET as 
defined in Adobe XMP Technote. Added missing INKSET tag value from TIFF 6.0 
spec INKSET_MULTIINK (=2). Added missing tags from Adobe TIFF technotes: 
CLIPPATH, XCLIPPATHUNITS, YCLIPPATHUNITS, OPIIMAGEID, OPIPROXY and
INDEXED. Added PHOTOMETRIC tag value from TIFF technote 4 ICCLAB (=9).

<li> libtiff/tif_getimage.c: Additional check for supported codecs added in 
TIFFRGBAImageOK, TIFFReadRGBAImage, TIFFReadRGBAStrip and TIFFReadRGBATile now
use TIFFRGBAImageOK before reading a per bug 110.

<li> libtiff/: tif_dir.c, tif_dir.h, tif_dirinfo.c, tif_dirread.c,
tif_dirwrite.c: Added routine
<a href=./man/TIFFDataWidth.3t.html>TIFFDataWidth</a> for determining
TIFFDataType sizes instead of working with tiffDataWidth array
directly as per bug 109.

<li>libtiff/: tif_dirinfo.c, tif_dirwrite.c: Added possibility to
read broken TIFFs with LONG type used for TIFFTAG_COMPRESSION,
TIFFTAG_BITSPERSAMPLE, TIFFTAG_PHOTOMETRIC as per bug 99.

<li> libtiff/{tiff.h,tif_fax3.c}: Add support for __arch64__ as per bug 94.

<li> libtiff/tif_read.c: Fixed TIFFReadEncodedStrip() to fail if the
decodestrip function returns anything not greater than zero as per bug 97.

<li> libtiff/tif_jpeg.c: fixed computation of segment_width for 
tiles files to avoid error about it not matching the 
cinfo.d.image_width values ("JPEGPreDecode: Improper JPEG strip/tile 
size.") for ITIFF files.  Apparently the problem was incorporated since
3.5.5, presumably during the OJPEG/JPEG work recently.

<li> libtiff/tif_getimage.c: If DEFAULT_EXTRASAMPLE_AS_ALPHA is 1 
(defined in tiffconf.h - 1 by default) then the RGBA interface
will assume that a fourth extra sample is ASSOCALPHA if the
EXTRASAMPLE value isn't set for it.  This changes the behaviour of
the library, but makes it work better with RGBA files produced by
lots of applications that don't mark the alpha values properly.
As per bugs 93 and 65.

<li> libtiff/tif_jpeg.c: allow jpeg data stream sampling values to 
override those from tiff directory.  This makes this work with 
ImageGear generated files. 

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
	
<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Added page size setting
when creating PS Level 2.

<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Fixed PS comment emitted when
FlateDecode is being used.

<li> <a href=./man/tiffsplit.1.html>tiffsplit</a>: increased the maximum
number of pages that can be split.

<li> <a href=./man/raw2tiff.1.html>raw2tiff</a>: Added option `-p' to
explicitly select color	space of input image data.

<li> <a href=./man/tiffmedian.1.html>tiffmedian</a>: Suppiort for large
(> 2GB) images.

<li> <a href=./man/ppm2tiff.1.html>ppm2tiff</a>: Fixed possible endless loop.

<li> <a href=./man/tiff2rgba.1.html>tiff2rgba</a>: Switched to use
<A HREF="./man/TIFFReadRGBAImage.3t.html">TIFFReadRGBAImageOriented()</A>
instead of <A HREF="./man/TIFFReadRGBAImage.3t.html">TIFFReadRGBAImage()</A>.

<li> <a href=./man/tiffcmp.1.html>tiffcmp</a>: Fixed problem with unused data
comparing (bug 349). `-z' option now can be used to set the number of reported
different bytes.

<li> <a href=./man/tiffcp.1.html>tiffcp</a>: Added possibility to specify
value -1 to -r option to get the entire image as one strip (bug 343).

<li> <a href=./man/tiffcp.1.html>tiffcp</a>: Set the correct RowsPerStrip
and PageNumber values (bug 343).
	
<li> <a href=./man/fax2tiff.1.html>fax2tiff</a>: Page numbering fixed (bug
341).

<li> <a href=./man/ppm2tiff.1.html>ppm2tiff</a>: PPM header parser improved:
now able to skip comments.

<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Force deadzone printing when
EPS output specified (bug 325).

<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Add ability to generate
PS Level 3. It basically allows one to use the /flateDecode filter for ZIP
compressed TIFF images. Patch supplied by Tom Kacvinsky (bug 328).
	
<li> <a href=./man/tiffcp.1.html>tiffcp</a>: Fixed problem with colorspace
conversion for JPEG encoded images (bugs 23 and 275)

<li> <a href=./man/fax2tiff.1.html>fax2tiff</a>: Applied patch from
Julien Gaulmin. More switches for fax2tiff tool for better control
of input and output (bugs 272 and 293).

<li> <a href=./man/raw2tiff.1.html>raw2tiff</a>:
New utility for turning raw raster images into TIFF files
written by Andrey Kiselev.

<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>:
Sebastian Eken provided patches (bug 200) to add new these new 
switches:
  <ul>
    <li> <b>-b #</b>: for a bottom margin of # inches
    <li> <b>-c</b>: center image
    <li> <b>-l #</b>: for a left margin of # inches
    <li> <b>-r</b>: rotate the image by 180 degrees
  </ul>

Also, new features merged with code for shrinking/overlapping.

<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Don't emit BeginData/EndData
DSC comments since we are unable to properly include the amount to skip
as per bug 80.

<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Added workaround for some
software that may crash when last strip of image contains fewer number
of scanlines than specified by the `/Height' variable as per bug 164.

<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Patch from John Williams to add new 
functionality for tiff2ps utility splitting long images in several pages as
per bug 142. New switches:
	<ul>
		<li> <b>-H #</b>: split image if height is more than # inches
		<li> <b>-L #</b>: overLap split images by # inches
	</ul>

<li>  <a href=./man/tiff2ps.1.html>tiff2ps</a>: New commandline
switches to override resolution units obtained from the input file per bug 131:
	<ul>
		<li> <b>-x</b>: override resolution units as centimeters
		<li> <b>-y</b>: override resolution units as inches
	</ul>

<li> <a href=./man/fax2tiff.1.html>fax2tiff</a>: Updated to reflect
latest changes in libtiff per bug 125.

<li> tiff2ps: Division by zero fixed as per bug 88.

<li> <a href=./man/tiffcp.1.html>tiffcp<a>:
Added support for 'Orientation' tag.

<li> <a href=./man/tiffdump.1.html>tiffdump</a>:
include TIFFTAG_JPEGTABLES in tag list.

<li> tiffset: fix bug in error reporting.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>
<UL> 

<li> Fixed distribution to include contrib/addtiffo/tif_ovrcache.{c,h}.
<li> libtiff/contrib/win95: renamed to contrib/win_dib.  Added new 
Tiffile.cpp example of converting TIFF files into a DIB on Win32 as per 
bug 143.

</UL>

<!--------------------------------------------------------------------------->

<A NAME="lzwkit"><B><FONT SIZE=+3>C</FONT>HANGES IN THE LZW COMPRESSION
KIT:</B></A>
<UL> 

<li> LZW compression kit synchronized with actual libtiff version.

</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\a�t���html/v3.6.1.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.6.1
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.6.1<BR>
<B>Previous Version</B>: <A HREF=v3.6.0.html>v3.6.0</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#hightlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
<LI><A HREF="#lzwkit">Changes in the LZW compression kit</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<ul>
	<li> New utility <a href="./man/tiff2pdf.1.html">tiff2pdf</a>
	for converting TIFF images directly into PDF.
	<li> New <a href="./man/TIFFcolor.3t.html">color conversion module</a>.
	<li> Full support for Orientation tag in
	<a href="./man/TIFFReadRGBAImage.3t.html">TIFFRGBAImage</a> interface.
	<li> Many bugs fixed.
</ul>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

<li> libtiff/makefile.vc, tools/makefile.vc: Support for IJG JPEG library.

<li> Makefile.in: Add an absolute path to the test_pics.sh call.

<li> Makefile.in: Add an absolute path to the test_pics.sh call.

<li> libtiff/tiffcomp.h: #define _BSDTYPES_DEFINED when defining BSD typedefs.

<li> configure, libtiff/{Makefile.in, mkversion.c}: Relative buildings fixed.

<li> Makefile.in: Add an absolute path to the test_pics.sh call.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>

<li> libtiff/{tif_color.c, tif_getimage.c, tiffio.h}: Added support
for ReferenceBlackWhite tag handling when converted from YCbCr color space as
per bug 120.

<li> libtiff/{tif_getimage.c, tif_aux.c}: Read WhitePoint tag from the
file and properly use it for CIE Lab 1976 to RGB transform.

<li> libtiff/{tif_getimage.c, tiffio.h}: Finally resolved problems with
orientation handling. TIFFRGBAImage interface now properly supports all
possible orientations, i.e. images will be flipped both in horizontal and
vertical directions if required. 'Known bugs' section now removed from the
appropriate manual pages.

<li> libtiff/tif_luv.c: Fixed bug in 48-bit to 24-bit conversion routine,
reported by Antonio Scuri.

<li> libtiff/{tiffio.h, tif_codec.c}: Added new function
TIFFIsCODECConfigured(), suggested by Ross Finlayson.

<li> libtiff/tif_ojpeg.c: TIFFVGetField() function now can properly extract
the fields from the OJPEG files. Patch supplied by Ross	Finlayson.

<li> libtiff/tif_dir.h: _TIFFFindOrRegisterdInfo declaration replaced
with _TIFFFindOrRegisterFieldInfo as reported by Ross Finlayson.

<li> libtiff/tif_dirinfo.c: Implemented binary search in _TIFFMergeFieldInfo().
Patch supplied by Ross Finlayson.

<li> tif_dirread.c: do not mark all anonymously defined tags to be IGNOREd (as
it was done in 3.6.0).

<li> libtiff/{tiff.h, tif_dirinfo.c}: Added support for IFD (13) datatype,
intruduced in "Adobe PageMaker TIFF Technical Notes".

<li> libtiff/{tif_color.c, tif_getimage.c, tiffio.h}: New color space
conversion code: CIE L*a*b* 1976 images now supported by the TIFFRGBAImage
interface. YCbCr to RGB conversion code also moved there and now has
<a href="./man/TIFFcolor.3t.html">publicly available interface</a>. These
routines currently used in TIFFRGBAImage interface only and not supported in
other libtiff tools yet. So if you want, for example, to convert CIE Lab image
into PostScript file you should do it in two steps: chnge colorspace to RGB
using <a href="./man/tiff2rgba.1.html">tiff2rgba</a> utility abd then process
it with the <a href="./man/tiff2ps.1.html">tiff2ps</a>.

<li> libtiff/tif_tile.c: Remove spurious use of "s" (sample) in the
planarconfig_contig case in TIFFComputeTile() as per bug 387

<li> libtiff/tiffiop.h: New macros: TIFFmax and TIFFmin.

<li> libtiff/{tiffio.h, tif_strip.c}: Added TIFFRawStripSize() function
as suggested by Chris Hanson.

<li> libtiff/{tif_lzw.c, tif_fax3.c}: Proper support for update mode
as per bug 424.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>

<li> <a href=./man/tiff2pdf.1.html>tiff2pdf</a>: New tool, written by
Ross Finlayson, to directly convert TIFF files to PDF.

<li> <a href=./man/tiffgt.1.html>tiffgt</a>: Unmaintained and platform
dependent sgigt utility removed and replaced with the completely rewritten
portable <a href=./man/tiffgt.1.html>tiffgt</a> tool (depend on OpenGL and
GLUT). This tool will not build by default.

<li> <a href=./man/ras2tiff.1.html>ras2tiff</a>: Properly determine
SUN Rasterfiles with the reverse byte order (it is reported by the magic
header field). Problem reported by Andreas Wiesmann.

<li> <a href=./man/raw2tiff.1.html>raw2tiff</a>: Implemented image size
guessing using correlation coefficient calculation between two neighbour
lines.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>
<UL> 

<li> contrib/pds/{tif_pdsdirread.c, tif_pdsdirwrite.c}: Use TIFFDataWidth()
function insted of tiffDataWidth array.

</UL>

<!--------------------------------------------------------------------------->

<A NAME="lzwkit"><B><FONT SIZE=+3>C</FONT>HANGES IN THE LZW COMPRESSION
KIT:</B></A>
<UL> 

<li> Proper support for update mode as per bug 424.

</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\V���88html/v3.7.0.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v3.7.0
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.7.0<BR>
<B>Previous Version</B>: <A HREF=v3.7.0beta2.html>v3.7.0beta2</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#hightlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
<LI><A HREF="#lzwkit">Changes in the LZW compression kit</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>

	<li> Several bugs found after 3.7.0beta2 release were fixed.

</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
	<li> ltmain.sh: Fix for MinGW compilation.
</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>

	<li> libtiff/{tif_dirread.c, tif_jpeg.c, tif_luv.c, tif_ojpeg.c,
	tif_pixarlog.c, tif_write.c}: Handle the zero strip/tile sizes
	properly (Dmitry V. Levin, Marcus Meissner).

	<li> libtiff/tif_dirinfo.c: Type of the TIFFTAG_SUBIFD field changed
	to TIFF_IFD.
	
	<li> Preliminary support for BigTIFF files: now libtiff can
	recognize and reject to open such images. ;-)

	<li> libtiff/tif_dir.c: Initialize td_tilewidth and td_tilelength fields
	of the TIFFDirectory structure with the 0 instead of -1 to avoid
	confusing integer overflows in TIFFTileRowSize() for striped images.

	<li> libtiff/tif_dir.c: Initialize td_tilewidth and td_tilelength fields
	of the TIFFDirectory structure with the 0 instead of -1 to avoid
	confusing integer overflows in TIFFTileRowSize() for striped images.

	<li> libtiff/tif_dirinfo.c: Fix bug with tif_foundfield and reallocation
	of tif_fieldinfo as per bug
	<A HREF="http://bugzilla.remotesensing.org/show_bug.cgi?id=630">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=630</A>

	<li> libtiff/tif_compress.c: Improved error reporting in
	TIFFGetConfiguredCODECs() (Dmitry V. Levin).

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
	<li> tiffcmp.c (leof): Renamed from 'eof' in order to avoid
	conflict noticed under MinGW.

	<li> tiff2pdf.c: Fixed TransferFunction tag handling reported
	by Ross A. Finlayson.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

	<li> No changes.

</UL>

<!--------------------------------------------------------------------------->

<A NAME="lzwkit"><B><FONT SIZE=+3>C</FONT>HANGES IN THE LZW COMPRESSION
KIT:</B></A>
<UL> 

	<li> This one is not longer needed.

</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\�|��#�#html/v3.7.0alpha.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v3.7.0alpha
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.7.0alpha<BR>
<B>Previous Version</B>: <A HREF=v3.6.1.html>v3.6.1</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#hightlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
<LI><A HREF="#lzwkit">Changes in the LZW compression kit</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<ul>
	<li> Significant changes in software configuration: we are switched
	to GNU autotools now.
	
	<li> tiffset: tiffset now can set any libtiff supported tags. Tags
	can be supplied by the mnemonic name or number.
</ul>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
	<li> Get rid of the old configuration system and switch to
	GNU autotools.
</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
	<li> libtiff/tif_ojpeg.c: Fixed problem with duplicated SOI and SOF
	markers as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=581"
		http://bugzilla.remotesensing.org/show_bug.cgi?id=581</a>.

	<li> libtiff/{tif_open.c, tiffio.h}: New function added:
	TIFFIsBigEndian(). Function returns nonzero if given was file written
	in big-endian order.

	<li> libtiff/tif_print.c: added (untested) support for printing
	SSHORT, SLONG and SRATIONAL fields.

	<li> libtiff/tif_fax3.c: Avoid reading CCITT compression options
	if compression type mismatches. See
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=565">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=565</a>.

	<li> libtiff/tif_strip.c: Never return 0 from the TIFFNumberOfStrips().

	<li> libtiff/tif_dirread.c: Workaround for broken TIFF writers which
	store single SampleFormat value for multisampled images. See
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=562">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=562</a>.

	<li> libtiff/tif_write.c: Allow in-place updating of the compressed
	images (don't work properly with all codecs). For details see GDAL bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=534">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=534</a>.

	<li> libtiff/tif_jpeg.c: Workaround for wrong sampling factors used
	in the Intergarph JPEG compressed TIFF images as per bug:
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=532">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=532</a>.

	<li> libtiff/tif_open.c: Use dummy mmap/munmap functions in
	TIFFClientOpen() when the appropriate client functions was not
	supplied by user.

	<li> libtiff/tif_dirread.c: Fixed problem with handling TIFF_UNDEFINED
	tag type in TIFFFetchNormalTag() as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=508"
		http://bugzilla.remotesensing.org/show_bug.cgi?id=508</a>.

	<li> libtiff/tif_codec.c: Fixed typo in TIFFInitPackBits name as per:
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=494">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=494</a>.

	<li> libtiff/tif_fax3.c: Fixed problem, introdiced in 3.6.1 release,
	with the CCITT encoding modes as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=483">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=483</a>.
        We need more work on fax codec to support update mode.

	<li> libtiff/tiff.h: Fixed tag definitions for TIFFTAG_YCLIPPATHUNITS
	and TIFFTAG_INDEXED as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=475">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=475</a>.

	<li> libtiff/{tif_win32.c, tif_unix.c}: Check whether the pointer is
	NULL before proceeding further as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=474">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=474</a>.
	Check results, returned by the TIFFFdOpen() before returning and close
	file if TIFFFdOpen() failed as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=468">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=468</a>.

	<li> libtiff/{libtiff.def, tif_close.c, tiffio.h, tif_open.c}:
	Separate TIFFCleanup() from the TIFFClose() in order to fix the bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=468">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=468</a>.

	<li> libtiff/tif_dirwrite.c: Fixed handling of writable ASCII tags
	that are field_passcount=TRUE properly.  Arguably anonymous custom
	tags should be declared as passcount=FALSE, but I don't want to change
	that without a careful review.

	<li> libtiff/tif_write.c: Fixed reporting size of the buffer in case
	of stripped image in TIFFWriteBufferSetup(). As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=460">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=460</a>.
				
	<li> libtiff/tif_dir.c: Incomplete cleanup in TIFFFreeDirectory(),
	patch from Gerben Koopmans.

	<li> libtiff/tif_dirread.c: Check field_passcount value before setting
	the value of undefined type, patch from Gerben Koopmans.		

	<li> libtiff/{tiff.h, tif_fax3.c}:Fixes for AMD 64 platform as
	suggested by Jeremy C. Reed.			

	<li> libtiff/tif_win32.c: Fixed problem with _TIFFrealloc() when
	the NULL pointer passed. Patch supplied by Larry Grill.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
	<li> tiffset: tiffset now can set any libtiff supported tags. Tags
	can be supplied by the mnemonic name or number.

	<li> ycbcr.c: fixed main() declaration as per:
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=513">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=513</a>.

	<li> <a href=./man/tiffsplit.1.html>tiffsplit</a>: Don't forget
	to copy Photometric Interpretation tag.
	
	<li> <a href=./man/tiffsplit.1.html>tiffsplit</a>: Fixed problem with
	unproperly written multibyte files. Now output files will be written
	using the same byte order flag as in the input image. See
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=574"
		http://bugzilla.remotesensing.org/show_bug.cgi?id=574</a>.

	<li> <a href=./man/tiffsplit.1.html>tiffsplit</a>: Copy JPEGTables
	tag contents for JPEG compressed images. Reported by Artem Mirolubov.

	<li> <a href=./man/tiffcp.1.html>tiffcp</a>: Close output file
	on normal exit.
	
	<li> <a href=./man/tiffcp.1.html>tiffcp</a>: Don't emit warnings
	when Orientation tag does not present in the input image.
	
	<li> <a href=./man/tiffcp.1.html>tiffcp</a>: Properly set
	Photometric Interpretation in case of JPEG compression of grayscale
	images.
	
	<li> <a href=./man/tiffcp.1.html>tiffcp</a>: Fixed problem with wrong
	interpretation of the InkNames tag as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=466">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=466</a>.
	Memory leak fixed.

	<li> <a href=./man/tiffcp.1.html>tiffcp</a>: Fixed problem with
	wrong Photometric setting for non-RGB images.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

	<li> Outdated stuff removed.

	<li> Almost all programs are sinchronized with the current libtiff
	and should compile without problems.

</UL>

<!--------------------------------------------------------------------------->

<A NAME="lzwkit"><B><FONT SIZE=+3>C</FONT>HANGES IN THE LZW COMPRESSION
KIT:</B></A>
<UL> 

<li> No changes.

</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\�T�ZZhtml/v3.7.0beta.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v3.7.0beta
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.7.0beta<BR>
<B>Previous Version</B>: <A HREF=v3.7.0alpha.html>v3.7.0alpha</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#hightlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
<LI><A HREF="#lzwkit">Changes in the LZW compression kit</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<ul>
	<li> LZW compression enabled by default. You don't need the separate
	compression kit anymore.

	<li> bmp2tiff: Added new utility to convert Windows BMP files
	into TIFFs.

	<li> The first attempt to implement a test suite.
</ul>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
	<li> Many portability fixes in the new autotooled build suite.
</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
	<li> libtiff/{tif_luv.c, tif_next.c, tif_thunder.c}: Several buffer
	overruns fixed, as noted by Chris Evans.

	<li> BSD data types (u_char, u_short, u_int, u_long) is no longer
	used internally in the libtiff. Should result in simpler configuration
	and better portability.

	<li> libtiff/tiff.h: Fix column tagging. Reference current Adobe XMP
	specification. Reference libtiff bug tracking system to submit
	private tag additions.

	<li> libtiff/tif_dirread.c: Don't reject to read tags of the
	SamplesPerPixel size when the tag count is greater than number of
	samples as per bug
	<A HREF="http://bugzilla.remotesensing.org/show_bug.cgi?id=576">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=576</A>.

	<li> libtiff/{tiffio.h, tif_open.c}: Applied patches from
	Joris Van Damme	to avoid requirement for tiffiop.h inclusion in
	some applications. Look for details here:
	<A HREF="http://www.asmail.be/msg0054799560.html">
		http://www.asmail.be/msg0054799560.html</A>.

	<li> libtiff/{tiffiop.h, tif_dirinfo.c}: Fixed problem with the static
	variable as per bug
	<A HREF="http://bugzilla.remotesensing.org/show_bug.cgi?id=593">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=593</A>.
	
	<li> libtiff/tif_lzw.c: LZW compression code is merged back from the
	separate package. All libtiff tools are updated to not advertise an
	abcence of LZW support.

	<li> libtiff/tif_dir.c: Call TIFFError() instead of producing warnings
	when setting custom tags by value. Reported by Eric Fieleke.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
	<li> tiff2ps: Avoid zero division in setupPageState() function;
	properly initialize array in PSDataBW().

	<li> tiff2pdf: Multiple bugfixes.

	<li> ras2tiff:  Fixed issue with missed big-endian checks as per bug
	</A HREF="http://bugzilla.remotesensing.org/show_bug.cgi?id=586">
		 http://bugzilla.remotesensing.org/show_bug.cgi?id=586</A>.

	<li> bmp2tiff: Added new utility to convert Windows BMP files
	into TIFFs.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

	<li> No changes.

</UL>

<!--------------------------------------------------------------------------->

<A NAME="lzwkit"><B><FONT SIZE=+3>C</FONT>HANGES IN THE LZW COMPRESSION
KIT:</B></A>
<UL> 

	<li> This one is not longer needed.

</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\�/��html/v3.7.0beta2.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v3.7.0beta2
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.7.0beta2<BR>
<B>Previous Version</B>: <A HREF=v3.7.0beta.html>v3.7.0beta</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#hightlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
<LI><A HREF="#lzwkit">Changes in the LZW compression kit</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>

	<li> The code has been reviewed by Dmitry Levin: added checks
	for values, returned by the space allocation functions, fixed
	problems with the possible integer overflows.

</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
	<li> Several fixes in the test suite.
</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>

	<li> Preliminary support for BigTIFF files: now libtiff can
	recognize and reject to open such images. ;-)

	<li> libtiff/tif_dirinfo.c: changed type of XMLPacket (tag 700) to 
	TIFFTAG_BYTE instead of TIFFTAG_UNDEFINED to comply with the info
	in the Adobe XMP Specification.

	<li> Added many checks for integer overflow and for successful space
	allocations in the different parts of library. Code review
	completed by Dmitry V. Levin.

	<li> libtiff/{tiffio.h, tif_compress.c}: Added
	TIFFGetConfiguredCODECs()function to get the list of configured codecs.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
	<li> tiff2bw: Write ImageWidth/Height tags to output file, as
	noted by Gennady Khokhorin.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

	<li> No changes.

</UL>

<!--------------------------------------------------------------------------->

<A NAME="lzwkit"><B><FONT SIZE=+3>C</FONT>HANGES IN THE LZW COMPRESSION
KIT:</B></A>
<UL> 

	<li> This one is not longer needed.

</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\9�v*��html/v3.7.1.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v3.7.1
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.7.1<BR>
<B>Previous Version</B>: <A HREF=v3.7.0.html>v3.7.0</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#hightlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>

	<li> This is mostly bugfix release. Most important fix is the one
	related to wrong custom tag read/write code.

</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

	<li> autogen.sh: aclocal and autoheader should be executed after
	libtoolize.  Also add '-I .' to aclocal invocation to check
	current directory for macros.

	<li> nmake.opt: Link with the user32.lib in windowed mode. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=697">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=697</a>

	<li> nmake.opt, makefile.vc: make it easier to rename the libtiff DLL.

	<li> configure, configure.ac: Added --enable-rpath option to embed
	linker paths into library binary.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>

	<li> tiff.h: Revert back libtiff data type definitions as per
	bug <a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=687">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=687</a>

	<li> tif_dirread.c: Do not forget about TIFF_VARIABLE2 when
	checking for tag count in TIFFReadDirectory() function. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=713">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=713</a>

	<li> tif_getimage.c: Support for multiple-alpha-channelled
	RGB-images as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=718">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=718</a>

	<li> tif_getimage.c: #define A1 bracketing for clean build on
	SunPro compiler.

	<li> tif_dirwrite.c: Always write TIFFTAG_SUBIFD using LONG type
	as per bugs
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=703">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=703</a> and
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=704">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=704</a>.

	<li> tif_win32.c: Use char* strings instead of TCHAR in windowed
	mode as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=697">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=697</a>

	<li> tif_dir.c, tif_dirread.c: Remove TIFFReassignTagToIgnore()
	call from the TIFFReadDirectory() function. TIFFReassignTagToIgnore
	must be removed in the future, as it was never used properly. As per
	bug <a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=692">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=692</a>

	<li> tif_jpeg.c: Added a work-around in order to allow
	compilation with the heavily modified version of libjpeg delivered
	with Cygwin.

	<li> tif_dir.c: Properly handle tags, which have the uint32
	counts. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=693">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=693</a>

	<li> tif_unix.c: Make UNIX module compilable (and usable)
	on Windows.

	<li> tiff.h: Added Adobe DNG tags.

	<li> tif_aux.c: Set the appropriate ReferenceBlackWhite array for
	YCbCr image which lacks that tag (noted by Hans Petter Selasky).

	<li> tif_color.c: Division by zero fixed (Hans Petter Selasky).

	<li> tif_stream.cxx, tiffio.h: Added C++ stream interface
	contributed by Edward Lam (see
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=654">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=654</a>
	for details). Those who want to use C++ streams should
	#include <tiffio.hxx>.

	<li> tif_open.c: Removed close() in TIFFClientOpen() if file
	is bad. This is the callers responsibility.
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=651">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=651</a>

	<li> tiffio.h, tif_win32.c, libtiff.def}: Added TIFFOpenW()
	function to work with the double byte strings (used to represent
	filenames in some locales). As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=625">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=625</a>

	<li> tif_dirread.c: Fixed problem when fetching BitsPerSample and
	Compression tags of type LONG from broken TIFFS as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=662">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=662</a>

	<li> tif_dirinfo.c: Fixed definition for TIFFTAG_RICHTIFFIPTC,
	the writecount should have uint32 type. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=662">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=662</a>

	<li> tif_write.c: Fixed wrong if() statement in
	TIFFAppendToStrip() function as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=660">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=660</a>

	<li> tif_dirinfo.c: Change definition for TIFFTAG_EXTRASAMPLES
	field. The caller should supply a count when setting this field. As
	per bug <a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=648">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=648</a>. 

	<li> tif_jpeg.c, tif_ojpeg.c: TIFFTAG_JPEGTABLES should have
	uint32 count. Use this type everywhere.

	<li> tif_next.c: avoid use of u_long and u_char types.

	<li> tif_fax3.c: Fixed case with the wrong decode routines
	choosing when the incorrect Group4Options tag set. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=323">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=323</a>

	<li> tif_dirwrite.c: Fixed problem with passing count variable of
	wrong type when writing the TIFF_BYTE/TIFF_SBYTE tags in
	TIFFWriteNormalTag().

	<li> tif_compress.c: Zero division problem fixed (Vladimir Nadvornik,
	Dmitry V. Levin).

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>

	<li> fax2ps.c: Be able to extract the first page (#0). As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=690">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=690</a>

	<li> tiff2ps.c: Fixed wrong variable data type when read Position
	tags (Tristan Hill).

	<li> tiff2ps.c: Fixed wrong variable data type when read Resolution
	tags (Peter Fales).

	<li> tiffset.c: Check the malloc return value (Dmitry V. Levin).

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

	<li> No changes.

</UL>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\�JjRRhtml/v3.7.2.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v3.7.2
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.7.2<BR>
<B>Previous Version</B>: <A HREF=v3.7.1.html>v3.7.1</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#hightlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>

	<li> Maintainance release. Many bugfixes in the build environment
	and compatibility improvements.

</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
	<li> configure.ac: Use -rpath option instead of -R as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=732">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=732</a>

	<li> tif_stream.cxx: Fixes for C++ stream interface from
	Michael Rinne and Edward Lam.

	<li> configure.ac: Make the documentation directory location
	configurable via the --with-docdir option (as suggested by
	Jeremy C. Reed).

	<li> Place the C++ stream API in the separate library called
	libtiffxx to avoid unneeded dependencies. Probably there will be
	more C++ API in the future. As per bugs
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=733">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=733</a>
	and <a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=730">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=730</a>
	
	<li> configure, configure.ac: Replace --disable-c++ with the
	--disable-cxx option as	per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=730">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=730</a>.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>

	<li> Applied patch from Lee Howard to support a new tag TIFFTAG_FAXDCS
	(34911) used in HylaFax software. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=771">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=771</a>

	<li> tif_open.c: Remove unnesessary TIFFSeekFile() call as per
	bug <a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=756">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=756</a>

	<li> tiff.h: Changed the int8 definition to be always signed char
	as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=727">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=727</a>

	<li> tiffio.h: Move TIFFOpenW() function into the extern "C"{}
	block as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=763">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=763</a>

	<li> tif_dirread.c: Estimate strip size in case of wrong or
	suspicious values in the tags. As per bugs
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=705">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=705</a>
	and <a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=320">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=320</a>

	<li> tif_color.c: Use double as the second argument of pow()
	function in TIFFCIELabToRGBInit(). As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=741">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=741</a>

	<li> tif_pixarlog.c: Avoid warnings when converting float to
	integer as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=740">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=740</a>

	<li> tif_getimage.c: Always fill the error message buffer in
	TIFFRGBAImageBegin() as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=739">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=739</a>

	<li> tif_jpeg.c: Added ability to read/write the fax specific
	TIFFTAG_FAXRECVPARAMS, TIFFTAG_FAXSUBADDRESS and TIFFTAG_FAXRECVTIME
	tags as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=736">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=736</a>

	<li> tif_win32.c: Fixed message formatting in functions
	Win32WarningHandler() and Win32ErrorHandler() as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=735">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=735</a>

	<li> tiffio.h: Move the color conversion routines in the 'extern
	"C"' section as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=727">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=727</a>

	<li> tiff.h: Restore back the workaround for AIX Visual Age C
	compiler to avoid double definition of BSD types as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=39">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=39</a>

	<li> tif_getimage.c: More fixes for multiple-alpha-channelled
	RGB-images as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=713">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=713</a>

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>

	<li> tiffcmp.c: Added ability to compare the 32-bit integer and
	floating point data; complain on unsupported bit depths.

	<li> tiffcmp.c: Use properly sized buffer in short arrays comparison
	as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=785">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=785</a>

	<li> fax2ps.c: Replace insecure mktemp() function with the
	tmpfile() as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=786">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=786</a>

	<li> tiffgt.c: Fix problem on big-endian CPUs so that images
	display more correctly.  Images display brighter than they should
	on a Sun workstation.

	<li> tiff2ps.c: Fixed problem with page sizes as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=742">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=742</a>

	<li> tiff2ps.c: Interpret the -w and -h options independently. As
	per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=689">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=689</a>

	<li> tiffdump.c: Fixed problem when read broken TIFFs with the
	wrong tag counts (Dmitry V. Levin, Martin Pitt).

	<li> tiffset.c: Convert character option to integer value as per
	bug <a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=725">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=725</a>.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

	<li> No changes.

</UL>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\-�V	7 7 html/v3.7.3.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v3.7.3
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.7.3<BR>
<B>Previous Version</B>: <A HREF=v3.7.2.html>v3.7.2</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#hightlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>
	<li> Replace runtime endianess check with the compile time one.

	<li> Added support for the new predictor type (floating point
	predictor), defined at the TIFF Technical Note 3.

	<li> Added Support for custom tags, passed by value.
	Added support for all DNG tags.
</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
	<li> Do not use empty -R option when linking with --enable-rpath.

	<li> Added workaround for OpenBSD/MirOS soname problem as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=838">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=838</a>

	<li> Fixed parallel compilation of the libtiff and
	libtiffxx libraries as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=826">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=826</a>

	<li> configure.ac, libtiff/Makefile.am: Use libtool machinery to pass
	rpath option.

	<li> make.opt: Build with Win32 CRT library by default.
</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
	<li> tiffiop.h, tif_open.c: Added open option 'h' to avoid reading
	the first IFD when needed. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=875">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=875</a>

	<li> tiff.h: Use correct int size on Sparc 64bit/Sun compiler
	platform. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=855">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=855</a>

	<li> tif_dirinfo.c: Added support for ClipPath, XClipPathUnits
	and YClipPathUnits tags.

	<li> tif_dirinfo.c, tif_dir.h, tif_dir.c, tif_print.c: Make
	DocumentName, Artist, HostComputer, ImageDescription, Make, Model,
	Copyright, DateTime, PageName, TextureFormat, TextureWrapModes and
	TargetPrinter tags custom.

	<li> tif_jpeg.c: Cleanup the codec state depending on TIFF_CODERSETUP
	flag (to fix memory leaks).

	<li> tif_dirwrite.c: Use tdir_count when calling
	TIFFCvtNativeToIEEEDouble() in the TIFFWriteDoubleArray() function as
	per bug <a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=845">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=845</a>

	<li> tif_dirinfo.c, tif_print.c: TIFFFetchByteArray() returns
	uint16 array when fetching the BYTE and SBYTE fields, so we should
	consider result as pointer to uint16 array and not as array of chars.
	As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=831">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=831</a>

	<li> tif_dir.c: More efficient custom tags retrieval as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=830">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=830</a>

	<li> tif_win32.c: Use FILE_SHARE_READ | FILE_SHARE_WRITE share
	mode in CreateFile() call as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=829">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=829</a>

	<li> tif_jpeg.c: Substantial fix for addtiffo problems with
	JPEG encoded TIFF files.  Pre-allocate lots of space for jpegtables
	in directory.

	<li> tif_dirread.c: Changed the code that computes 
	stripbytecount[0] if it appears bogus to ignore if stripoffset[0] is
	zero. This is a common case with GDAL indicating a "null" tile/strip.

	<li> tif_jpeg.c: added LIB_JPEG_MK1 support in JPEGDecodeRaw().

	<li> tif_dirread.c: Ensure that broken files with too many
	values in PerSampleShorts, TIFFFetchPerSampleLongs and
	TIFFFetchPerSampleAnys work ok instead of crashing.
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=843">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=843</a>

	<li> tif_predict.h, tif_predict.c: Added ability to decode and encode
	floating point predictor, as per TIFF Technical Note 3.
	See http://chriscox.org/TIFF_TN3_Draft2.pdf for details.

	<li> tiffio.h, tiffiop.h, tif_dir.c, tif_read.c, tif_swab.c:
	Added _TIFFSwab24BitData() and TIFFSwabArrayOfLong() functions used to
	swap 24-bit floating point values.

	<li> tiff.h: Added predictor constants.

	<li> tiffiop.h, tif_dir.c: Use uint32 type for appropriate values
	in _TIFFVSetField() function. Inspired by the bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=816">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=816</a>

	<li> tif_open.c: Do not read header in case the output file should
	be truncated (Ron).

	<li> tif_dirinfo.c, tif_config.h.vc: Use lfind() instead of bsearch()
	in _TIFFFindFieldInfoByName() function (Ron).

	<li> tif_dir.c, tif_print.c: Properly handle all data types in custom
	tags.

	<li> dirinfo.c: Added DNG tags.

	<li> tiff.h: Added missed DNG tag (LensInfo); added DNG 1.1.0.0 tags.

	<li> tif_dir.c, tif_print.c: Added Support for custom tags, passed
	by value.

	<li> tiff.h, tif_dirinfo.c, tiffiop.h: Added EXIF related tags.
</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
	<li> tiff2pdf.c: Print two characters per loop in the
	t2p_write_pdf_trailer(). As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=594">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=594</a>

	<li> tiffgt.c: Use MacOS X OpenGL framework when appropriate. As
	per bug <a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=844">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=844</a>

	<li> ppm2tiff.c: Fixed format string when read PPM file header with
	the fscanf() function. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=861">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=861</a>

	<li> tiffsplit.c: Check for JPEGTables tag presence before copying.

	<li> tiff2pdfr.c: Calculate the tile width properly; added new
	option '-b' to use interpolation in output PDF files (Bruno Ledoux).

	<li> tiffdither.c: Copy the PhotometricInterpretation tag from the
	input file.

	<li> tif2pdf.c: Fixed problem with alpha channel handling as per
	bug <a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=794">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=794</a>.
</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

	<li> addtiffo/{tif_overview.c, tif_ovrcache.c, tif_ovrcache.h}:
	Make overviews working for contiguous images. 

</UL>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\Ja�ޡ�html/v3.7.4.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v3.7.4
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.7.4<BR>
<B>Previous Version</B>: <A HREF=v3.7.3.html>v3.7.3</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#hightlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>
	<li> Fixed important bug in custom tags handling code..
</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
	<li> Applied patch from Patrick Welche (all scripts moved in the
	'config' and 'm4' directories).

	<li> SConstruct, libtiff/SConstruct: Added the first very preliminary
	support for SCons software building tool (http://www.scons.org/).
	This is experimental infrastructure and it will exist along with the
	autotools stuff.

	<li> port/lfind.c: Added lfind() replacement module.
</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
	<li> tif_dir.c: When prefreeing tv->value in TIFFSetFieldV
	also set it to NULL to avoid double free when re-setting custom
	string fields as per:
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=922">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=922</a>

	<li> tif_dir.c: Fixed up support for swapping "double complex"
	values (128 bits as 2 64 bits doubles).  GDAL gcore tests now
	pass on bigendian (macosx) system.

	<li> libtiff/{tif_dirread.c, tif_dirinfo.c}: Do not upcast BYTEs to
	SHORTs in the TIFFFetchByteArray(). Remove TIFFFetchExtraSamples()
	function, use TIFFFetchNormalTag() instead as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=831">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=831</a>

	Remove TIFFFetchExtraSamples() function, use TIFFFetchNormalTag()
	instead.

	<li> tif_print.c: Fixed printing of the BYTE and SBYTE arrays.

	<li> tif_write.c: Do not check the PlanarConfiguration field in
	the TIFFWriteCheck() function in case of single band images (as per
	TIFF spec).

	<li> libtiff/{tif_dir.c, tif_dir.h, tif_dirinfo.c, tif_print.c}:
	Make FieldOfViewCotangent, MatrixWorldToScreen, MatrixWorldToCamera,
	ImageFullWidth, ImageFullLength and PrimaryChromaticities tags custom.
</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
	<li> tiffcp.c: Fixed WhitePoint tag copying.
</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 
	<li> tiffdump.c: Added support for TIFF_IFD datatype.

	<li> addtiffo/{tif_overview.c, tif_ovrcache.c, tif_ovrcache.h}:
	Make overviews working for contiguous images. 

</UL>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\)l�ب�html/v3.8.0.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v3.8.0
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.8.0<BR>
<B>Previous Version</B>: <A HREF=v3.7.4.html>v3.7.4</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#hightlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>
	<li> Read-only support for custom directories (e.g. EXIF directory).

	<li> Preliminary support for MS MDI format.
</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
	<li> Make the default strip size configurable via the
	--with-default-strip-size and STRIP_SIZE_DEFAULT options.
</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
	<li> tiffio.h: Added VC_EXTRALEAN definition before including
	windows.h, to reduce the compile time.

	<li> tif_jpeg.c: Improve compilation under MinGW.

	<li> {tif_aux.c, tif_dir.c, tif_dir.h, tif_dirwrite.c,
	tif_print.c, tif_getimage.c}: Make InkSet, NumberOfInks, DotRange and
	StoNits tags custom.

	<li> {tif_aux.c, tif_dir.c, tif_dir.h, tif_print.c}: Make
	WhitePoint tag custom.

	<li> tiffio.h: fixed typo that potentially resulted in 
	redefininition of USE_WIN32_FILEIO

	<li> {tif_dir.c, tif_dir.h, tif_print.c}: Make RichTIFFIPTC,
	Photoshop and ICCProfile tags custom.

	<li> libtiff/*, contrib/*: Added 'dual-mode' error handling, enabling 
	newer code to get context indicator in error handler and still
	remain compatible with older code: Done TIFFError calls everywhere 
	except in tools.

	<li> tiffinfo.c: Print EXIF directory contents if exist.

	<li> {tif_dirinfo.c, tif_dirread.c, tif_dir.h, tif_dir.c}:
	Custom directory read-only support.

	<li> {tif_aux.c, tif_dirinfo.c, tif_dirread.c, tif_dir.h,
	tif_dir.c, tif_print.c}: Make YCbCrCoefficients and ReferenceBlackWhite
	tags custom.

	<li> tif_dirread.c: One more workaround for broken StripByteCounts
	tag. Handle the case when StripByteCounts array filled with
	completely wrong values.

	<li> tif_dirinfo.c: Release file descriptor in case of failure
	in the TIFFOpenW() function as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1003">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1003</a>

	<li> tif_dirinfo.c: Correctly yse bsearch() and lfind()
	functions as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1008">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1008</a>

	<li> tif_open.c, tiff.h, tiffdump.c: Incorporate preliminary support
	for MS MDI format.
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1002">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1002</a>

	<li> libtiff.def, tiffiop.h, tiffio.h: Made TIFFFreeDirectory
	public.

	<li> /tif_dirinfo.c: Make XResolution, YResolution and
	ResolutionUnit tags modifiable during write process. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=977">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=977</a>

	<li> if_dirread.c: Don't try and split single strips into "0" strips
	in ChopUpSingleUncompressedStrip.  This happens in some degenerate
	cases (like 1x1 files with stripbytecounts==0 (gtsmall.jp2 embed tiff)

	<li> tif_fax3.c: changed 'at scanline ...' style warning/errors
	with incorrect use of tif_row, to 'at line ... of
	strip/tile ...' style.
</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
	<li> tiffcp.c: Added many error reporting messages; fixed integer
	overflow as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=789">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=789</a>

	<li> tiffcp.c: Return non-zero status when reading fails.

	<li> fax2tiff.c: Properly calculate sizes of temporary arrays
	as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=943">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=943</a>

	<li> fax2tiff.c: Added option '-r' to set RowsPerStrip parameter
	as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=944">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=944</a>

	<li> tiffdump.c: Fixed typeshift and typemask arrays initialization
	problem as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=946">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=946</a>

	<li> bmp2tiff.c: Fixed possible integer overflow error as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=965">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=965</a>

	<li> tiffsplit.c: Copy fax related fields over splitted parts
	as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=983">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=983</a>

	<li> tiffdump.c: Fixed crash when reading malformed tags.

	<li> tiff2pdf.c: Added missed 'break' statement as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=932">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=932</a>
</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 
	<li> contrib/addtiffo/*: Major upgrade by Joris to support subsampled
	YCbCr images in jpeg compressed TIFF files.

</UL>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\6�D�sshtml/v3.8.1.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v3.8.1
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.8.1<BR>
<B>Previous Version</B>: <A HREF=v3.8.0.html>v3.8.0</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#hightlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>
	<li> Bug-fix release.
</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
	<li> libtool related stuff updated from the 2.1a branch.

	<li> Fix with_default_strip_size comparison as reported by
	Norihiko Murase.
</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>

	<li> tif_dirread.c: Fixed error reporting in TIFFFetchAnyArray()
	function as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1102">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1102</a>

	<li> tif_jpeg.c, tif_pixarlog.c, tif_fax3.c, tif_zip.c:
	Properly restore setfield/getfield methods in cleanup functions. As
	per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1102">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1102</a>

	<li> tif_lzw.c, tif_pixarlog.c, tif_zip.c: Use
	TIFFPredictorCleanup() in codec cleanup methods. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1102">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1102</a>

	<li> tif_predict.c, tif_predict.h: Added new function
	TIFFPredictorCleanup() to restore parent decode/encode/field methods.

	<li> tif_dirread.c: Fixed integer overflow condition in
	TIFFFetchData() function. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1102">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1102</a>

	<li> tif_ojpeg.c: Set the ReferenceBlackWhite with the
	TIFFSetField() method, not directly. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1043">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1043</a>

	<li> tif_write.c: Small code rearrangement in TIFFWriteScanline()
	to avoid crash as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1081">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1081</a>

	<li> tif_dirwrite.c: Properly write TIFFTAG_DOTRANGE tag as per
	bug <a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1088">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1088</a>

	<li> tif_print.c: Properly read TIFFTAG_PAGENUMBER,
	TIFFTAG_HALFTONEHINTS, TIFFTAG_YCBCRSUBSAMPLING and TIFFTAG_DOTRANGE
	tags as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1088">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1088</a>

	<li> tif_tile.c: Fix error reporting in TIFFCheckTile() as per
	bug <a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1063">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1063</a>

	<li> tif_color.c: Avoid overflow in case of wrong input as per
	bug <a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1065">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1065</a>

	<li> tif_dirinfo.c: Use TIFF_NOTYPE instead of 0 when
	appropriate. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1033">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1033</a>

	<li> tif_aux.c: Fixed type of temporary variable in
	_TIFFCheckMalloc() as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=103">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=103</a>

	<li> tif_aux.c: Return static array when fetching default
	YCbCrCoefficients (another problem, reported a the
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1029">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1029</a>
	entry).

	<li> tif_dir.c: Special handling for PageNumber, HalftoneHints,
	YCbCrSubsampling and DotRange tags as per bugs
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1029">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1029</a>
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1034">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1034</a>

	<li> tif_dirread.c: Use _TIFFGetExifFieldInfo() instead of
	_TIFFGetFieldInfo() in TIFFReadEXIFDirectory() call as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1026">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1026</a>

	<li> tif_dirinfo.c: Change definitions for TIFFTAG_ICCPROFILE,
	TIFFTAG_PHOTOSHOP, TIFFTAG_RICHTIFFIPTC, TIFFTAG_XMLPACKET:
	readcount should be uint32 value.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
	<li> ppm2tiff.c: Added support for PBM files as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1044">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1044</a>

	<li> tiff2pdf.c: Functions t2p_sample_rgbaa_to_rgb() and
	t2p_sample_rgba_to_rgb() was used in place of each other, that was
	resulted in problems with RGBA images with associated alpha.
	As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1097">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1097</a>

	<li> tiff2ps.c: Properly scale all the pages when converting
	multipage TIFF with /width/height/center options set. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1080">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1080</a>

	<li> tiff2pdf.c: Do not create output file until all option checks
	will be done. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1072">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1072</a>

	<li> bmp2tiff.c: Added ability to create multipage TIFFs from the
	list of input files as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1077">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1077</a>

	<li> tiffgt.c: Avoid crashing in case of image unsupported by
	TIFFRGBAImage interface.

	<li> tiff2pdf.c: Fixed support for non-YCbCr encoded JPEG
	compressed TIFF files, per submission from Dan Cobra.

	<li> bmp2tiff, pal2rgb, ppm2tiff, ras2tiff, raw2tiff, sgi2tiff,
	tiff2bw, tiffcp: Fixed jpeg option processing so -c jpeg:r:50 works
	properly as per bug:
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1025">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1025</a>

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 
</UL>

Last updated $Date: 2016-09-25 20:05:45 $.

</BODY>
</HTML>
PK粐\�d|���html/v3.8.2.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v3.8.2
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.8.2<BR>
<B>Previous Version</B>: <A HREF=v3.8.1.html>v3.8.1</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#hightlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>
	<li> Bug-fix release.
</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

	<li> tools/Makefile.am: Use runtime paths linker flags when rpath
	option enabled.

	<li> Makefiles improvements as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1128">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1128</a>

	<li> Fixed win32 I/O functions usage as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1127">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1127</a>

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
	<li> tif_strip.c: Take subsampling in account when calculating
	TIFFScanlineSize().

	<li> tif_jpeg.c, tif_fax3.c, tif_zip.c, tif_pixarlog.c,
	tif_lzw.c, tif_luv.c: Use _TIFFSetDefaultCompressionState() in all
	codec cleanup methods. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1120">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1120</a>
	
	<li> tif_jpeg.c: Do not cleanup codec state in TIFFInitJPEG(). As
	per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1119">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1119</a>

	<li> tif_dir.c: Use double type instead of dblparam_t.

	<li> tif_dirread.c: Do not check the PlanarConfig tag presence
	in TIFFReadDirectory, because it is always set at the start of
	function and we allow TIFFs without that tag set.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
	<li> tiffcp.c: Do not set RowsPerStrip bigger than image length.

	<li> fax2tiff.c: Fixed wrong TIFFerror() invocations as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1125">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1125</a>

	<li> fax2ps.c: Fixed reading the input stream from stdin as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1124">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1124</a>

	<li> raw2tiff.c: Do not set RowsPerStrip larger than ImageLength.
	As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1110">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1110</a>

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 
</UL>

Last updated $Date: 2016-09-25 20:05:46 $.

</BODY>
</HTML>
PK粐\�a+��-�-html/v3.9.0beta.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v3.9.0beta
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.9.0beta<BR>
<B>Previous Version</B>: <A HREF=v3.8.2.html>v3.8.2</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#hightlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>
	<li> New <b>tiffcrop</b> utility contributed by Richard Nolde.
	<b>tiffcrop</b> does the same as <b>tiffcp</b>, but also can crop,
	extract, rotate and mirror images.

	<li> tif_jbig.c:  Added	support for JBIG compression scheme
	(34661 code), contributed by Lee Howard.

	<li> Totally new implementation of OJPEG module from
	Joris Van Damme. No need to patch libjpeg anymore. Many OJPEG files
	should be supported now that was not supported previously.

</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

	<li> tif_config.wince.h, tiffconf.wince.h, tif_wince.c: WinCE-specific
	compatibility stuff from Mateusz Loskot.

	<li> Rename config.h.vc and tif_config.h.vc to config.vc.h and 
	tif_config.vc.h for easier identification by folks using an IDE.

	<li> configure, configure.ac: OJPEG support enabled by default (i.e.,
	whe the conformant JPEG support enabled).

	<li> README.vms, Makefile.am, configure.com, libtiff/{Makefile.am,
	tif_config.h-vms, tif_stream.cxx, tif_vms.c, tiffconf.h-vms}:
	Added support for OpenVMS by Alexey Chupahin.

	<li> nmake.opt: use /EHsc for VS2005 compatibility.  Also define
	_CRT_SECURE_NO_DEPRECATE to avoid noise on VS2005.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
	<li> tif_dirinfo.c (_TIFFFindFieldInfo): Don't attempt to
	bsearch() on a NULL fieldinfo list.
	(_TIFFFindFieldInfoByName): Don't attempt to lfind() on a NULL
	fieldinfo list.

	<li> tif_jpeg.c: Changed JPEGInitializeLibJPEG() so that it
	will convert from decompressor to compressor or compress to decompress
	if required by the force arguments.  This works around a problem in
	where the JPEGFixupTestSubsampling() may cause a decompressor to 
	be setup on a directory when later a compressor is required with the
	force flag set.  Occurs with the addtiffo program for instance.

	<li> tif_dirwrite.c: Fixed swapping of byte arrays stored
	in-place in tag offsets as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1363">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1363</a>

	<li> tif_getimage.c: workaround for 'Fractional scanline' error
	reading OJPEG images with rowsperstrip that is not a multiple of
	vertical subsampling factor. This bug is mentioned in
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1390">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1390</a> and
	<a href="http://www.asmail.be/msg0054766825.html">
	http://www.asmail.be/msg0054766825.html</a>

	<li> tif_dirread.c: Added special function to handle
	SubjectDistance EXIF tag as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1362">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1362</a>

	<li> tif_dirread.c, tif_read.c: Type of the byte counters
	changed from tsize_t to uint32 to be able to work with data arrays
	larger than 2GB. Fixes bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=890">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=89</a>	
	Idea submitted by Matt Hancher.

	<li> tif_dir.c: Workaround for incorrect TIFFs with
	ExtraSamples == 999 produced by Corel Draw. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1490">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1490</a>

	<li> tif_write.c: TIFFAppendToStrip() - clear sorted flag if 
	we move a strip.
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1359">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1359</a>

	<li> tif_fax3.c: Save the state of printdir codec dependent method.

	<li> tif_jpeg.c: Save the state of printdir codec dependent method
	as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1273">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1273</a>

	<li> tif_win32.c: Fixed problem with offset value manipulation
	as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1322">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1322</a>

	<li> tif_fax3.c, tif_next.c, tif_pixarlog.c: Fixed multiple
	vulnerabilities, as per	Gentoo bug ():
	<a href="http://bugs.gentoo.org/show_bug.cgi?id=142383">
	http://bugs.gentoo.org/show_bug.cgi?id=142383</a>

	<li> tif_lzw.c, tif_zip.c: Fixed problems with mixing
	encoding and decoding on the same read-write TIFF handle.  The LZW
	code can now maintain encode and decode state at the same time. The
	ZIP code will switch back and forth as needed.  
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=757">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=757</a>

	<li> tif_msdos.c: Avoid handle leak for failed opens.
	c/o Thierry Pierron

	<li> tif_dirwrite.c: take care not to flush out buffer of strip/tile
	data in _TIFFWriteDirectory if TIFF_BEENWRITING not set.  Relates
	to bug report by Peng Gao with black strip at bottom of images.

	<li> tif_dirwrite.c: make sure to use uint32 for wordcount in 
	TIFFWriteNormanTag if writecount is VARIABLE2 for ASCII fields.
	It already seems to have been done for other field types.  Needed
	for "tiffset" on files with geotiff ascii text.

	<li> tif_dirinfo.c: Added missed EXIF tag ColorSpace (40961).

	<li> tif_dirread.c: Move IFD fetching code in the separate
	function TIFFFetchDirectory() avoiding code duplication in
	TIFFReadDirectory() and TIFFReadCustomDirectory().

	<li>tif_readdir.c: Added case in EstimateStripByteCounts() for tiled
	files.  Modified TIFFReadDirectory() to not invoke
	EstimateStripByteCounts() for case where entry 0 and 1 are unequal but
	one of them is zero.
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1204">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1204</a>

	<li> tif_open.c, tif_dirread.c, tiffiop.h: Move IFD looping
	checking code in the separate function TIFFCheckDirOffset().

	<li> tif_aux.c: Added _TIFFCheckRealloc() function.

	<li> tif_fax3.c: Fixed problems in fax decoder as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1194">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1194</a>

	<li> tif_jbig.c:  Added	support for JBIG compression scheme
	(34661 code) contributed by Lee Howard. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=896">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=896</a>

	<li> tif_getimage.c: Added support for planarconfig separate
	non-subsampled YCbCr (i.e. separate YCbCr with subsampling [1,1]).

	<li> tif_getimage.c: Revision of all RGB(A) put routines:
	<ul>
		<li> Conversion of unassociated alpha to associated alpha
		now done with more performant LUT, and calculation more
		correct.
	  	<li> Conversion of 16bit data to 8bit data now done with
	  	more performant LUT, and calculation more correct
	  	<li> Bugfix of handling of 16bit RGB with unassociated alpha
  	</ul>

	<li> tif_ojpeg.c: totally new implementation

	<li> tif_getimage.c: removed TIFFTAG_JPEGCOLORMODE handling
	of OJPEG images in favor of tif_getimage.c native handling of
	YCbCr and desubsampling.

	<li> tif_jpeg.c: JPEGVSetField() so that altering the photometric
	interpretation causes the "upsampled" flag to be recomputed.  Fixes
	peculiar bug where photometric flag had to be set before jpegcolormode
	flag.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
	<li> tiff2ps.c:  Added support 16-bit images as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1566">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1566</a>.
	Patch from William Bader.

	<li> tiff2pdf.c: Fix for TIFFTAG_JPEGTABLES tag fetching and
	significant upgrade of the whole utility as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1560">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1560</a>.
	Now we don't need tiffiop.h in tiff2pdf anymore and will open output
	PDF file using TIFFClientOpen() machinery as it is implemented
	by Leon Bottou.

	<li> tiffcrop.c:  New tiffcrop utility contributed
	by Richard Nolde. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1383">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1383</a>

	<li> tiff2pdf.c: Do not assume inches when the resolution units
	do not specified. As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1366">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1366</a>

	<li> tiffset.c: Properly handle tags with TIFF_VARIABLE writecount.
	As per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1350">
		http://bugzilla.remotesensing.org/show_bug.cgi?id=1350</a>

	<li> tif2rgba.c: This utility does not work properly on big-endian
	architectures. It was fixed including the bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1149">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1149</a>

	<li> tiff2pdf.c: Fix handling of -q values.
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=587">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=587</a>

	<li> tiffcmp.c: Fixed floating point comparison logic as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1191">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1191</a>

	<li> tiff2pdf.c: Fixed buffer overflow condition in
	t2p_write_pdf_string() as per bug
	<a href="http://bugzilla.remotesensing.org/show_bug.cgi?id=1196">
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1196</a>

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

	<li> contrib/addtiffo/tif_overview.c: Fix problems with odd sized
	output blocks in TIFF_DownSample_Subsampled() (bug 1542).

	<li> contrib/dbs/xtiff/xtiff.c: Make xtiff utility compilable.
	Though it is still far from the state of being working and useful.

</UL>

Last updated $Date: 2016-09-25 20:05:46 $.

</BODY>
</HTML>
PK粐\G�/sshtml/v3.9.1.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v3.9.1
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.9.1<BR>
<B>Previous Version</B>: <A HREF=v3.9.1.html>v3.9.1</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).  If you don't
find something listed here, then it was not done in this timeframe, or
it was not considered important enough to be mentioned.  The following
information is located here:
<UL>
<LI><A HREF="#hightlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>
	<li> This is a bug-fix release for several bugs (two of which
	are dire) which were discovered in the 3.9.0 release.

</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

	<li> Several defines were missing from tif_config.vc.h which
	are necessary to compile the library using MSVC.

	<li> Colorized tests were actually not enabled as expected.
	Parallel tests mode is now also enabled so that tests can be
	run in parallel, and test output is sent to .log files.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
	<li> libtiff/tif_write.c (TIFFAppendToStrip): Remove cast
	which caused libtiff to output a wrong last strip with
	byte-count and strip-offset of zero.  This cast was added on
	the day of the 3.9.0 release.

	<li> libtiff/tif_dirwrite.c: Back out changes from 2007-11-22
	that resulted in the final strip not being written in some
	circumstances.
	http://bugzilla.maptools.org/show_bug.cgi?id=2088

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
	<li> None

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

	<li> None

</UL>

Last updated $Date: 2016-09-25 20:05:47 $.

</BODY>
</HTML>
PK粐\��H�>
>
html/v3.9.2.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v3.9.2
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.9.2<BR>
<B>Previous Version</B>: <A HREF=v3.9.1.html>v3.9.1</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).  If you don't
find something listed here, then it was not done in this timeframe, or
it was not considered important enough to be mentioned.  The following
information is located here:
<UL>
<LI><A HREF="#hightlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>

	<li> Fixes a number of bugs present in the 3.9.1 release.

        <li> OJPEG support updated to work with IJG JPEG 7 release.

        <li> Tiffcrop validated for most TIFF storage subformats and sample depths.

</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

	<li> x86_64 now uses the same default fill order as i386.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
	<li> Writing tags with an array value of type TIFF_DOUBLE now
	returns correct error status. The TIFFTAG_SMINSAMPLEVALUE and
	TIFFTAG_SMAXSAMPLEVALUE tags failed to write without this fix.

	<li> OJPEG decoder now works with IJG JPEG 7.  Resolves "Bug
	2090 - OJPEG crash with libjpeg v7".
	http://bugzilla.maptools.org/show_bug.cgi?id=2090

	<li> Eliminate most GCC "dereferencing type-punned pointer"
	warnings.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>

        <li> New tiffcrop from Richard Nolde.  Major updates to add
        significant functionality for reading and writing tile based
        images with bit depths not a multiple of 8 which cannot be
        handled by tiffcp.

        <li> Allow building tools with GCC using the "-Wformat
        -Werror=format-security" flags.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

	<li> None

</UL>

Last updated $Date: 2016-09-25 20:05:47 $.

</BODY>
</HTML>
PK粐\@+�S�)�)html/v4.0.0.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v4.0.0
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">
<FONT FACE="Helvetica, Arial, Sans"> 

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v4.0.0<BR>
<B>Previous Version</B>: <A HREF=v3.9.5.html>v3.9.5</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
ftp://download.osgeo.org/libtiff</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).  If you don't
find something listed here, then it was not done in this timeframe, or
it was not considered important enough to be mentioned. Please consult
the ChangeLog file in the source package for full change details.  The
following information is located here:
<UL>
<LI><A HREF="#hightlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<P><A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A></P>

BigTIFF support changes:

<UL>

	<LI>The options parameter in the TIFFOpen and TIFFClientOpen funcs has
	been extended. When creating new files, you can add option '4' to
	specify you want to create a ClassicTIFF file, though that is the
	default and the option is not strictly necessary. (As such, old
	calling code will continue to function and create ClassicTIFF files.)
	Or you can add option '8' to specify you want to create a BigTIFF file
	instead. This new option is also reflected in some of the tools we
	already upgraded. For instance, you can use the -8 option on tiffcp to
	have tiffcp produce BigTIFF files instead of the default ClassicTIFF.
	(Whilst on additional option is provided for version selection when
	creating new files, no such option is necessary when reading TIFF
	files. LibTiff reads ClassicTIFF and BigTIFF both, and the application
	does not need to be aware which TIFF version an opened file is.)

	<LI>Although the tag count in BigTIFF is 64bit, we restricted the
	count in the implementation to a much more reasonable size. This is
	necessary in current implementation, because all tag data gets read
	automatically in the IFD reading stage, so if there's half a dozen
	private tags with multiple gigabytes of data that causes considerable
	overhead even if the application level is never interested in these
	tags. Our choice to ignore tags with data longer then a certain sanity
	value is much needed as things stand. We also recommend to step away
	from writing tiles that are 8 kilobyte in their uncompressed form, or
	writing single-line strips, in really big files, resulting in mega's
	of tiles or strips. It's much more efficient to choose bigger tile or
	strip sizes, up to several megabyte if needed, and have a few kilo of
	tiles or strips instead.

	<LI>Although it's rare, some application code does directly access
	file offsets. Some of these are automatically upgraded because they
	used the toff_t type, others need to be aware that the datatype
	changed and need to start using toff_t or uint64. This impacts access
	to tags like the EXIF IFD tag, for example, or the SubIfds tag, or to
	StripOffsets or TileOffsets, the return type of functions like
	TIFFCurrentDirOffset, and a parameter type to functions like
	TIFFSetSubDirectory.

	<LI>Although it's rare, some application code does use structures
	like TIFFHeader or TIFFDirEntry that used to be an exact binary
	representation of TIFF structures. These need to change. The old
	TIFFHeader structure is replaced by the new TIFFHeaderClassic,
	TIFFHeaderBig, and TIFFHeaderCommon structures that are an exact
	binary representation of the ClassicTIFF and BigTIFF header, and of
	the part that is common to both. There is no new equivalent for the
	old TIFFDirEntry structure (or more precisely, there is still a
	TIFFDirEntry structure, but it is changed, moved to library-private
	definition, and no longer an exact binary representation of the tag
	structure of either TIFF version).

	<LI>Sizer functions, like TIFFTileSize or TIFFScanlineSize and the
	like, return a tmsize_t value (tmsize_t is defined as int32 on 32bit
	machines, and int64 on 64bit machines, and as such it is meant to
	represent signed memory sizes). This is because we figure 98% of the
	calling code uses the return value as sizes in allocations and the
	like. So, any overflow that is theoretically possible with BigTIFF
	when LibTiff is running on a 32bit system, is best detected inside the
	sizer functions and it is best to return a type that makes sense as a
	memory size. If your calling code is the exception and is interested
	in actual file size, you best use the newer TIFFTileSize64 or
	TIFFScanlineSize64 function that returns an uint64 type.

	<LI>These TIFF tags require a 64-bit type as an argument in
	libtiff 4.0.0:
	<UL>
	<LI> TIFFTAG_FREEBYTECOUNTS
	<LI> TIFFTAG_FREEOFFSETS
	<LI> TIFFTAG_STRIPBYTECOUNTS
	<LI> TIFFTAG_STRIPOFFSETS
	<LI> TIFFTAG_TILEBYTECOUNTS
	<LI> TIFFTAG_TILEOFFSETS
	</UL>

</UL>

Other important backward incompatible changes in the public API:

<UL>
	<LI> TIFFRewriteField() renamed into _TIFFRewriteField() and moved out
	from the public interface (from tiffio.h to tiffiop.h). Type of its
	'count' parameter changed from uint32 to tmsize_t.

	<LI> TIFFMergeFieldInfo() returns non-void result now. It returns 0
	if successful and -1 if failed. Though this is now obsoleted function
	and should not be used in new programs. Use the new tag extension
	scheme instead.

	<LI> TIFFFieldWithTag() and TIFFFieldWithName() functions now return
	pointer to TIFFField constant object instead of TIFFFieldInfo.

	<LI> TIFFReassignTagToIgnore() function and TIFFIgnoreSense enumeration
	have been removed. They was unused and never been used properly.
	Should be unneeded for high-level applications.

	<LI> TIFFTagValue structure removed from the public tiffio.h
	to private tif_dir.h and not accessible anymore. It should be unneeded
	for high-level applications.

</UL>

<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<P><A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A></P>

<UL>

	<LI>Updated autotools: Autoconf 2.68, Automake 1.11.1, libtool
	2.4.

	<LI>Enabled support for Automake silent build rules
	(--enable-silent-rules or 'make V=0')

	<LI>Enabled support for Automake colorized and parallel tests.

	<LI>Added detection of 64-bit integer types since libtiff 4.0
	requires use of 64-bit signed and unsigned integer types.

	<LI>Libtiff now provides a more comprehensive test suite with
	over 72 tests, which may be executed on Unix-like systems, or
	under Microsoft Windows using MinGW/MSYS or Cygwin.

	<LI>--disable-lzma configure option to disable use of liblzma.

	<LI>--enable-defer-strile-load configure option to enable
	experimental deferred strip/tile offset/size loading.  May
	cause some extremely sophisticated uses of libtiff to fail.

	<LI>--enable-chunky-strip-read configure option to enable
	experimental enable reading large strips in chunks in
	TIFFReadScanline().

	<LI>Now always uses WIN32 native I/O functions for Microsoft
	Windows except for under Cygwin.

	<LI>Now provides a pkg-config support file (libtiff-4.pc).

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<P><A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A></P>

<UL>

        <LI>Patches/fixes made to stable libtiff (v3.9.X) are also
        applied to 4.0.0.  There are too many to list here.  See the
        distribution ChangeLog for a detailed change list.

	<LI>There is considerable change in some files like
	tif_dirread and tif_dirwrite. These changes don't impact
	backwards compatibility, they are mostly a clean rewrite that
	does allow BigTIFF support as well as somewhat more robust
	reading of the unexpected already and will also serve future
	API extension but does not impact current API or functionality
	in a negative way that you need to know about.

	<LI>Although there is still a functional definition for types
	like toff_t (file offset), tstrip_t (strip index number), etc,
	we recommend against using these in newer code. We have
	learned that it is next to impossible to use these
	consistently and make real abstraction of the binary format of
	these types. Instead, at a certain level we always end up
	doing casts anyway, and taking the exact binary format into
	account, so these types are nothing but dangerously misleading
	and obfuscating. You do not need to update calling code that
	uses them, as 99.9% of such code will continue to work. But we
	recommend against using them in newer calling code, and we
	started replacing them with binary clear types like uint16,
	uint32 and such in the library.

	<LI>We do use and will continue to use one functional type
	that is an exception to the above rule, being tmsize_t. This
	is a signed memory size type, i.e. it is int32 on 32bit
	machines, or int64 on 64bit machines.

	<LI>Optionally support LZMA compression via TIFF tag 34925.
	Tiffcp supports compression levels similar to "-c lzma:p1" or
	"-c zip:p9 for setting the LZMA compression parameters.

	<LI>Optionally defer the load of strip/tile offset and size
	tags for optimized scanning of directories.  Enabled with the
	--enable-defer-strile-load configure option (DEFER_STRILE_LOAD
	#define in tif_config.h).

	<LI>Optionally enable experimental support for reading big
	strips in chunks.  Enabled with the --enable-chunky-strip-read
	configure option.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<P><A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A></P>

<UL>

	<LI>tiffset: add -d and -sd switches to allow operation on
	a particular directory, not just the first.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<P><A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A></P>

<UL> 
</UL>

Last updated $Date: 2016-09-25 20:05:47 $.

</BODY>
</HTML>
PK粐\"��0��html/v4.0.1.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v4.0.1
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v4.0.1<BR>
<B>Previous Version</B>: <A HREF=v4.0.0.html>v4.0.0</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).  If you don't
find something listed here, then it was not done in this timeframe, or
it was not considered important enough to be mentioned.  The following
information is located here:
<UL>
<LI><A HREF="#highlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>

	<li> None

</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

	<li> --enable-ld-version-script: New configure option to
	enable shared library symbol versioning on ELF-based systems
	(e.g. Linux and FreeBSD) which use the GNU linker.  This
	allows multiple major versions of libtiff to be loaded
	simultaneously into the same application or library without
	conflict, as long as all libtiffs involved are built with
	versioned symbols.  This option is not enabled by default.

        <li> Added libtiff private dependency on -llzma for pkg-config.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
	<li> libtiff/tif_dir.c, libtiff/tif_dirread.c: Extra caution around
        assumption tag fetching is always successful.

        <li> libtiff/tif_jpeg.c: Extra caution for case where sp is NULL.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>

	<li> None

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

	<li> None

</UL>

Last updated $Date: 2016-09-25 20:05:47 $.

</BODY>
</HTML>
PK粐\N,Z���html/v4.0.2.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v4.0.2
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v4.0.2<BR>
<B>Previous Version</B>: <A HREF=v4.0.1.html>v4.0.1</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).  If you don't
find something listed here, then it was not done in this timeframe, or
it was not considered important enough to be mentioned.  The following
information is located here:
<UL>
<LI><A HREF="#highlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>

	<li> None

</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

  <li> None

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>

  <li> tif_getimage.c: added support for _SEPARATED CMYK images.

  <li> tif_getimage.c: Added support for greyscale + alpha. 

  <li> Added TIFFCreateCustomDirectory() and TIFFCreateEXIFDirectory() functions.
  <li> tif_print.c: Lots of fixes around printing corrupt or
    hostile input.
    
  <li> Improve handling of corrupt ycbcrsubsampling values. 

  <li> tif_unix.c: use strerror to get meaningful error messages.

  <li> tif_jpeg.c: fix serious bugs in JPEGDecodeRaw().

  <li> tif_jpeg.c:  Fix size overflow (zdi-can-1221,CVE-2012-1173).

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>

	<li> tiff2pdf:  Defend against integer overflows while
	calculating required buffer sizes (CVE-2012-2113).

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

	<li> None

</UL>

Last updated $Date: 2016-09-25 20:05:47 $.

</BODY>
</HTML>
PK粐\�&�~
~
html/v4.0.3.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v4.0.3
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v4.0.3<BR>
<B>Previous Version</B>: <A HREF=v4.0.2.html>v4.0.2</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).  If you don't
find something listed here, then it was not done in this timeframe, or
it was not considered important enough to be mentioned.  The following
information is located here:
<UL>
<LI><A HREF="#highlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>

	<li> None

</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

  <li> Updated to use Automake 1.12.4.  Avoids security problem with
  'make distcheck' (CVE-2012-3386).

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>

  <li> Various memory buffer access fixes.

  <li> Fix handling when writing RGBA jpeg compressed imagery
  (<A HREF="http://trac.osgeo.org/gdal/ticket/4732">http://trac.osgeo.org/gdal/ticket/4732</A>).

  <li> Fix to work properly with IJG JPEG 7+.

  <li> New functions TIFFFieldTag(), TIFFFieldName(),
  TIFFFieldDataType(), TIFFFieldPassCount(), TIFFFieldReadCount(),
  TIFFFieldWriteCount() to use as external accessors for the opaque
  type TIFFField.

  <li> Fix bug rewriting image tiles in a compressed
  file (<A HREF="http://trac.osgeo.org/gdal/ticket/4771">http://trac.osgeo.org/gdal/ticket/4771</A>).

  <li> Add TIFF/FX tag support in libtiff.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>

  <li> tiff2pdf: Fail when TIFFSetDirectory() fails.  This prevents
  core dumps or perhaps even arbitrary code execution when processing
  a corrupt input file (CVE-2012-3401).

  <li> tiff2pdf: Fix two places where t2p_error didn't get set after a
  malloc failure.  No crash risk AFAICS, but the program might not
  report exit code 1 as desired.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

	<li> None

</UL>

Last updated $Date: 2016-09-25 20:05:47 $.

</BODY>
</HTML>
PK粐\������html/v4.0.4.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v4.0.4
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v4.0.4<BR>
<B>Previous Version</B>: <A HREF=v4.0.4beta.html>v4.0.4beta</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).  If you don't
find something listed here, then it was not done in this timeframe, or
it was not considered important enough to be mentioned.  The following
information is located here:
<UL>
<LI><A HREF="#highlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>

	<li> None

</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

  <LI> configure.ac / configure
    <UL>
      <LI> Bugzilla Bug #2405: Correct shell equality operator.
      <LI> Bugzilla Bug #2498: Adds an option to select the file I/O style on Windows hosts.
    </UL>

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>

  <LI> tif_dir.c:
    <UL>
      <LI> TIFFNumberOfDirectories: Coverity 1134470 "Logically dead code"
    </UL>

  <LI> tif_dirread.c:
    <UL>
      <LI> TIFFReadDirEntryDoubleArray: Coverity 298626 "Logically dead code".
      <LI> TIFFReadDirEntryFloatArray: Coverity 298627 "Logically dead code".
      <LI> TIFFReadDirEntryIfd8Array: Coverity 298628 "Logically dead code".
      <LI> TIFFReadDirEntrySlong8Array: Coverity 298629 "Logically dead code"
    </UL>

  <LI> tif_dirwrite.c
    <UL>
      <LI> _TIFFRewriteField: Coverity 1024310 "Resource leak".
    </UL>

  <LI> tif_jpeg.c
    <UL>
      <LI> JPEGCleanup: Coverity 298624 "Dereference before null check".
      <LI> JPEGDecode: Coverity 602597 "Operands don't affect result".
    </UL>

  <LI> tif_getimage.c
    <UL>
      <LI> Bugzilla Bug #2409: Correct reading of certain tiled TIFFs.
    </UL>

  <LI> tif_luv.c
    <UL>
      <LI> LogLuvDecodeStrip: Coverity 991239 "Division or modulo by zero".
      <LI> LogLuvDecodeTile: Coverity 991227 "Division or modulo by zero".
      <LI> LogLuvEncodeStrip: Coverity 991240 "Division or modulo by zero".
      <LI> LogLuvEncodeTile: Coverity 991241 "Division or modulo by zero".
    </UL>

  <LI> tif_lzw.c
    <UL>
      <LI> Decode files that contain consecutive CODE_CLEAR codes.
    </UL>

  <LI> tif_ojpeg.c
    <UL>
      <LI> OJPEGReadBufferFill: Coverity 603400 "Missing break in switch".
      <LI> OJPEGReadHeaderInfoSecStreamDht: Coverity 601720 "Resource leak".
    </UL>

  <LI> tif_read.c
    <UL>
      <LI> TIFFStartTile: Coverity 715973 and 715974 "Division or modulo by zero".
    </UL>

  <LI> tif_unix.c
    <UL>
      <LI> Bugzilla Bug #2510: Fix several harmless but still annoying warnings.
    </UL>

  <LI> tif_write
    <UL>
      <LI> TIFFWriteEncodedStrip: Coverity 715975 "Division or modulo by zero".
      <LI> TIFFWriteEncodedTile: Coverity 715976 and 715977 "Division or modulo by zero".
      <LI> TIFFWriteRawStrip: Coverity 715978 "Division or modulo by zero".
      <LI> TIFFWriteScanline: Coverity 715979 "Division or modulo by zero".
    </UL>

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>

  <LI> bmp2tiff
    <UL>
      <LI> Coverity 1024225 "Untrusted value as argument".
      <LI> Coverity 1024678 "Unchecked return value from library".
      <LI> Coverity 1024679 "Unchecked return value from library".
      <LI> Coverity 1214160 "Ignoring number of bytes read".
    </UL>

  <LI> gif2tiff
    <UL>
      <LI> Coverity 1024222 "Untrusted value as argument".
      <LI> Coverity 1024890 "Ignoring number of bytes read".
      <LI> Coverity 1024891 "Ignoring number of bytes read".
      <LI> Coverity 1024892 "Ignoring number of bytes read".
      <LI> Coverity 1024893 "Ignoring number of bytes read".
      <LI> Coverity 1024894 "Ignoring number of bytes read".
    </UL>

  <LI> ras2tiff
    <UL>
      <LI> Corrected Sun Raster header definition to be safe for
      64-bit systems.  Add some header validations.  Fixes many
      (unspecified) Coverity issues.
      <LI> Coverity 1024223 "Untrusted value as argument".
      <LI> Coverity 1301206: "Integer handling issues  (BAD_SHIFT)".
    </UL>

  <LI> raw2tiff
    <UL>
      <LI> Coverity 1024887 "Unchecked return value from library".
      <LI> Coverity 1024888 "Unchecked return value from library".
      <LI> Coverity 1024889 "Unchecked return value from library".
      <LI> Coverity 1214162 "Ignoring number of bytes read".
    </UL>

  <LI> tiff2pdf
    <UL>
      <LI> Bugzilla Bug #2078. Suppress initial output of the header.
      <LI> Bugzilla Bug #2150. Change ColorTransform from "0" to "1".
      <LI> Take care in using the return value from snprintf().
      <LI> Coverity 1024181 "Structurally dead code".
      <LI> Coverity 1024181 "Structurally dead code".
      <LI> Coverity 1227690 "Unused value".
      <LI> Coverity 298621 "Resource leak".
    </UL>

  <LI> tiff2ps
    <UL>
      <LI> Correct sizing and scaling problems with output document.
    </UL>

  <LI> tiffcp
    <UL>
      <LI> Coverity 1024306, 1024307, 1024308, 1024309 "Resource leak".
    </UL>

  <LI> tiffcrop
    <UL>
      <LI> Correctly copy the compression tag from the source TIFF.
      <LI> Coverity 1024545 "Division or modulo by zero".
      <LI> Coverity 1024586 "Logically dead code".
      <LI> Coverity 1024796 "Nesting level does not match indentation".
      <LI> Coverity 1024797 "Nesting level does not match indentation".
      <LI> Coverity 1294542 "Logical vs. bitwise operator".
      <LI> Coverity 1299740 "Out-of-bounds write".
      <LI> Coverity 1299741 "Dereference before null check".
    </UL>

  <LI> tiffdither
    <UL>
      <LI>Check memory allocations for failure.  Also check
        multiplication overflow. (Fixes #2501, CVE-2014-8128)
    </UL>

  <LI> tiffgt.c
    <UL>
      <LI> Bugzilla Bug #2401. Appropriately call glFlush().
    </UL>

  <LI> tiffmedian
    <UL>
      <LI> Coverity 1024386 "Out-of-bounds read".
      <LI> Coverity 1024386 "Out-of-bounds read".
      <LI> Coverity 1024795 "Nesting level does not match indentation".
      <LI> Coverity 1024795 "Nesting level does not match indentation".
    </UL>

  <LI> tiffsplit
    <UL>
      <LI> Coverity 1024304 "Resource leak".
      <LI> Coverity 1024305 "Resource leak".
    </UL>

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

  <LI> addtiffo
    <UL>
      <LI> Check buffer size calculation for overflow.
      <LI> Coverity  298615 "Resource leak".
      <LI> Coverity 1024649 "Unintended sign extension".
    </UL>

  <LI> iptcutil
    <UL>
      <LI> Coverity 1024468 "Infinite loop".
      <LI> Coverity 1024727 "Truncated stdio return value".
      <LI> Coverity 1214240 "Untrusted loop bound".
    </UL>

</UL>

Last updated $Date: 2016-09-25 20:05:47 $.

</BODY>
</HTML>
PK粐\�uc�3�3html/v4.0.4beta.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v4.0.4beta
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v4.0.4beta<BR>
<B>Previous Version</B>: <A HREF=v4.0.3.html>v4.0.3</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).  If you don't
find something listed here, then it was not done in this timeframe, or
it was not considered important enough to be mentioned.  The following
information is located here:
<UL>
<LI><A HREF="#highlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>

	<li> None

</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

  <li> Updated to use Automake 1.15 and Libtool 2.4.5

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>

  <li> TIFFCheckDirOffset(): avoid uint16 overflow
       when reading more than 65535 directories, and effectively error out when
       eaching that limit.

  <li> TIFFNumberOfDirectories(): generate error in case of directory count
       overflow.

  <li> TIFFAdvanceDirectory(): If nextdir is found to
       be defective, then set it to zero before returning error in order
       to terminate processing of truncated TIFF.

  <li> JPEG-in-TIFF: recognize SOF2, SOF9 and SOF10
       markers to avoid emitting a warning. Fix for compatibility with mozjpeg library.
       Note: the default settings of mozjpeg will produce progressive scans, which
       is forbidden by the TechNote.

  <li> JPEG-in-TIFF: Fix regression introduced in 3.9.3/4.0.0 that caused
       all tiles/strips to include quantization tables even when the jpegtablesmode
       had the JPEGTABLESMODE_QUANT bit set.
       Also add explicit removal of Huffman tables when jpegtablesmode has the
       JPEGTABLESMODE_HUFF bit set, which avoids Huffman tables to be emitted in the
       first tile/strip (only useful in update scenarios. create-only was
       fine)

  <li> JPEG-in-TIFF: fix segfault in JPEGFixupTagsSubsampling() on
       corrupted image where tif->tif_dir.td_stripoffset == NULL.
       (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2471">#2471</a>)

  <li> NeXT codec: add new tests to check that we don't read outside of
       the compressed input stream buffer.

  <li> NeXT codec: check that BitsPerSample = 2. Fixes
       <a href="http://bugzilla.maptools.org/show_bug.cgi?id=2487">#2487</a> (CVE-2014-8129)

  <li> NeXT codec: in the "run mode", use tilewidth for tiled images
       instead of imagewidth to avoid crash

  <li> tif_getimage.c: in OJPEG case, fix checks on strile width/height
       in the putcontig8bitYCbCr42tile, putcontig8bitYCbCr41tile and
       putcontig8bitYCbCr21tile cases.

  <li> in TIFFDefaultDirectory(), reset any already existing
       extented tags installed by user code through the extender mechaninm before
       calling the extender callback (GDAL #5054)

  <li> Fix  warnings about unused parameters.

  <li> Fix various typos in comments found by Debian lintian tool (GDAL #5756)

  <li> tif_getimage.c: avoid divide by zero on invalid YCbCr subsampling.
       (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2235">#2235</a>)

  <li> tif_dirread.c: In EstimateStripByteCounts(), check return code
       of _TIFFFillStriles(). This solves crashing bug on corrupted
       images generated by afl.

  <li>tif_read.c: fix several invalid comparisons of a uint64 value with
       &lt;= 0 by casting it to int64 first. This solves crashing bug on corrupted
      images generated by afl.

  <li>TIFFSetField(): refuse to set negative values for
      TIFFTAG_XRESOLUTION and TIFFTAG_YRESOLUTION that cause asserts when writing
      the directory

  <li>TIFFReadDirectory(): refuse to read ColorMap or
      TransferFunction if BitsPerSample has not yet been read, otherwise reading
      it later will cause user code to crash if BitsPerSample > 1

  <li> TIFFRGBAImageOK(): return FALSE if LOGLUV with
       SamplesPerPixel != 3, or if CIELAB with SamplesPerPixel != 3 or BitsPerSample != 8

  <li> tif_config.vc.h: no longer use "#define snprintf _snprintf" with
       Visual Studio 2015 aka VC 14 aka MSVC 1900

  <li> LZW codec: prevent potential null dereference of sp->dec_codetab in LZWPreDecode
       (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2459">#2459</a>)

  <li> TIFFReadBufferSetup(): avoid passing -1 size
       to TIFFmalloc() if passed user buffer size is 0
       (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2459">#2459</a>)

  <li> TIFFReadDirEntryOutputErr(): Incorrect
       count for tag should be a warning rather than an error since
       errors terminate processing.

  <li> tif_dirinfo.c (TIFFField) : Fix data type for TIFFTAG_GLOBALPARAMETERSIFD tag.

  <li> Add definitions for TIFF/EP CFARepeatPatternDim and CFAPattern tags
       (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2457">#2457</a>)

  <li> tif_codec.c, tif_dirinfo.c: Enlarge some fixed-size buffers that weren't
        large enough, and eliminate substantially all uses of sprintf(buf,
        ...)  in favor of using snprintf(buf, sizeof(buf), ...)
  <li> configure.ac: Improve pkg-config static linking by adding -lm to Libs.private when needed.

  <li> tif_write.c: tmsize_t related casting warning fixed for
        64bit linux.

  <li> tif_read.c: uint64/tmsize_t change for MSVC warnings.
       (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2427">#2427</a>)

  <li> Fix TIFFPrintDirectory's handling of
       field_passcount fields: it had the TIFF_VARIABLE and
       TIFF_VARIABLE2 cases backwards.

  <li> PixarLog codec: Improve previous patch for CVE-2012-4447
       (to enlarge tbuf for possible partial stride at end) so that
       overflow in the integer addition is detected.

  <li>tif_{unix,vms,win32}.c (_TIFFmalloc): ANSI C does not
        require malloc() to return NULL pointer if requested allocation
        size is zero.  Assure that _TIFFmalloc does.

  <li>tif_zip.c: Avoid crash on NULL error messages.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>

  <li> tiff2pdf: Fis various crashes and memory buffer access errors (oCERT-2014-013).
  <li> tiff2pdf: fix buffer overflow on some YCbCr JPEG compressed images.
                 (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2445">#2445</a>)
  <li> tiff2pdf: fix buffer overflow on YCbCr JPEG compressed image.
                 (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2443">#2443</a>)
  <li> tiff2pdf: check return code of TIFFGetField() when reading TIFFTAG_SAMPLESPERPIXEL
  <li> tiff2pdf: fix crash due to invalid tile count.
  <li> tiff2pdf: Detect invalid settings of BitsPerSample/SamplesPerPixel for CIELAB / ITULAB
  <li> tiff2pdf: Assure that memory size calculations for
                 _TIFFmalloc() do not overflow the range of tmsize_t.
  <li> tiff2pdf: Avoid crash when TIFFTAG_TRANSFERFUNCTION tag returns one channel,
       with the other two channels set to NULL.
  <li> tiff2pdf: close PDF file. (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2479">#2479</a>)
  <li> tiff2pdf: Preserve input file directory order when pages
       are tagged with the same page number.
  <li> tiff2pdf.c: terminate after failure of allocating ycbcr buffer
       (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2449">#2449</a> CVE-2013-4232)
  <li> tiff2pdf: Rewrite JPEG marker parsing in
        t2p_process_jpeg_strip to be at least marginally competent.  The
        approach is still fundamentally flawed, but at least now it won't
        stomp all over memory when given bogus input.  Fixes CVE-2013-1960.
  <li> tiffdump: Guard against arithmetic overflow when calculating allocation buffer sizes.
  <li> tiffdump: fix crash due to overflow of entry count.
  <li> tiffdump: Fix double-free bug.
  <li> tiffdump: detect cycle in TIFF directory chaining.
       (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2463">#2463</a>)
  <li> tiffdump: avoid passing a NULL pointer to read() if seek() failed before.
       (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2459">#2459</a>)
  <li> tiff2bw: when Photometric=RGB, the utility only works if SamplesPerPixel = 3. Enforce that.
       (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2485">#2485</a>, CVE-2014-8127)
  <li> pal2rgb, thumbnail: fix crash by disabling TIFFTAG_INKNAMES copying.
       (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2484">#2484</a>, CVE-2014-8127)
  <li> thumbnail: fix out-of-buffer write.
       (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2489">#2489</a>, CVE-2014-8128)
  <li> thumbnail, tiffcmp: only read/write TIFFTAG_GROUP3OPTIONS
       or TIFFTAG_GROUP4OPTIONS if compression is COMPRESSION_CCITTFAX3 or
       COMPRESSION_CCITTFAX4.
       (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2493">#2493</a>, CVE-2014-8128)
  <li> tiffcp: fix crash when converting YCbCr JPEG-compressed to none.
       (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2480">#2480</a>)
  <li> bmp2tiff: fix crash due to int overflow related to input BMP dimensions
  <li> tiffcrop: fix crash due to invalid TileWidth/TileHeight
  <li> tiffcrop: fix segfault if bad value passed to -Z option
       ( <a href="http://bugzilla.maptools.org/show_bug.cgi?id=2459">#2459</a>)
       and add missing va_end in dump_info
  <li> thumbnail, tiffcrop: "fix" heap read over-run found with
       Valgrind and Address Sanitizer on test suite
  <li> fax2ps: check malloc()/realloc() result. (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2470">#2470</a>)
  <li> gif2tiff: apply patch for CVE-2013-4243. (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2451">#2451</a>)
  <li> gif2tiff: fix possible OOB write. (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2452">#2452</a>, CVE-2013-4244)
  <li> gif2tiff: Be more careful about corrupt or hostile input files (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2450">#2450</a>, CVE-2013-4231)
  <li> tiff2rgba: fix usage message in that zip was wrongly described
  <li> tiffinfo: Default various values fetched with TIFFGetField() to avoid being uninitialized.
  <li> tiff2ps: Fix bug in auto rotate option code.
  <li> ppm2tiff: avoid zero size buffer vulnerability (CVE-2012-4564).
       check the linebytes calculation too, get the max() calculation
       straight, avoid redundant error messages, check for malloc
       failure.
  <li> tiffset: now supports a -u option to unset a tag.
       (<a href="http://bugzilla.maptools.org/show_bug.cgi?id=2419">#2419</a>)
  <li> Fix warnings about unused parameters.
  <li> rgb2ycbcr, tiff2bw, tiff2pdf, tiff2ps, tiffcrop, tiffdither :
       Enlarge some fixed-size buffers that weren't
       large enough, and eliminate substantially all uses of sprintf(buf,
       ...)  in favor of using snprintf(buf, sizeof(buf), ...), so as to
       protect against overflow of fixed-size buffers.  This responds in
       particular to CVE-2013-1961 concerning overflow in tiff2pdf.c's
       t2p_write_pdf_page().
  <li>html/man/tiff2ps.1.html, html/man/tiffcp.1.html,
        html/man/tiffdither.1.html, man/tiff2ps.1, man/tiffcp.1,
        man/tiffdither.1, tools/tiff2ps.c, tools/tiffcp.c,
        tools/tiffdither.c: Sync tool usage printouts and man pages with
        reality

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

    <li> Fix warnings about variables set but not used.
    <li> contrib/dbs/xtiff/xtiff.c: Enlarge some fixed-size buffers that weren't
        large enough, and eliminate substantially all uses of sprintf(buf,
        ...)  in favor of using snprintf(buf, sizeof(buf), ...), so as to
        protect against overflow of fixed-size buffers.
</UL>

Last updated $Date: 2016-09-25 20:05:47 $.

</BODY>
</HTML>
PK粐\h�html/v4.0.5.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v4.0.5
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v4.0.5<BR>
<B>Previous Version</B>: <A HREF=v4.0.4.html>v4.0.4</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).  If you don't
find something listed here, then it was not done in this timeframe, or
it was not considered important enough to be mentioned.  The following
information is located here:
<UL>
<LI><A HREF="#highlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>

	<li> Support for configure/build using CMake.
	<li> Support for large (> 2GB) files under Microsoft Windows.

</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

  <LI> CMakeLists.txt / CMake
    <UL>
      <LI> Configuration and building using CMake is now supported
      under Microsoft Windows and on Unix-type systems.
    </UL>
  </LI>

  <LI> configure.ac / configure
    <UL>
      <LI> Test for and use fseeko() if it is available.  This allows
      supporting large files on Unix-type systems with a 32-bit 'long'
      type and a 64-bit 'off_t' type.
    </UL>
  </LI>

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>

    <LI> tiffiop.h:
    <UL>
      <LI> Macros added to use 64-bit equivalents for all standard I/O
      and POSIX APIs used by libtiff and its tools which are limited
      to 2GB in Windows builds.  Note that these 64-bit equivalents
      were introduced by the CRT provided with Visual Studio 2005 and
      if the necessary CRT is not installed on the target computer,
      the program will not run.  The wrapper macros will not be
      activated unless the definition _MSC_VER is at least 1400 or
      __MSVCRT_VERSION__ is at least 0x800.
    </UL>

  <LI> tif_unix.c:
    <UL>
      <LI> Updated to support large files under Microsoft Windows.
      This makes tif_unix.c a completely viable candidate for use
      under Windows (in spite of its name) if the CRT is modern
      enough.  Please note that tif_win32.c already supported large
      files, but only 'tiffinfo' and 'tiffdump' made any provision to
      support large files under Windows.
      <LI> _tiffReadProc() and _tiffWriteProc() are modified to chunk
      I/O to a maximum size of 2GB for extremely large I/O
      requests. This surmounts limitations in the Microsoft Windows
      read() and write() APIs (which are limited to the range of a
      32-bit 'int'), and may avoid poor behavior with extremely large
      I/O requests on other systems.
    </UL>


</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>

  <LI> All tools
    <UL>
      <LI> Updated to use I/O wrapper macros from tiffiop.h in order
      to support large files under Microsoft Windows.
    </UL>

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

  <LI> None

</UL>

Last updated $Date: 2016-09-25 20:05:47 $.

</BODY>
</HTML>
PK粐\^z#��html/v4.0.6.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v4.0.6
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v4.0.6<BR>
<B>Previous Version</B>: <A HREF=v4.0.5.html>v4.0.5</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).  If you don't
find something listed here, then it was not done in this timeframe, or
it was not considered important enough to be mentioned.  The following
information is located here:
<UL>
<LI><A HREF="#highlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>

	<li> Now builds with CMake 2.8.9 and newer (previously required 3.0.0)

</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

  <LI> CMakeLists.txt / CMake
    <UL>
      <LI> Supports CMake 2.8.9 and later.
      <LI> Add missing file which wasn't being distributed, causing
      unit tests to fail.
      <LI> Make shared/static library building configurable.
      <LI> CMake reads all version information directly from
      configure.ac to avoid duplication of values.
      <LI> CMake builds are now included in 'distcheck' target.
    </UL>
  </LI>

  <LI> Makefile.am
    <UL>
      <LI> Autotools 'make distcheck' now tests the CMake-based build
      if CMake is available.
    </UL>
  </LI>

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>

    <LI> Fixes to avoid undefined behaviour of signed types (C
    standard compliance).
    <LI> Fixes to avoid possible isses when casting to unsigned char.
    <LI> Fixes to avoid undefined behaviour with shifts.
    <LI> Fix generation of output with 16 bit or 32 bit integer, when
    byte swapping is needed, in horizontal predictor (#2521).
    <LI> Fix decoding when there is a single pixel to decode (unlikely
    case...) and byte swapping is involved.
    <LI> Add add explicit masking with 0xff before casting to uchar in
    floating-point horizontal differencing and accumulation routines.
    <LI> Eliminate requirement for and use of 64-bit constant values.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>

  <LI> tiffgt
    <UL>
      <LI> Silence glut API deprecation warnings on MacOS X.
    </UL>


  <LI> fax2ps
    <UL>
      <LI> Detect failure to write to temporary file.
    </UL>

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

  <LI> None

</UL>

Last updated $Date: 2016-09-25 20:05:47 $.

</BODY>
</HTML>
PK粐\lm�p�C�Chtml/v4.0.7.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v4.0.7
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v4.0.7<BR>
<B>Previous Version</B>: <A HREF=v4.0.6.html>v4.0.6</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site #1</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a><BR>
<B>Master HTTP Site #2</B>: <A HREF="http://libtiff.maptools.org/">
http://libtiff.maptools.org/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).  If you don't
find something listed here, then it was not done in this timeframe, or
it was not considered important enough to be mentioned.  The following
information is located here:
<UL>
<LI><A HREF="#highlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>

	<LI> The libtiff tools bmp2tiff, gif2tiff, ras2tiff, sgi2tiff,
        sgisv, and ycbcr are completely removed from the distribution.
        These tools were written in the late 1980s and early 1990s for
        test and demonstration purposes.  In some cases the tools were
        never updated to support updates to the file format, or the
        file formats are now rarely used.  In all cases these tools
        increased the libtiff security and maintenance exposure beyond
        the value offered by the tool.

</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

  <LI> None

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>

    <LI> libtiff/tif_dirread.c: in TIFFFetchNormalTag(), do not
        dereference NULL pointer when values of tags with
        TIFF_SETGET_C16_ASCII / TIFF_SETGET_C32_ASCII access are
        0-byte arrays.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2593 (regression
        introduced by previous fix done on 2016-11-11 for
        CVE-2016-9297).  Reported by Henri Salo. Assigned as
        CVE-2016-9448

    <LI> libtiff/tif_aux.c: fix crash in TIFFVGetFieldDefaulted() when
        requesting Predictor tag and that the zip/lzw codec is not
        configured.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2591

    <LI> libtiff/tif_dirread.c: in TIFFFetchNormalTag(), make sure
        that values of tags with TIFF_SETGET_C16_ASCII /
        TIFF_SETGET_C32_ASCII access are null terminated, to avoid
        potential read outside buffer in _TIFFPrintField().  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2590

    <LI> libtiff/tif_dirread.c: reject images with OJPEG compression
        that have no TileOffsets/StripOffsets tag, when OJPEG
        compression is disabled. Prevent null pointer dereference in
        TIFFReadRawStrip1() and other functions that expect
        td_stripbytecount to be non NULL.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2585

    <LI> libtiff/tif_strip.c: make TIFFNumberOfStrips() return the
        td->td_nstrips value when it is non-zero, instead of
        recomputing it. This is needed in TIFF_STRIPCHOP mode where
        td_nstrips is modified. Fixes a read outsize of array in
        tiffsplit (or other utilities using TIFFNumberOfStrips()).
        Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2587
        (CVE-2016-9273)

    <LI> libtiff/tif_predict.h, libtiff/tif_predict.c: Replace
        assertions by runtime checks to avoid assertions in debug
        mode, or buffer overflows in release mode. Can happen when
        dealing with unusual tile size like YCbCr with
        subsampling. Reported as MSVR 35105 by Axel Souchet & Vishal
        Chauhan from the MSRC Vulnerabilities & Mitigations

    <LI> libtiff/tif_dir.c: discard values of SMinSampleValue and
        SMaxSampleValue when they have been read and the value of
        SamplesPerPixel is changed afterwards (like when reading a
        OJPEG compressed image with a missing SamplesPerPixel tag, and
        whose photometric is RGB or YCbCr, forcing SamplesPerPixel
        being 3). Otherwise when rewriting the directory (for example
        with tiffset, we will expect 3 values whereas the array had
        been allocated with just one), thus causing a out of bound
        read access.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2500
        (CVE-2014-8127, duplicate: CVE-2016-3658)

    <LI> libtiff/tif_dirwrite.c: avoid null pointer dereference on
        td_stripoffset when writing directory, if FIELD_STRIPOFFSETS
        was artificially set for a hack case in OJPEG case.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2500
        (CVE-2014-8127, duplicate: CVE-2016-3658)

    <LI> libtiff/tif_getimage.c (TIFFRGBAImageOK): Reject attempts to
        read floating point images.

    <LI> libtiff/tif_predict.c (PredictorSetup): Enforce
        bits-per-sample requirements of floating point predictor (3).
        Fixes CVE-2016-3622 "Divide By Zero in the tiff2rgba tool."

    <LI> libtiff/tif_pixarlog.c: fix out-of-bounds write vulnerabilities
        in heap allocated buffers. Reported as MSVR 35094. Discovered by
        Axel Souchet and Vishal Chauhan from the MSRC Vulnerabilities &
        Mitigations team.

    <LI> libtiff/tif_write.c: fix issue in error code path of
        TIFFFlushData1() that didn't reset the tif_rawcc and tif_rawcp
        members. I'm not completely sure if that could happen in
        practice outside of the odd behaviour of t2p_seekproc() of
        tiff2pdf). The report points that a better fix could be to
        check the return value of TIFFFlushData1() in places where it
        isn't done currently, but it seems this patch is enough.
        Reported as MSVR 35095. Discovered by Axel Souchet & Vishal
        Chauhan & Suha Can from the MSRC Vulnerabilities & Mitigations
        team.

    <LI> libtiff/tif_pixarlog.c: Fix write buffer overflow in
        PixarLogEncode if more input samples are provided than
        expected by PixarLogSetupEncode.  Idea based on
        libtiff-CVE-2016-3990.patch from
        libtiff-4.0.3-25.el7_2.src.rpm by Nikola Forro, but with
        different and simpler check. (bugzilla #2544)

    <LI> libtiff/tif_read.c: Fix out-of-bounds read on memory-mapped
        files in TIFFReadRawStrip1() and TIFFReadRawTile1() when
        stripoffset is beyond tmsize_t max value (reported by Mathias
        Svensson)

    <LI> libtiff/tif_read.c: make TIFFReadEncodedStrip() and
        TIFFReadEncodedTile() directly use user provided buffer when
        no compression (and other conditions) to save a memcpy()

    <LI> libtiff/tif_write.c: make TIFFWriteEncodedStrip() and
        TIFFWriteEncodedTile() directly use user provided buffer when
        no compression to save a memcpy().

    <LI> libtiff/tif_luv.c: validate that for COMPRESSION_SGILOG and
        PHOTOMETRIC_LOGL, there is only one sample per pixel. Avoid
        potential invalid memory write on corrupted/unexpected images
        when using the TIFFRGBAImageBegin() interface (reported by
        Clay Wood)

    <LI> libtiff/tif_pixarlog.c: fix potential buffer write overrun in
        PixarLogDecode() on corrupted/unexpected images (reported by
        Mathias Svensson) (CVE-2016-5875)

    <LI> libtiff/libtiff.def: Added _TIFFMultiply32 and
        _TIFFMultiply64 to libtiff.def

     <LI> libtiff/tif_config.vc.h (HAVE_SNPRINTF): Add a '1' to the
        HAVE_SNPRINTF definition.

    <LI> libtiff/tif_config.vc.h (HAVE_SNPRINTF): Applied patch by
        Edward Lam to define HAVE_SNPRINTF for Visual Studio 2015.

    <LI> libtiff/tif_dirread.c: when compiled with DEFER_STRILE_LOAD,
        fix regression, introduced on 2014-12-23, when reading a
        one-strip file without a StripByteCounts tag. GDAL #6490

    <LI> libtiff/*: upstream typo fixes (mostly contributed by Kurt
        Schwehr) coming from GDAL internal libtiff

    <LI> libtiff/tif_fax3.h: make Param member of TIFFFaxTabEnt
        structure a uint16 to reduce size of the binary.

    <LI> libtiff/tif_read.c, tif_dirread.c: fix indentation issues
        raised by GCC 6 -Wmisleading-indentation

    <LI> libtiff/tif_pixarlog.c: avoid zlib error messages to pass a
        NULL string to %s formatter, which is undefined behaviour in
        sprintf().

    <LI> libtiff/tif_next.c: fix potential out-of-bound write in NeXTDecode()
        triggered by http://lcamtuf.coredump.cx/afl/vulns/libtiff5.tif
        (bugzilla #2508)

    <LI> libtiff/tif_luv.c: fix potential out-of-bound writes in
        decode functions in non debug builds by replacing assert()s by
        regular if checks (bugzilla #2522).  Fix potential
        out-of-bound reads in case of short input data.

    <LI> libtiff/tif_getimage.c: fix out-of-bound reads in
        TIFFRGBAImage interface in case of unsupported values of
        SamplesPerPixel/ExtraSamples for LogLUV / CIELab. Add explicit
        call to TIFFRGBAImageOK() in TIFFRGBAImageBegin(). Fix
        CVE-2015-8665 reported by limingxing and CVE-2015-8683
        reported by zzf of Alibaba.

    <LI> libtiff/tif_dirread.c: workaround false positive warning of
        Clang Static Analyzer about null pointer dereference in
        TIFFCheckDirOffset().

    <LI> libtiff/tif_fax3.c: remove dead assignment in
        Fax3PutEOLgdal(). Found by Clang Static Analyzer

    <LI> libtiff/tif_dirwrite.c: fix truncation to 32 bit of file
        offsets in TIFFLinkDirectory() and TIFFWriteDirectorySec()
        when aligning directory offsets on a even offset (affects
        BigTIFF). This was a regression of the changeset of
        2015-10-19.

    <LI> libtiff/tif_write.c: TIFFWriteEncodedStrip() and
        TIFFWriteEncodedTile() should return -1 in case of failure of
        tif_encodestrip() as documented

    <LI> libtiff/tif_dumpmode.c: DumpModeEncode() should return 0 in
        case of failure so that the above mentionned functions detect
        the error.

    <LI> libtiff/*.c: fix MSVC warnings related to cast shortening and
        assignment within conditional expression

    <LI> libtiff/*.c: fix clang -Wshorten-64-to-32 warnings

    <LI> libtiff/tif_dirread.c: prevent reading ColorMap or
        TransferFunction if BitsPerPixel > 24, so as to avoid huge
        memory allocation and file read attempts

    <LI> libtiff/tif_dirread.c: remove duplicated assignment (reported
        by Clang static analyzer)

    <LI> libtiff/tif_dir.c, libtiff/tif_dirinfo.c,
        libtiff/tif_compress.c, libtiff/tif_jpeg_12.c: suppress
        warnings about 'no previous declaration/prototype'

    <LI> libtiff/tiffiop.h, libtiff/tif_dirwrite.c: suffix constants
        by U to fix 'warning: negative integer implicitly converted to
        unsigned type' warning (part of -Wconversion)

    <LI> libtiff/tif_dir.c, libtiff/tif_dirread.c,
          libtiff/tif_getimage.c, libtiff/tif_print.c: fix -Wshadow
          warnings (only in libtiff/)

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>

    <LI> tools/Makefile.am: The libtiff tools bmp2tiff, gif2tiff,
        ras2tiff, sgi2tiff, sgisv, and ycbcr are completely removed
        from the distribution.  The libtiff tools rgb2ycbcr and
        thumbnail are only built in the build tree for testing.  Old
        files are put in new 'archive' subdirectory of the source
        repository, but not in distribution archives.  These changes
        are made in order to lessen the maintenance burden.

    <LI> tools/tiff2pdf.c: avoid undefined behaviour related to
        overlapping of source and destination buffer in memcpy() call
        in t2p_sample_rgbaa_to_rgb() Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2577

    <LI> tools/tiff2pdf.c: fix potential integer overflows on 32 bit
        builds in t2p_read_tiff_size() Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2576

    <LI> tools/fax2tiff.c: fix segfault when specifying -r without
        argument. Patch by Yuriy M. Kaminskiy.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2572

    <LI> tools/tiffinfo.c: fix out-of-bound read on some tiled images.
        (http://bugzilla.maptools.org/show_bug.cgi?id=2517)

    <LI> tools/tiffcrop.c: fix multiple uint32 overflows in
        writeBufferToSeparateStrips(), writeBufferToContigTiles() and
        writeBufferToSeparateTiles() that could cause heap buffer
        overflows.  Reported by Henri Salo from Nixu Corporation.
        Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2592

    <LI> tools/tiffcrop.c: fix out-of-bound read of up to 3 bytes in
        readContigTilesIntoBuffer(). Reported as MSVR 35092 by Axel
        Souchet & Vishal Chauhan from the MSRC Vulnerabilities &
        Mitigations team.

    <LI> tools/tiff2pdf.c: fix write buffer overflow of 2 bytes on
        JPEG compressed images. Reported by Tyler Bohan of Cisco Talos
        as TALOS-CAN-0187 / CVE-2016-5652.  Also prevents writing 2
        extra uninitialized bytes to the file stream.

    <LI> tools/tiffcp.c: fix out-of-bounds write on tiled images with odd
        tile width vs image width. Reported as MSVR 35103
        by Axel Souchet and Vishal Chauhan from the MSRC Vulnerabilities &
        Mitigations team.

    <LI> tools/tiff2pdf.c: fix read -largely- outsize of buffer in
        t2p_readwrite_pdf_image_tile(), causing crash, when reading a
        JPEG compressed image with TIFFTAG_JPEGTABLES length being
        one.  Reported as MSVR 35101 by Axel Souchet and Vishal
        Chauhan from the MSRC Vulnerabilities & Mitigations team.

    <LI> tools/tiffcp.c: fix read of undefined variable in case of
        missing required tags. Found on test case of MSVR 35100.

    <LI> tools/tiffcrop.c: fix read of undefined buffer in
        readContigStripsIntoBuffer() due to uint16 overflow. Probably
        not a security issue but I can be wrong. Reported as MSVR
        35100 by Axel Souchet from the MSRC Vulnerabilities &
        Mitigations team.

    <LI> tools/tiffcrop.c: fix various out-of-bounds write
        vulnerabilities in heap or stack allocated buffers. Reported
        as MSVR 35093, MSVR 35096 and MSVR 35097. Discovered by Axel
        Souchet and Vishal Chauhan from the MSRC Vulnerabilities &
        Mitigations team.

    <LI> tools/tiff2pdf.c: fix out-of-bounds write vulnerabilities in
        heap allocate buffer in t2p_process_jpeg_strip(). Reported as
        MSVR 35098. Discovered by Axel Souchet and Vishal Chauhan from
        the MSRC Vulnerabilities & Mitigations team.

    <LI> tools/tiff2bw.c: fix weight computation that could result of
        color value overflow (no security implication). Fix bugzilla
        #2550.  Patch by Frank Freudenberg.

    <LI> tools/rgb2ycbcr.c: validate values of -v and -h parameters to
        avoid potential divide by zero. Fixes CVE-2016-3623 (bugzilla #2569)

    <LI> tools/tiffcrop.c: Fix out-of-bounds write in loadImage().
        From patch libtiff-CVE-2016-3991.patch from
        libtiff-4.0.3-25.el7_2.src.rpm by Nikola Forro (bugzilla
        #2543)

    <LI> tools/tiff2rgba.c: Fix integer overflow in size of allocated
        buffer, when -b mode is enabled, that could result in
        out-of-bounds write. Based initially on patch
        tiff-CVE-2016-3945.patch from libtiff-4.0.3-25.el7_2.src.rpm
        by Nikola Forro, with correction for invalid tests that
        rejected valid files. (bugzilla #2545)

    <LI> tools/tiffcrop.c: Avoid access outside of stack allocated
        array on a tiled separate TIFF with more than 8 samples per
        pixel.  Reported by Kaixiang Zhang of the Cloud Security Team,
        Qihoo 360 (CVE-2016-5321 / CVE-2016-5323 , bugzilla #2558 /
        #2559)

    <LI> tools/tiffdump.c: fix a few misaligned 64-bit reads warned by
        -fsanitize

    <LI> tools/tiffdump.c (ReadDirectory): Remove uint32 cast to
        _TIFFmalloc() argument which resulted in Coverity report.
        Added more mutiplication overflow checks.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

  <LI> None

</UL>

Last updated $Date: 2016-11-19 17:47:40 $.

</BODY>
</HTML>
PK粐\`��%I%Ihtml/v4.0.8.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v4.0.8
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v4.0.8<BR>
<B>Previous Version</B>: <A HREF=v4.0.7.html>v4.0.7</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site #1</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a><BR>
<B>Master HTTP Site #2</B>: <A HREF="http://libtiff.maptools.org/">
http://libtiff.maptools.org/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).  If you don't
find something listed here, then it was not done in this timeframe, or
it was not considered important enough to be mentioned.  The following
information is located here:
<UL>
<LI><A HREF="#highlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>

	<LI> None

</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

  <LI> None

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>

    <LI> libtiff/tif_getimage.c, libtiff/tif_open.c: add parenthesis
        to fix cppcheck clarifyCalculation warnings *
        libtiff/tif_predict.c, libtiff/tif_print.c: fix printf
        unsigned vs signed formatting (cppcheck
        invalidPrintfArgType_uint warnings)

    <LI> libtiff/tif_read.c, libtiff/tiffiop.h: fix uint32 overflow in
        TIFFReadEncodedStrip() that caused an integer division by
        zero.  Reported by Agostino Sarubbo.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2596

    <LI> libtiff/tif_pixarlog.c, libtiff/tif_luv.c: fix heap-based
        buffer overflow on generation of PixarLog / LUV compressed
        files, with ColorMap, TransferFunction attached and nasty
        plays with bitspersample.  The fix for LUV has not been
        tested, but suffers from the same kind of issue of PixarLog.
        Reported by Agostino Sarubbo.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2604

    <LI> libtiff/tif_strip.c: revert the change in
        TIFFNumberOfStrips() done for
        http://bugzilla.maptools.org/show_bug.cgi?id=2587 /
        CVE-2016-9273 since the above change is a better fix that
        makes it unnecessary.

    <LI> libtiff/tif_dirread.c: modify ChopUpSingleUncompressedStrip()
        to instanciate compute ntrips as
        TIFFhowmany_32(td->td_imagelength, rowsperstrip), instead of a
        logic based on the total size of data. Which is faulty is the
        total size of data is not sufficient to fill the whole image,
        and thus results in reading outside of the
        StripByCounts/StripOffsets arrays when using
        TIFFReadScanline().  Reported by Agostino Sarubbo.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2608.

    <LI> libtiff/tif_ojpeg.c: make OJPEGDecode() early exit in case of
        failure in OJPEGPreDecode(). This will avoid a divide by zero,
        and potential other issues.  Reported by Agostino Sarubbo.
        Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2611

    <LI> libtiff/tif_write.c: fix misleading indentation as warned by GCC.


    <LI> libtiff/tif_fax3.h: revert change done on 2016-01-09 that
        made Param member of TIFFFaxTabEnt structure a uint16 to
        reduce size of the binary. It happens that the Hylafax
        software uses the tables that follow this typedef
        (TIFFFaxMainTable, TIFFFaxWhiteTable, TIFFFaxBlackTable),
        although they are not in a public libtiff header.  Raised by
        Lee Howard.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2636

    <LI> libtiff/tiffio.h, libtiff/tif_getimage.c: add
        TIFFReadRGBAStripExt() and TIFFReadRGBATileExt() variants of
        the functions without ext, with an extra argument to control
        the stop_on_error behaviour.

    <LI> libtiff/tif_getimage.c: fix potential memory leaks in error
        code path of TIFFRGBAImageBegin().  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2627

    <LI> libtiff/tif_jpeg.c: increase libjpeg max memory usable to 10
        MB instead of libjpeg 1MB default. This helps when creating
        files with "big" tile, without using libjpeg temporary files.
        Related to https://trac.osgeo.org/gdal/ticket/6757

    <LI> libtiff/tif_jpeg.c: avoid integer division by zero in
        JPEGSetupEncode() when horizontal or vertical sampling is set
        to 0.  Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2653

    <LI> libtiff/tif_dirwrite.c: in
        TIFFWriteDirectoryTagCheckedRational, replace assertion by
        runtime check to error out if passed value is strictly
        negative.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2535

    <LI> libtiff/tif_dirread.c: avoid division by floating point 0 in
        TIFFReadDirEntryCheckedRational() and
        TIFFReadDirEntryCheckedSrational(), and return 0 in that case
        (instead of infinity as before presumably) Apparently some
        sanitizers do not like those divisions by zero.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2644

    <LI> libtiff/tif_dir.c, tif_dirread.c, tif_dirwrite.c: implement
        various clampings of double to other data types to avoid
        undefined behaviour if the output range isn't big enough to
        hold the input value.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2643
        http://bugzilla.maptools.org/show_bug.cgi?id=2642
        http://bugzilla.maptools.org/show_bug.cgi?id=2646
        http://bugzilla.maptools.org/show_bug.cgi?id=2647

    <LI> libtiff/tif_jpeg.c: validate BitsPerSample in
        JPEGSetupEncode() to avoid undefined behaviour caused by
        invalid shift exponent.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2648

    <LI> libtiff/tif_read.c: avoid potential undefined behaviour on
        signed integer addition in TIFFReadRawStrip1() in isMapped()
        case.  Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2650

    <LI> libtiff/tif_getimage.c: add explicit uint32 cast in
        putagreytile to avoid UndefinedBehaviorSanitizer warning.
        Patch by Nicolás Peña.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2658

    <LI> libtiff/tif_read.c: TIFFReadBufferSetup(): use _TIFFcalloc()
        to zero initialize tif_rawdata.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2651

    <LI> libtiff/tiffio.h, tif_unix.c, tif_win32.c, tif_vms.c: add
    _TIFFcalloc()

    <LI> libtiff/tif_luv.c, tif_lzw.c, tif_packbits.c: return 0 in
        Encode functions instead of -1 when TIFFFlushData1() fails.
        Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2130

    <LI> libtiff/tif_ojpeg.c: fix leak in
        OJPEGReadHeaderInfoSecTablesQTable,
        OJPEGReadHeaderInfoSecTablesDcTable and
        OJPEGReadHeaderInfoSecTablesAcTable when read fails.  Patch by
        Nicolás Peña.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2659

    <LI> libtiff/tif_jpeg.c: only run JPEGFixupTagsSubsampling() if
        the YCbCrSubsampling tag is not explicitly present. This helps
        a bit to reduce the I/O amount when the tag is present
        (especially on cloud hosted files).

    <LI> libtiff/tif_lzw.c: in LZWPostEncode(), increase, if
        necessary, the code bit-width after flushing the remaining
        code and before emitting the EOI code.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=1982

    <LI> libtiff/tif_pixarlog.c: fix memory leak in error code path of
        PixarLogSetupDecode(). Patch by Nicolás Peña.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2665

    <LI> libtiff/tif_fax3.c, tif_predict.c, tif_getimage.c: fix GCC 7
        -Wimplicit-fallthrough warnings.

    <LI> libtiff/tif_dirread.c: fix memory leak in non
        DEFER_STRILE_LOAD mode (ie default) when there is both a
        StripOffsets and TileOffsets tag, or a StripByteCounts and
        TileByteCounts Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2689

    <LI> libtiff/tif_ojpeg.c: fix potential memory leak in
        OJPEGReadHeaderInfoSecTablesQTable,
        OJPEGReadHeaderInfoSecTablesDcTable and
        OJPEGReadHeaderInfoSecTablesAcTable Patch by Nicolás Peña.
        Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2670

    <LI> libtiff/tif_fax3.c: avoid crash in Fax3Close() on empty file.
        Patch by Alan Coopersmith + complement by myself.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2673

    <LI> libtiff/tif_read.c: TIFFFillStrip(): add limitation to the
        number of bytes read in case td_stripbytecount[strip] is
        bigger than reasonable, so as to avoid excessive memory
        allocation.

    <LI> libtiff/tif_zip.c, tif_pixarlog.c, tif_predict.c: fix memory
        leak when the underlying codec (ZIP, PixarLog) succeeds its
        setupdecode() method, but PredictorSetup fails.  Credit to
        OSS-Fuzz (locally run, on GDAL)

    <LI> libtiff/tif_read.c: TIFFFillStrip() and TIFFFillTile(): avoid
        excessive memory allocation in case of shorten files.  Only
        effective on 64 bit builds and non-mapped cases.  Credit to
        OSS-Fuzz (locally run, on GDAL)

    <LI> libtiff/tif_read.c: TIFFFillStripPartial() / TIFFSeek(),
        avoid potential integer overflows with read_ahead in
        CHUNKY_STRIP_READ_SUPPORT mode. Should
        especially occur on 32 bit platforms.

    <LI> libtiff/tif_read.c: TIFFFillStripPartial(): avoid excessive
        memory allocation in case of shorten files.  Only effective on
        64 bit builds.  Credit to OSS-Fuzz (locally run, on GDAL)

    <LI> libtiff/tif_read.c: update tif_rawcc in
        CHUNKY_STRIP_READ_SUPPORT mode with tif_rawdataloaded when
        calling TIFFStartStrip() or TIFFFillStripPartial(). This
        avoids reading beyond tif_rawdata when bytecount >
        tif_rawdatasize.  Fixes
        https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1545.
        Credit to OSS-Fuzz

    <LI> libtiff/tif_color.c: avoid potential int32 overflow in
        TIFFYCbCrToRGBInit() Fixes
        https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1533
        Credit to OSS-Fuzz

    <LI> libtiff/tif_pixarlog.c, tif_luv.c: avoid potential int32
        overflows in multiply_ms() and add_ms().  Fixes
        https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1558
        Credit to OSS-Fuzz

    <LI> libtiff/tif_packbits.c: fix out-of-buffer read in
        PackBitsDecode() Fixes
        https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1563
        Credit to OSS-Fuzz

    <LI> libtiff/tif_luv.c: LogL16InitState(): avoid excessive memory
        allocation when RowsPerStrip tag is missing.
        Credit to OSS-Fuzz (locally run, on GDAL)

    <LI> libtiff/tif_lzw.c: update dec_bitsleft at beginning of
        LZWDecode(), and update tif_rawcc at end of LZWDecode(). This
        is needed to properly work with the latest chnges in
        tif_read.c in CHUNKY_STRIP_READ_SUPPORT mode.

    <LI> libtiff/tif_pixarlog.c: PixarLogDecode(): resync tif_rawcp
        with next_in and tif_rawcc with avail_in at beginning and end
        of function, similarly to what is done in LZWDecode(). Likely
        needed so that it works properly with latest chnges in
        tif_read.c in CHUNKY_STRIP_READ_SUPPORT mode. But untested...

    <LI> libtiff/tif_getimage.c: initYCbCrConversion(): add basic
        validation of luma and refBlackWhite coefficients (just check
        they are not NaN for now), to avoid potential float to int
        overflows.  Fixes
        https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1663
        Credit to OSS Fuzz

    <LI> libtiff/tif_read.c: _TIFFVSetField(): fix outside range cast
        of double to float.  Credit to Google Autofuzz project

    <LI> libtiff/tif_getimage.c: initYCbCrConversion(): check luma[1]
        is not zero to avoid division by zero.  Fixes
        https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1665
        Credit to OSS Fuzz

    <LI> libtiff/tif_read.c: _TIFFVSetField(): fix outside range cast
        of double to float.  Credit to Google Autofuzz project

    <LI> libtiff/tif_getimage.c: initYCbCrConversion(): check luma[1]
        is not zero to avoid division by zero.  Fixes
        https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1665
        Credit to OSS Fuzz

    <LI> libtiff/tif_getimage.c: initYCbCrConversion(): stricter
        validation for refBlackWhite coefficients values. To avoid
        invalid float->int32 conversion.  Fixes
        https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1718
        Credit to OSS Fuzz

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>

    <LI> tools/fax2tiff.c (main): Applied patch by Jörg Ahrens to fix
        passing client data for Win32 builds using tif_win32.c
        (USE_WIN32_FILEIO defined) for file I/O.  Patch was provided
        via email on November 20, 2016.

    <LI> tools/tiffcp.c: avoid uint32 underflow in cpDecodedStrips
        that can cause various issues, such as buffer overflows in the
        library.  Reported by Agostino Sarubbo.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2598

    <LI> tools/tiffcrop.c: fix readContigStripsIntoBuffer() in -i
        (ignore) mode so that the output buffer is correctly
        incremented to avoid write outside bounds.  Reported by
        Agostino Sarubbo.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2620

    <LI> tools/tiffcrop.c: add 3 extra bytes at end of strip buffer in
        readSeparateStripsIntoBuffer() to avoid read outside of heap
        allocated buffer.  Reported by Agostino Sarubbo.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2621

    <LI> tools/tiffcrop.c: fix integer division by zero when
        BitsPerSample is missing.  Reported by Agostino Sarubbo.
        Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2619

    <LI> tools/tiffinfo.c: fix null pointer dereference in -r mode
        when the image has no StripByteCount tag.  Reported by
        Agostino Sarubbo.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2594

    <LI> tools/tiffcp.c: avoid potential division by zero is
        BitsPerSamples tag is missing.  Reported by Agostino Sarubbo.
        Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2597

    <LI> tools/tif_dir.c: when TIFFGetField(, TIFFTAG_NUMBEROFINKS, )
        is called, limit the return number of inks to SamplesPerPixel,
        so that code that parses ink names doesn't go past the end of
        the buffer.  Reported by Agostino Sarubbo.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2599

    <LI> tools/tiffcp.c: avoid potential division by zero is
        BitsPerSamples tag is missing.  Reported by Agostino Sarubbo.
        Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2607

    <LI> tools/tiffcp.c: fix uint32 underflow/overflow that can cause
        heap-based buffer overflow.  Reported by Agostino Sarubbo.
        Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2610

    <LI> tools/tiffcp.c: replace assert( (bps % 8) == 0 ) by a non
        assert check.  Reported by Agostino Sarubbo.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2605

    <LI> tools/tiff2ps.c: fix 2 heap-based buffer overflows (in
        PSDataBW and PSDataColorContig). Reported by Agostino Sarubbo.
        Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2633 and
        http://bugzilla.maptools.org/show_bug.cgi?id=2634.

    <LI> tools/tiff2pdf.c: prevent heap-based buffer overflow in -j
        mode on a paletted image. Note: this fix errors out before the
        overflow happens. There could probably be a better fix.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2635

    <LI> tools/tiff2pdf.c: fix wrong usage of memcpy() that can
        trigger unspecified behaviour.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2638

    <LI> tools/tiff2pdf.c: avoid potential invalid memory read in
        t2p_writeproc.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2639

    <LI> tools/tiff2pdf.c: avoid potential heap-based overflow in
        t2p_readwrite_pdf_image_tile().  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2640

    <LI> tools/tiffcrop.c: remove extraneous TIFFClose() in error code
        path, that caused double free.  Related to
        http://bugzilla.maptools.org/show_bug.cgi?id=2535

    <LI> tools/tiffcp.c: error out cleanly in cpContig2SeparateByRow
        and cpSeparate2ContigByRow if BitsPerSample != 8 to avoid heap
        based overflow.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2656 and
        http://bugzilla.maptools.org/show_bug.cgi?id=2657

    <LI> tools/raw2tiff.c: avoid integer division by zero.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2631

    <LI> tools/tiff2ps.c: call TIFFClose() in error code paths.

    <LI> tools/fax2tiff.c: emit appropriate message if the input file
        is empty. Patch by Alan Coopersmith.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2672

    <LI> tools/tiff2bw.c: close TIFF handle in error code path.  Fixes
        http://bugzilla.maptools.org/show_bug.cgi?id=2677

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

  <LI> None

</UL>

Last updated $Date: 2017-05-21 17:47:46 $.

</BODY>
</HTML>
PK粐\�.�F�Fhtml/v4.0.9.htmlnu�[���<HTML>
<HEAD>
<TITLE>
	Changes in TIFF v4.0.9
</TITLE>
</HEAD>

<BODY BGCOLOR=white>
<FONT FACE="Helvetica, Arial, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v4.0.9<BR>
<B>Previous Version</B>: <A HREF=v4.0.8.html>v4.0.8</a><BR>
<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
download.osgeo.org</a>, directory pub/libtiff</A><BR>
<B>Master HTTP Site #1</B>: <A HREF="http://www.simplesystems.org/libtiff/">
http://www.simplesystems.org/libtiff/</a><BR>
<B>Master HTTP Site #2</B>: <A HREF="http://libtiff.maptools.org/">
http://libtiff.maptools.org/</a> 
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).  If you don't
find something listed here, then it was not done in this timeframe, or
it was not considered important enough to be mentioned.  The following
information is located here:
<UL>
<LI><A HREF="#highlights">Major Changes</A>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contrib area</A>
</UL>
<p> 
<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>

<UL>

	<LI> None

</UL>


<P><HR WIDTH=65% ALIGN=left>
<!--------------------------------------------------------------------------->

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>

  <LI> test/Makefile.am: Add some tests for tiff2bw.
  <LI> * .appveyor.yml, .travis.yml, build/travis-ci: apply patches
	0001-ci-Travis-script-improvements.patch and
	0002-ci-Invoke-helper-script-via-shell.patch by Roger Leigh
	(sent to mailing list)
  <LI> .travis.yml, build/travis-ci: new files from
	0001-ci-Add-Travis-support-for-Linux-builds-with-Autoconf.patch by
	Roger Leigh (sent to mailing list on 2017-06-08)
	This patch adds support for the Travis-CI service.
  <LI> .appveyor.yml: new file from
	0002-ci-Add-AppVeyor-support.patch by Roger Leigh (sent to mailing
	list on 2017-06-08)
	This patch adds a .appveyor.yml file to the top-level.  This allows
	one to opt in to having a branch built on Windows with Cygwin,
	MinGW and MSVC automatically when a branch is pushed to GitHub,
	GitLab, BitBucket or any other supported git hosting service.
  <LI> CMakeLists.txt, test/CMakeLists.txt, test/TiffTestCommon.cmake: apply
	patch 0001-cmake-Improve-Cygwin-and-MingGW-test-support.patch from Roger
	Leigh (sent to mailing list on 2017-06-08)
	This patch makes the CMake build system support running the tests
	with MinGW or Cygwin.

  <LI> test/tiffcp-lzw-compat.sh, test/images/quad-lzw-compat.tiff: new files
	to test old-style LZW decompression
  <LI> test/common.sh, Makefile.am, CMakeList.txt: updated with above
  <LI> test/Makefile.am: add missing reference to images/quad-lzw-compat.tiff
	to fix "make distcheck". Patch by Roger Leigh
  <LI> nmake.opt: support a DEBUG=1 option, so as to adjust OPTFLAGS and use
	/MDd runtime in debug mode.


</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>

    <LI> libtiff/tif_color.c: TIFFYCbCrToRGBInit(): stricter clamping to avoid
	int32 overflow in TIFFYCbCrtoRGB().
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1844
	Credit to OSS Fuzz

    <LI> libtiff/tif_getimage.c: initYCbCrConversion(): stricter validation for
	refBlackWhite coefficients values. To avoid invalid float->int32 conversion
	(when refBlackWhite[0] == 2147483648.f)
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1907
	Credit to OSS Fuzz

    <LI> libtiff/tif_dirinfo.c, tif_dirread.c: add _TIFFCheckFieldIsValidForCodec(),
	and use it in TIFFReadDirectory() so as to ignore fields whose tag is a
	codec-specified tag but this codec is not enabled. This avoids TIFFGetField()
	to behave differently depending on whether the codec is enabled or not, and
	thus can avoid stack based buffer overflows in a number of TIFF utilities
	such as tiffsplit, tiffcmp, thumbnail, etc.
	Patch derived from 0063-Handle-properly-CODEC-specific-tags.patch
	(http://bugzilla.maptools.org/show_bug.cgi?id=2580) by Raphaël Hertzog.
	Fixes:
	http://bugzilla.maptools.org/show_bug.cgi?id=2580
	http://bugzilla.maptools.org/show_bug.cgi?id=2693
	http://bugzilla.maptools.org/show_bug.cgi?id=2625 (CVE-2016-10095)
	http://bugzilla.maptools.org/show_bug.cgi?id=2564 (CVE-2015-7554)
	http://bugzilla.maptools.org/show_bug.cgi?id=2561 (CVE-2016-5318)
	http://bugzilla.maptools.org/show_bug.cgi?id=2499 (CVE-2014-8128)
	http://bugzilla.maptools.org/show_bug.cgi?id=2441
	http://bugzilla.maptools.org/show_bug.cgi?id=2433

    <LI> libtiff/tif_swab.c: if DISABLE_CHECK_TIFFSWABMACROS is defined, do not do
	the #ifdef TIFFSwabXXX checks. Make it easier for GDAL to rename the symbols
	of its internal libtiff copy.


    <LI> libtiff/tif_dirread.c: fix regression of libtiff 4.0.8 in
	ChopUpSingleUncompressedStrip() regarding update of newly single-strip
	uncompressed files whose bytecount is 0. Before the change of 2016-12-03,
	the condition bytecount==0 used to trigger an early exit/disabling of
	strip chop. Re-introduce that in update mode. Otherwise this cause
	later incorrect setting for the value of StripByCounts/StripOffsets.
	( https://trac.osgeo.org/gdal/ticket/6924 )
    <LI> libtiff/tif_dirread.c: TIFFFetchStripThing(): limit the number of items
	read in StripOffsets/StripByteCounts tags to the number of strips to avoid
	excessive memory allocation.
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2215
	Credit to OSS Fuzz
    <LI> libtiff/tif_getimage.c: avoid many (harmless) unsigned int overflows.
    <LI> libtiff/tif_fax3.c: avoid unsigned int overflow in Fax3Encode2DRow(). Could
	potentially be a bug with huge rows.
    <LI> libtiff/tif_jpeg.c: avoid (harmless) unsigned int overflow on tiled images.
    <LI> libtiff/tif_dirread.c: avoid unsigned int overflow in EstimateStripByteCounts()
	and BYTECOUNTLOOKSBAD when file is too short.
    <LI> libtiff/tif_predict.c: decorate legitimate functions where unsigned int
	overflow occur with TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW
	* libtiff/tif_dirread.c: avoid unsigned int overflow in EstimateStripByteCounts()
    <LI> libtiff/tiffiop.h: add TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW macro to
	disable CLang warnings raised by -fsanitize=undefined,unsigned-integer-overflow
    <LI> libtiff/tif_jpeg.c: add anti-denial of service measure to avoid excessive
	CPU consumption on progressive JPEGs with a huge number of scans.
	See http://www.libjpeg-turbo.org/pmwiki/uploads/About/TwoIssueswiththeJPEGStandard.pdf
	Note: only affects libtiff since 2014-12-29 where support of non-baseline JPEG
	was added.

    <LI> libtiff/tif_jpeg.c: error out at decoding time if anticipated libjpeg
	memory allocation is above 100 MB. libjpeg in case of multiple scans,
	which is allowed even in baseline JPEG, if components are spread over several
	scans and not interleavedin a single one, needs to allocate memory (or
	backing store) for the whole strip/tile.
	See http://www.libjpeg-turbo.org/pmwiki/uploads/About/TwoIssueswiththeJPEGStandard.pdf
	This limitation may be overriden by setting the 
	LIBTIFF_ALLOW_LARGE_LIBJPEG_MEM_ALLOC environment variable, or recompiling
	libtiff with a custom value of TIFF_LIBJPEG_LARGEST_MEM_ALLOC macro.
    <LI> libtiff/tif_jbig.c: fix memory leak in error code path of JBIGDecode()
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2706
	Reported by team OWL337
    <LI> libtiff/tif_dirread.c: in TIFFReadDirEntryFloat(), check that a
	double value can fit in a float before casting. Patch by Nicolas RUFF
    <LI> libtiff/tiffiop.h, libtiff/tif_jpeg.c, libtiff/tif_jpeg_12.c,
	libtiff/tif_read.c: make TIFFReadScanline() works in
	CHUNKY_STRIP_READ_SUPPORT mode with JPEG stream with multiple scans.
	Also make configurable through a LIBTIFF_JPEG_MAX_ALLOWED_SCAN_NUMBER
	environment variable the maximum number of scans allowed. Defaults to
	100.
    <LI> libtiff/tif_read.c: TIFFFillTile(): add limitation to the number
	of bytes read in case td_stripbytecount[strip] is bigger than
	reasonable, so as to avoid excessive memory allocation (similarly to
	what was done for TIFFFileStrip() on 2017-05-10)
    <LI> libtiff/tif_getimage.c: use _TIFFReadEncodedStripAndAllocBuffer(). 
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2708 and
	https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2433 .
	Credit to OSS Fuzz
    <LI> libtiff/tif_read.c, tiffiop.h: add a _TIFFReadEncodedStripAndAllocBuffer()
	function, variant of TIFFReadEncodedStrip() that allocates the
	decoded buffer only after a first successful TIFFFillStrip(). This avoids
	excessive memory allocation on corrupted files.
    <LI> libtiff/tif_dirwrite.c: in TIFFWriteDirectoryTagCheckedXXXX()
	functions associated with LONG8/SLONG8 data type, replace assertion that
	the file is BigTIFF, by a non-fatal error.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2712
	Reported by team OWL337
    <LI> libtiff/tif_read.c: TIFFStartTile(): set tif_rawcc to
	tif_rawdataloaded when it is set. Similarly to TIFFStartStrip().
	This issue was revealed by the change of 2017-06-30 in TIFFFileTile(),
	limiting the number of bytes read. But it could probably have been hit
	too in CHUNKY_STRIP_READ_SUPPORT mode previously ?
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2454
	Credit to OSS Fuzz
    <LI> libtiff/tif_error.c, tif_warning.c: correctly use va_list when both
	an old-style and new-style warning/error handlers are installed.
	Patch by Paavo Helde (sent on the mailing list)
    <LI> libtiff/tif_getimage.c: use _TIFFReadTileAndAllocBuffer().
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2470
	Credit to OSS Fuzz.
    <LI> libtiff/tif_read.c, tiffiop.h: add a _TIFFReadEncodedTileAndAllocBuffer()
	and _TIFFReadTileAndAllocBuffer() variants of TIFFReadEncodedTile() and
	TIFFReadTile() that allocates the decoded buffer only after a first
	successful TIFFFillTile(). This avoids excessive memory allocation
	on corrupted files.
    <LI> libtiff/tif_pixarlog.c: avoid excessive memory allocation on decoding
	when RowsPerStrip tag is not defined (and thus td_rowsperstrip == UINT_MAX)
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2554
	Credit to OSS Fuzz
    <LI> libtiff/tif_lzw.c: fix 4.0.8 regression in the decoding of old-style LZW
	compressed files.
    <LI> libtiff/tif_lzw.c: fix potential out-of-buffer read on 1-byte LZW
	strips. Crashing issue only on memory mapped files, where the strip
	offset is the last byte of the file, and the file size is a multiple
	of one page size on the CPU architecture (typically 4096). Credit
	to myself :-)
    <LI> libtiff/tif_dir.c: avoid potential null pointer dereference in
	_TIFFVGetField() on corrupted TIFFTAG_NUMBEROFINKS tag instance.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2713
    <LI> tools/tiff2pdf.c: prevent heap buffer overflow write in "Raw"
	mode on PlanarConfig=Contig input images.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2715
	Reported by team OWL337
    <LI> libtiff/tif_read.c: TIFFFillStrip() / TIFFFillTile().
	Complementary fix for http://bugzilla.maptools.org/show_bug.cgi?id=2708
	in the isMapped() case, so as to avoid excessive memory allocation
	when we need a temporary buffer but the file is truncated.
    <LI> libtiff/tif_read.c: TIFFFillStrip() / TIFFFillTile().
	Complementary fix for http://bugzilla.maptools.org/show_bug.cgi?id=2708
	in the isMapped() case, so as to avoid excessive memory allocation
	when we need a temporary buffer but the file is truncated.
    <LI> libtiff/tif_read.c: in TIFFFetchStripThing(), only grow the
	arrays that hold StripOffsets/StripByteCounts, when they are smaller
	than the expected number of striles, up to 1 million striles, and
	error out beyond. Can be tweaked by setting the environment variable
	LIBTIFF_STRILE_ARRAY_MAX_RESIZE_COUNT.
	This partially goes against a change added on 2002-12-17 to accept
	those arrays of wrong sizes, but is needed to avoid denial of services.
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2350
	Credit to OSS Fuzz
    <LI> libtiff/tif_read.c: in TIFFFetchStripThing(), only grow the
	arrays that hold StripOffsets/StripByteCounts, when they are smaller
	than the expected number of striles, up to 1 million striles, and
	error out beyond. Can be tweaked by setting the environment variable
	LIBTIFF_STRILE_ARRAY_MAX_RESIZE_COUNT.
	This partially goes against a change added on 2002-12-17 to accept
	those arrays of wrong sizes, but is needed to avoid denial of services.
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2350
	Credit to OSS Fuzz
    <LI> libtiff/tif_read.c: add protection against excessive memory
	allocation attempts in TIFFReadDirEntryArray() on short files.
	Effective for mmap'ed case. And non-mmap'ed case, but restricted
	to 64bit builds.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2675
    <LI> libtiff/tif_read.c: add protection against excessive memory
	allocation attempts in TIFFReadDirEntryArray() on short files.
	Effective for mmap'ed case. And non-mmap'ed case, but restricted
	to 64bit builds.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2675
   <LI> libtiff/tif_luv.c: LogLuvInitState(): avoid excessive memory
	allocation when RowsPerStrip tag is missing.
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2683
	Credit to OSS-Fuzz
   <LI> libtiff/tif_getimage.c: gtTileContig() and gtTileSeparate():
	properly break from loops on error when stoponerr is set, instead
	of going on iterating on row based loop.
   <LI> libtiff/tif_getimage.c: fix fromskew computation when to-be-skipped
	pixel number is not a multiple of the horizontal subsampling, and
	also in some other cases. Impact putcontig8bitYCbCr44tile,
	putcontig8bitYCbCr42tile, putcontig8bitYCbCr41tile,
	putcontig8bitYCbCr21tile and putcontig8bitYCbCr12tile
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2637 (discovered
	by Agostino Sarubbo)
	and https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2691 (credit
	to OSS Fuzz)
   <LI> libtiff/tif_luv.c: further reduce memory requirements for temporary
	buffer when RowsPerStrip >= image_length in LogLuvInitState() and
	LogL16InitState().
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2700
	Credit to OSS Fuzz
   <LI> libtiff/tif_dirwrite.c: replace assertion related to not finding the
	SubIFD tag by runtime check (in TIFFWriteDirectorySec())
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2727
	Reported by team OWL337
   <LI> libtiff/tif_dirwrite.c: replace assertion to tag value not fitting
	on uint32 when selecting the value of SubIFD tag by runtime check
	(in TIFFWriteDirectoryTagSubifd()).
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2728
	Reported by team OWL337
   <LI> libtiff/tif_jpeg.c: accept reading the last strip of a JPEG compressed
	file if the codestream height is larger than the truncated height of the
	strip. Emit a warning in this situation since this is non compliant.
   <LI> libtiff/tiffiop.h, tif_aux.c: redirect SeekOK() macro to a _TIFFSeekoK()
	function that checks if the offset is not bigger than INT64_MAX, so as
	to avoid a -1 error return code of TIFFSeekFile() to match a required
	seek to UINT64_MAX/-1.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2726
	Adapted from proposal by Nicolas Ruff.
   <LI> libtiff/tif_dirread.c: add NULL check to avoid likely false positive
	null-pointer dereference warning by CLang Static Analyzer.
   <LI> libtiff/libtiff.def: add TIFFReadRGBAStripExt and TIFFReadRGBATileExt
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2735
   <LI> libtiff/tif_jpeg.c: add compatibility with libjpeg-turbo 1.5.2 that
	honours max_memory_to_use > 0.
	Cf https://github.com/libjpeg-turbo/libjpeg-turbo/issues/162
   <LI> libtiff/tif_getimage.c: avoid floating point division by zero in
	initCIELabConversion()
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3733
	Credit to OSS Fuzz
</UL>

<P><HR WIDTH=65% ALIGN=left>

<!-------------------------------------------------------------------------->
	
<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>

    <LI> tools/tiff2pdf.c: prevent heap buffer overflow write in "Raw"
	mode on PlanarConfig=Contig input images.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2715
	Reported by team OWL337
    <LI> tools/tiffset.c: fix setting a single value for the ExtraSamples tag
	(and other tags with variable number of values).
	So 'tiffset -s ExtraSamples 1 X'. This only worked
	when setting 2 or more values, but not just one.
    <LI> tools/fax2tiff.c (_FAX_Client_Data): Pass FAX_Client_Data as the
	client data.  This client data is not used at all at the moment,
	but it makes the most sense.  Issue that the value of
	client_data.fd was passed where a pointer is expected was reported
	via email by Gerald Schade on Sun, 29 Oct 2017.
    <LI> tools/tiff2pdf.c (t2p_sample_realize_palette): Fix possible
	arithmetic overflow in bounds checking code and eliminate
	comparison between signed and unsigned type.
    <LI> tools/tiff2bw.c (main): Free memory allocated in the tiff2bw
	program.  This is in response to the report associated with
	CVE-2017-16232 but does not solve the extremely high memory usage
	with the associated POC file.

</UL>

<P><HR WIDTH=65% ALIGN=left>

<!--------------------------------------------------------------------------->

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>

<UL> 

  <LI> None

</UL>

Last updated $Date: 2017-11-18 19:38:06 $.

</BODY>
</HTML>
PK粐\}7����html/CMakeLists.txtnu�[���# CMake build for libtiff
#
# Copyright © 2015 Open Microscopy Environment / University of Dundee
# Written by Roger Leigh <rleigh@codelibre.net>
#
# Permission to use, copy, modify, distribute, and sell this software and
# its documentation for any purpose is hereby granted without fee, provided
# that (i) the above copyright notices and this permission notice appear in
# all copies of the software and related documentation, and (ii) the names of
# Sam Leffler and Silicon Graphics may not be used in any advertising or
# publicity relating to the software without the specific, prior written
# permission of Sam Leffler and Silicon Graphics.
#
# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
#
# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
# OF THIS SOFTWARE.

set(docfiles
  addingtags.html
  bugs.html
  build.html
  contrib.html
  document.html
  images.html
  index.html
  internals.html
  intro.html
  libtiff.html
  misc.html
  support.html
  TIFFTechNote2.html
  tools.html
  v3.4beta007.html
  v3.4beta016.html
  v3.4beta018.html
  v3.4beta024.html
  v3.4beta028.html
  v3.4beta029.html
  v3.4beta031.html
  v3.4beta032.html
  v3.4beta033.html
  v3.4beta034.html
  v3.4beta035.html
  v3.4beta036.html
  v3.5.1.html
  v3.5.2.html
  v3.5.3.html
  v3.5.4.html
  v3.5.5.html
  v3.5.6-beta.html
  v3.5.7.html
  v3.6.0.html
  v3.6.1.html
  v3.7.0alpha.html
  v3.7.0beta.html
  v3.7.0beta2.html
  v3.7.0.html
  v3.7.1.html
  v3.7.2.html
  v3.7.3.html
  v3.7.4.html
  v3.8.0.html
  v3.8.1.html
  v3.8.2.html
  v3.9.0beta.html
  v3.9.1.html
  v3.9.2.html
  v4.0.0.html
  v4.0.1.html
  v4.0.2.html
  v4.0.3.html
  v4.0.4beta.html)

install(FILES ${docfiles}
        DESTINATION "${LIBTIFF_DOCDIR}/html")

add_subdirectory(images)
add_subdirectory(man)

extra_dist(${docfiles})
PK粐\[ޙ'r�r�html/TIFFTechNote2.htmlnu�[���<pre>
DRAFT TIFF Technical Note #2				17-Mar-95
============================

This Technical Note describes serious problems that have been found in
TIFF 6.0's design for embedding JPEG-compressed data in TIFF (Section 22
of the TIFF 6.0 spec of 3 June 1992).  A replacement TIFF/JPEG
specification is given.  Some corrections to Section 21 are also given.

To permit TIFF implementations to continue to read existing files, the 6.0
JPEG fields and tag values will remain reserved indefinitely.  However,
TIFF writers are strongly discouraged from using the 6.0 JPEG design.  It
is expected that the next full release of the TIFF specification will not
describe the old design at all, except to note that certain tag numbers
are reserved.  The existing Section 22 will be replaced by the
specification text given in the second part of this Tech Note.


Problems in TIFF 6.0 JPEG
=========================

Abandoning a published spec is not a step to be taken lightly.  This
section summarizes the reasons that have forced this decision.
TIFF 6.0's JPEG design suffers from design errors and limitations,
ambiguities, and unnecessary complexity.


Design errors and limitations
-----------------------------

The fundamental design error in the existing Section 22 is that JPEG's
various tables and parameters are broken out as separate fields which the
TIFF control logic must manage.  This is bad software engineering: that
information should be treated as private to the JPEG codec
(compressor/decompressor).  Worse, the fields themselves are specified
without sufficient thought for future extension and without regard to
well-established TIFF conventions.  Here are some of the significant
problems:

* The JPEGxxTable fields do not store the table data directly in the
IFD/field structure; rather, the fields hold pointers to information
elsewhere in the file.  This requires special-purpose code to be added to
*every* TIFF-manipulating application, whether it needs to decode JPEG
image data or not.  Even a trivial TIFF editor, for example a program to
add an ImageDescription field to a TIFF file, must be explicitly aware of
the internal structure of the JPEG-related tables, or else it will probably
break the file.  Every other auxiliary field in the TIFF spec contains
data, not pointers, and can be copied or relocated by standard code that
doesn't know anything about the particular field.  This is a crucial
property of the TIFF format that must not be given up.

* To manipulate these fields, the TIFF control logic is required to know a
great deal about JPEG details, for example such arcana as how to compute
the length of a Huffman code table --- the length is not supplied in the
field structure and can only be found by inspecting the table contents.
This is again a violation of good software practice.  Moreover, it will
prevent easy adoption of future JPEG extensions that might change these
low-level details.

* The design neglects the fact that baseline JPEG codecs support only two
sets of Huffman tables: it specifies a separate table for each color
component.  This implies that encoders must waste space (by storing
duplicate Huffman tables) or else violate the well-founded TIFF convention
that prohibits duplicate pointers.  Furthermore, baseline decoders must
test to find out which tables are identical, a waste of time and code
space.

* The JPEGInterchangeFormat field also violates TIFF's proscription against
duplicate pointers: the normal strip/tile pointers are expected to point
into the larger data area pointed to by JPEGInterchangeFormat.  All TIFF
editing applications must be specifically aware of this relationship, since
they must maintain it or else delete the JPEGInterchangeFormat field.  The
JPEGxxTables fields are also likely to point into the JPEGInterchangeFormat
area, creating additional pointer relationships that must be maintained.

* The JPEGQTables field is fixed at a byte per table entry; there is no
way to support 16-bit quantization values.  This is a serious impediment
to extending TIFF to use 12-bit JPEG.

* The 6.0 design cannot support using different quantization tables in
different strips/tiles of an image (so as to encode some areas at higher
quality than others).  Furthermore, since quantization tables are tied
one-for-one to color components, the design cannot support table switching
options that are likely to be added in future JPEG revisions.


Ambiguities
-----------

Several incompatible interpretations are possible for 6.0's treatment of
JPEG restart markers:

  * It is unclear whether restart markers must be omitted at TIFF segment
    (strip/tile) boundaries, or whether they are optional.

  * It is unclear whether the segment size is required to be chosen as
    a multiple of the specified restart interval (if any); perhaps the
    JPEG codec is supposed to be reset at each segment boundary as if
    there were a restart marker there, even if the boundary does not fall
    at a multiple of the nominal restart interval.

  * The spec fails to address the question of restart marker numbering:
    do the numbers begin again within each segment, or not?

That last point is particularly nasty.  If we make numbering begin again
within each segment, we give up the ability to impose a TIFF strip/tile
structure on an existing JPEG datastream with restarts (which was clearly a
goal of Section 22's authors).  But the other choice interferes with random
access to the image segments: a reader must compute the first restart
number to be expected within a segment, and must have a way to reset its
JPEG decoder to expect a nonzero restart number first.  This may not even
be possible with some JPEG chips.

The tile height restriction found on page 104 contradicts Section 15's
general description of tiles.  For an image that is not vertically
downsampled, page 104 specifies a tile height of one MCU or 8 pixels; but
Section 15 requires tiles to be a multiple of 16 pixels high.

This Tech Note does not attempt to resolve these ambiguities, so
implementations that follow the 6.0 design should be aware that
inter-application compatibility problems are likely to arise.


Unnecessary complexity
----------------------

The 6.0 design creates problems for implementations that need to keep the
JPEG codec separate from the TIFF control logic --- for example, consider
using a JPEG chip that was not designed specifically for TIFF.  JPEG codecs
generally want to produce or consume a standard ISO JPEG datastream, not
just raw compressed data.  (If they were to handle raw data, a separate
out-of-band mechanism would be needed to load tables into the codec.)
With such a codec, the TIFF control logic must parse JPEG markers emitted
by the codec to create the TIFF table fields (when writing) or synthesize
JPEG markers from the TIFF fields to feed the codec (when reading).  This
means that the control logic must know a great deal more about JPEG details
than we would like.  The parsing and reconstruction of the markers also
represents a fair amount of unnecessary work.

Quite a few implementors have proposed writing "TIFF/JPEG" files in which
a standard JPEG datastream is simply dumped into the file and pointed to
by JPEGInterchangeFormat.  To avoid parsing the JPEG datastream, they
suggest not writing the JPEG auxiliary fields (JPEGxxTables etc) nor even
the basic TIFF strip/tile data pointers.  This approach is incompatible
with implementations that handle the full TIFF 6.0 JPEG design, since they
will expect to find strip/tile pointers and auxiliary fields.  Indeed this
is arguably not TIFF at all, since *all* TIFF-reading applications expect
to find strip or tile pointers.  A subset implementation that is not
upward-compatible with the full spec is clearly unacceptable.  However,
the frequency with which this idea has come up makes it clear that
implementors find the existing Section 22 too complex.


Overview of the solution
========================

To solve these problems, we adopt a new design for embedding
JPEG-compressed data in TIFF files.  The new design uses only complete,
uninterpreted ISO JPEG datastreams, so it should be much more forgiving of
extensions to the ISO standard.  It should also be far easier to implement
using unmodified JPEG codecs.

To reduce overhead in multi-segment TIFF files, we allow JPEG overhead
tables to be stored just once in a JPEGTables auxiliary field.  This
feature does not violate the integrity of the JPEG datastreams, because it
uses the notions of "tables-only datastreams" and "abbreviated image
datastreams" as defined by the ISO standard.

To prevent confusion with the old design, the new design is given a new
Compression tag value, Compression=7.  Readers that need to handle
existing 6.0 JPEG files may read both old and new files, using whatever
interpretation of the 6.0 spec they did before.  Compression tag value 6
and the field tag numbers defined by 6.0 section 22 will remain reserved
indefinitely, even though detailed descriptions of them will be dropped
from future editions of the TIFF specification.


Replacement TIFF/JPEG specification
===================================

[This section of the Tech Note is expected to replace Section 22 in the
next release of the TIFF specification.]

This section describes TIFF compression scheme 7, a high-performance
compression method for continuous-tone images.

Introduction
------------

This TIFF compression method uses the international standard for image
compression ISO/IEC 10918-1, usually known as "JPEG" (after the original
name of the standards committee, Joint Photographic Experts Group).  JPEG
is a joint ISO/CCITT standard for compression of continuous-tone images.

The JPEG committee decided that because of the broad scope of the standard,
no one algorithmic procedure was able to satisfy the requirements of all
applications.  Instead, the JPEG standard became a "toolkit" of multiple
algorithms and optional capabilities.  Individual applications may select
a subset of the JPEG standard that meets their requirements.

The most important distinction among the JPEG processes is between lossy
and lossless compression.  Lossy compression methods provide high
compression but allow only approximate reconstruction of the original
image.  JPEG's lossy processes allow the encoder to trade off compressed
file size against reconstruction fidelity over a wide range.  Typically,
10:1 or more compression of full-color data can be obtained while keeping
the reconstructed image visually indistinguishable from the original.  Much
higher compression ratios are possible if a low-quality reconstructed image
is acceptable.  Lossless compression provides exact reconstruction of the
source data, but the achievable compression ratio is much lower than for
the lossy processes; JPEG's rather simple lossless process typically
achieves around 2:1 compression of full-color data.

The most widely implemented JPEG subset is the "baseline" JPEG process.
This provides lossy compression of 8-bit-per-channel data.  Optional
extensions include 12-bit-per-channel data, arithmetic entropy coding for
better compression, and progressive/hierarchical representations.  The
lossless process is an independent algorithm that has little in
common with the lossy processes.

It should be noted that the optional arithmetic-coding extension is subject
to several US and Japanese patents.  To avoid patent problems, use of
arithmetic coding processes in TIFF files intended for inter-application
interchange is discouraged.

All of the JPEG processes are useful only for "continuous tone" data,
in which the difference between adjacent pixel values is usually small.
Low-bit-depth source data is not appropriate for JPEG compression, nor
are palette-color images good candidates.  The JPEG processes work well
on grayscale and full-color data.

Describing the JPEG compression algorithms in sufficient detail to permit
implementation would require more space than we have here.  Instead, we
refer the reader to the References section.


What data is being compressed?
------------------------------

In lossy JPEG compression, it is customary to convert color source data
to YCbCr and then downsample it before JPEG compression.  This gives
2:1 data compression with hardly any visible image degradation, and it
permits additional space savings within the JPEG compression step proper.
However, these steps are not considered part of the ISO JPEG standard.
The ISO standard is "color blind": it accepts data in any color space.

For TIFF purposes, the JPEG compression tag is considered to represent the
ISO JPEG compression standard only.  The ISO standard is applied to the
same data that would be stored in the TIFF file if no compression were
used.  Therefore, if color conversion or downsampling are used, they must
be reflected in the regular TIFF fields; these steps are not considered to
be implicit in the JPEG compression tag value.  PhotometricInterpretation
and related fields shall describe the color space actually stored in the
file.  With the TIFF 6.0 field definitions, downsampling is permissible
only for YCbCr data, and it must correspond to the YCbCrSubSampling field.
(Note that the default value for this field is not 1,1; so the default for
YCbCr is to apply downsampling!)  It is likely that future versions of TIFF
will provide additional PhotometricInterpretation values and a more general
way of defining subsampling, so as to allow more flexibility in
JPEG-compressed files.  But that issue is not addressed in this Tech Note.

Implementors should note that many popular JPEG codecs
(compressor/decompressors) provide automatic color conversion and
downsampling, so that the application may supply full-size RGB data which
is nonetheless converted to downsampled YCbCr.  This is an implementation
convenience which does not excuse the TIFF control layer from its
responsibility to know what is really going on.  The
PhotometricInterpretation and subsampling fields written to the file must
describe what is actually in the file.

A JPEG-compressed TIFF file will typically have PhotometricInterpretation =
YCbCr and YCbCrSubSampling = [2,1] or [2,2], unless the source data was
grayscale or CMYK.


Basic representation of JPEG-compressed images
----------------------------------------------

JPEG compression works in either strip-based or tile-based TIFF files.
Rather than repeating "strip or tile" constantly, we will use the term
"segment" to mean either a strip or a tile.

When the Compression field has the value 7, each image segment contains
a complete JPEG datastream which is valid according to the ISO JPEG
standard (ISO/IEC 10918-1).  Any sequential JPEG process can be used,
including lossless JPEG, but progressive and hierarchical processes are not
supported.  Since JPEG is useful only for continuous-tone images, the
PhotometricInterpretation of the image shall not be 3 (palette color) nor
4 (transparency mask).  The bit depth of the data is also restricted as
specified below.

Each image segment in a JPEG-compressed TIFF file shall contain a valid
JPEG datastream according to the ISO JPEG standard's rules for
interchange-format or abbreviated-image-format data.  The datastream shall
contain a single JPEG frame storing that segment of the image.  The
required JPEG markers within a segment are:
	SOI	(must appear at very beginning of segment)
	SOFn
	SOS	(one for each scan, if there is more than one scan)
	EOI	(must appear at very end of segment)
The actual compressed data follows SOS; it may contain RSTn markers if DRI
is used.

Additional JPEG "tables and miscellaneous" markers may appear between SOI
and SOFn, between SOFn and SOS, and before each subsequent SOS if there is
more than one scan.  These markers include:
	DQT
	DHT
	DAC	(not to appear unless arithmetic coding is used)
	DRI
	APPn	(shall be ignored by TIFF readers)
	COM	(shall be ignored by TIFF readers)
DNL markers shall not be used in TIFF files.  Readers should abort if any
other marker type is found, especially the JPEG reserved markers;
occurrence of such a marker is likely to indicate a JPEG extension.

The tables/miscellaneous markers may appear in any order.  Readers are
cautioned that although the SOFn marker refers to DQT tables, JPEG does not
require those tables to precede the SOFn, only the SOS.  Missing-table
checks should be made when SOS is reached.

If no JPEGTables field is used, then each image segment shall be a complete
JPEG interchange datastream.  Each segment must define all the tables it
references.  To allow readers to decode segments in any order, no segment
may rely on tables being carried over from a previous segment.

When a JPEGTables field is used, image segments may omit tables that have
been specified in the JPEGTables field.  Further details appear below.

The SOFn marker shall be of type SOF0 for strict baseline JPEG data, of
type SOF1 for non-baseline lossy JPEG data, or of type SOF3 for lossless
JPEG data.  (SOF9 or SOF11 would be used for arithmetic coding.)  All
segments of a JPEG-compressed TIFF image shall use the same JPEG
compression process, in particular the same SOFn type.

The data precision field of the SOFn marker shall agree with the TIFF
BitsPerSample field.  (Note that when PlanarConfiguration=1, this implies
that all components must have the same BitsPerSample value; when
PlanarConfiguration=2, different components could have different bit
depths.)  For SOF0 only precision 8 is permitted; for SOF1, precision 8 or
12 is permitted; for SOF3, precisions 2 to 16 are permitted.

The image dimensions given in the SOFn marker shall agree with the logical
dimensions of that particular strip or tile.  For strip images, the SOFn
image width shall equal ImageWidth and the height shall equal RowsPerStrip,
except in the last strip; its SOFn height shall equal the number of rows
remaining in the ImageLength.  (In other words, no padding data is counted
in the SOFn dimensions.)  For tile images, each SOFn shall have width
TileWidth and height TileHeight; adding and removing any padding needed in
the edge tiles is the concern of some higher level of the TIFF software.
(The dimensional rules are slightly different when PlanarConfiguration=2,
as described below.)

The ISO JPEG standard only permits images up to 65535 pixels in width or
height, due to 2-byte fields in the SOFn markers.  In TIFF, this limits
the size of an individual JPEG-compressed strip or tile, but the total
image size can be greater.

The number of components in the JPEG datastream shall equal SamplesPerPixel
for PlanarConfiguration=1, and shall be 1 for PlanarConfiguration=2.  The
components shall be stored in the same order as they are described at the
TIFF field level.  (This applies both to their order in the SOFn marker,
and to the order in which they are scanned if multiple JPEG scans are
used.)  The component ID bytes are arbitrary so long as each component
within an image segment is given a distinct ID.  To avoid any possible
confusion, we require that all segments of a TIFF image use the same ID
code for a given component.

In PlanarConfiguration 1, the sampling factors given in SOFn markers shall
agree with the sampling factors defined by the related TIFF fields (or with
the default values that are specified in the absence of those fields).

When DCT-based JPEG is used in a strip TIFF file, RowsPerStrip is required
to be a multiple of 8 times the largest vertical sampling factor, i.e., a
multiple of the height of an interleaved MCU.  (For simplicity of
specification, we require this even if the data is not actually
interleaved.)  For example, if YCbCrSubSampling = [2,2] then RowsPerStrip
must be a multiple of 16.  An exception to this rule is made for
single-strip images (RowsPerStrip >= ImageLength): the exact value of
RowsPerStrip is unimportant in that case.  This rule ensures that no data
padding is needed at the bottom of a strip, except perhaps the last strip.
Any padding required at the right edge of the image, or at the bottom of
the last strip, is expected to occur internally to the JPEG codec.

When DCT-based JPEG is used in a tiled TIFF file, TileLength is required
to be a multiple of 8 times the largest vertical sampling factor, i.e.,
a multiple of the height of an interleaved MCU; and TileWidth is required
to be a multiple of 8 times the largest horizontal sampling factor, i.e.,
a multiple of the width of an interleaved MCU.  (For simplicity of
specification, we require this even if the data is not actually
interleaved.)  All edge padding required will therefore occur in the course
of normal TIFF tile padding; it is not special to JPEG.

Lossless JPEG does not impose these constraints on strip and tile sizes,
since it is not DCT-based.

Note that within JPEG datastreams, multibyte values appear in the MSB-first
order specified by the JPEG standard, regardless of the byte ordering of
the surrounding TIFF file.


JPEGTables field
----------------

The only auxiliary TIFF field added for Compression=7 is the optional
JPEGTables field.  The purpose of JPEGTables is to predefine JPEG
quantization and/or Huffman tables for subsequent use by JPEG image
segments.  When this is done, these rather bulky tables need not be
duplicated in each segment, thus saving space and processing time.
JPEGTables may be used even in a single-segment file, although there is no
space savings in that case.

JPEGTables:
	Tag = 347 (15B.H)
	Type = UNDEFINED
	N = number of bytes in tables datastream, typically a few hundred
JPEGTables provides default JPEG quantization and/or Huffman tables which
are used whenever a segment datastream does not contain its own tables, as
specified below.

Notice that the JPEGTables field is required to have type code UNDEFINED,
not type code BYTE.  This is to cue readers that expanding individual bytes
to short or long integers is not appropriate.  A TIFF reader will generally
need to store the field value as an uninterpreted byte sequence until it is
fed to the JPEG decoder.

Multibyte quantities within the tables follow the ISO JPEG convention of
MSB-first storage, regardless of the byte ordering of the surrounding TIFF
file.

When the JPEGTables field is present, it shall contain a valid JPEG
"abbreviated table specification" datastream.  This datastream shall begin
with SOI and end with EOI.  It may contain zero or more JPEG "tables and
miscellaneous" markers, namely:
	DQT
	DHT
	DAC	(not to appear unless arithmetic coding is used)
	DRI
	APPn	(shall be ignored by TIFF readers)
	COM	(shall be ignored by TIFF readers)
Since JPEG defines the SOI marker to reset the DAC and DRI state, these two
markers' values cannot be carried over into any image datastream, and thus
they are effectively no-ops in the JPEGTables field.  To avoid confusion,
it is recommended that writers not place DAC or DRI markers in JPEGTables.
However readers must properly skip over them if they appear.

When JPEGTables is present, readers shall load the table specifications
contained in JPEGTables before processing image segment datastreams.
Image segments may simply refer to these preloaded tables without defining
them.  An image segment can still define and use its own tables, subject to
the restrictions below.

An image segment may not redefine any table defined in JPEGTables.  (This
restriction is imposed to allow readers to process image segments in random
order without having to reload JPEGTables between segments.)  Therefore, use
of JPEGTables divides the available table slots into two groups: "global"
slots are defined in JPEGTables and may be used but not redefined by
segments; "local" slots are available for local definition and use in each
segment.  To permit random access, a segment may not reference any local
tables that it does not itself define.


Special considerations for PlanarConfiguration 2
------------------------------------------------

In PlanarConfiguration 2, each image segment contains data for only one
color component.  To avoid confusing the JPEG codec, we wish the segments
to look like valid single-channel (i.e., grayscale) JPEG datastreams.  This
means that different rules must be used for the SOFn parameters.

In PlanarConfiguration 2, the dimensions given in the SOFn of a subsampled
component shall be scaled down by the sampling factors compared to the SOFn
dimensions that would be used in PlanarConfiguration 1.  This is necessary
to match the actual number of samples stored in that segment, so that the
JPEG codec doesn't complain about too much or too little data.  In strip
TIFF files the computed dimensions may need to be rounded up to the next
integer; in tiled files, the restrictions on tile size make this case
impossible.

Furthermore, all SOFn sampling factors shall be given as 1.  (This is
merely to avoid confusion, since the sampling factors in a single-channel
JPEG datastream have no real effect.)

Any downsampling will need to happen externally to the JPEG codec, since
JPEG sampling factors are defined with reference to the full-precision
component.  In PlanarConfiguration 2, the JPEG codec will be working on
only one component at a time and thus will have no reference component to
downsample against.


Minimum requirements for TIFF/JPEG
----------------------------------

ISO JPEG is a large and complex standard; most implementations support only
a subset of it.  Here we define a "core" subset of TIFF/JPEG which readers
must support to claim TIFF/JPEG compatibility.  For maximum
cross-application compatibility, we recommend that writers confine
themselves to this subset unless there is very good reason to do otherwise.

Use the ISO baseline JPEG process: 8-bit data precision, Huffman coding,
with no more than 2 DC and 2 AC Huffman tables.  Note that this implies
BitsPerSample = 8 for each component.  We recommend deviating from baseline
JPEG only if 12-bit data precision or lossless coding is required.

Use no subsampling (all JPEG sampling factors = 1) for color spaces other
than YCbCr.  (This is, in fact, required with the TIFF 6.0 field
definitions, but may not be so in future revisions.)  For YCbCr, use one of
the following choices:
	YCbCrSubSampling field		JPEG sampling factors
	1,1				1h1v, 1h1v, 1h1v
	2,1				2h1v, 1h1v, 1h1v
	2,2  (default value)		2h2v, 1h1v, 1h1v
We recommend that RGB source data be converted to YCbCr for best compression
results.  Other source data colorspaces should probably be left alone.
Minimal readers need not support JPEG images with colorspaces other than
YCbCr and grayscale (PhotometricInterpretation = 6 or 1).

A minimal reader also need not support JPEG YCbCr images with nondefault
values of YCbCrCoefficients or YCbCrPositioning, nor with values of
ReferenceBlackWhite other than [0,255,128,255,128,255].  (These values
correspond to the RGB<=>YCbCr conversion specified by JFIF, which is widely
implemented in JPEG codecs.)

Writers are reminded that a ReferenceBlackWhite field *must* be included
when PhotometricInterpretation is YCbCr, because the default
ReferenceBlackWhite values are inappropriate for YCbCr.

If any subsampling is used, PlanarConfiguration=1 is preferred to avoid the
possibly-confusing requirements of PlanarConfiguration=2.  In any case,
readers are not required to support PlanarConfiguration=2.

If possible, use a single interleaved scan in each image segment.  This is
not legal JPEG if there are more than 4 SamplesPerPixel or if the sampling
factors are such that more than 10 blocks would be needed per MCU; in that
case, use a separate scan for each component.  (The recommended color
spaces and sampling factors will not run into that restriction, so a
minimal reader need not support more than one scan per segment.)

To claim TIFF/JPEG compatibility, readers shall support multiple-strip TIFF
files and the optional JPEGTables field; it is not acceptable to read only
single-datastream files.  Support for tiled TIFF files is strongly
recommended but not required.


Other recommendations for implementors
--------------------------------------

The TIFF tag Compression=7 guarantees only that the compressed data is
represented as ISO JPEG datastreams.  Since JPEG is a large and evolving
standard, readers should apply careful error checking to the JPEG markers
to ensure that the compression process is within their capabilities.  In
particular, to avoid being confused by future extensions to the JPEG
standard, it is important to abort if unknown marker codes are seen.

The point of requiring that all image segments use the same JPEG process is
to ensure that a reader need check only one segment to determine whether it
can handle the image.  For example, consider a TIFF reader that has access
to fast but restricted JPEG hardware, as well as a slower, more general
software implementation.  It is desirable to check only one image segment
to find out whether the fast hardware can be used.  Thus, writers should
try to ensure that all segments of an image look as much "alike" as
possible: there should be no variation in scan layout, use of options such
as DRI, etc.  Ideally, segments will be processed identically except
perhaps for using different local quantization or entropy-coding tables.

Writers should avoid including "noise" JPEG markers (COM and APPn markers).
Standard TIFF fields provide a better way to transport any non-image data.
Some JPEG codecs may change behavior if they see an APPn marker they
think they understand; since the TIFF spec requires these markers to be
ignored, this behavior is undesirable.

It is possible to convert an interchange-JPEG file (e.g., a JFIF file) to
TIFF simply by dropping the interchange datastream into a single strip.
(However, designers are reminded that the TIFF spec discourages huge
strips; splitting the image is somewhat more work but may give better
results.)  Conversion from TIFF to interchange JPEG is more complex.  A
strip-based TIFF/JPEG file can be converted fairly easily if all strips use
identical JPEG tables and no RSTn markers: just delete the overhead markers
and insert RSTn markers between strips.  Converting tiled images is harder,
since the data will usually not be in the right order (unless the tiles are
only one MCU high).  This can still be done losslessly, but it will require
undoing and redoing the entropy coding so that the DC coefficient
differences can be updated.

There is no default value for JPEGTables: standard TIFF files must define all
tables that they reference.  For some closed systems in which many files will
have identical tables, it might make sense to define a default JPEGTables
value to avoid actually storing the tables.  Or even better, invent a
private field selecting one of N default JPEGTables settings, so as to allow
for future expansion.  Either of these must be regarded as a private
extension that will render the files unreadable by other applications.


References
----------

[1] Wallace, Gregory K.  "The JPEG Still Picture Compression Standard",
Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44.

This is the best short technical introduction to the JPEG algorithms.
It is a good overview but does not provide sufficiently detailed
information to write an implementation.

[2] Pennebaker, William B. and Mitchell, Joan L.  "JPEG Still Image Data
Compression Standard", Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1.
638pp.

This textbook is by far the most complete exposition of JPEG in existence.
It includes the full text of the ISO JPEG standards (DIS 10918-1 and draft
DIS 10918-2).  No would-be JPEG implementor should be without it.

[3] ISO/IEC IS 10918-1, "Digital Compression and Coding of Continuous-tone
Still Images, Part 1: Requirements and guidelines", February 1994.
ISO/IEC DIS 10918-2, "Digital Compression and Coding of Continuous-tone
Still Images, Part 2: Compliance testing", final approval expected 1994.

These are the official standards documents.  Note that the Pennebaker and
Mitchell textbook is likely to be cheaper and more useful than the official
standards.


Changes to Section 21: YCbCr Images
===================================

[This section of the Tech Note clarifies section 21 to make clear the
interpretation of image dimensions in a subsampled image.  Furthermore,
the section is changed to allow the original image dimensions not to be
multiples of the sampling factors.  This change is necessary to support use
of JPEG compression on odd-size images.]

Add the following paragraphs to the Section 21 introduction (p. 89),
just after the paragraph beginning "When a Class Y image is subsampled":

	In a subsampled image, it is understood that all TIFF image
	dimensions are measured in terms of the highest-resolution
	(luminance) component.  In particular, ImageWidth, ImageLength,
	RowsPerStrip, TileWidth, TileLength, XResolution, and YResolution
	are measured in luminance samples.

	RowsPerStrip, TileWidth, and TileLength are constrained so that
	there are an integral number of samples of each component in a
	complete strip or tile.  However, ImageWidth/ImageLength are not
	constrained.  If an odd-size image is to be converted to subsampled
	format, the writer should pad the source data to a multiple of the
	sampling factors by replication of the last column and/or row, then
	downsample.  The number of luminance samples actually stored in the
	file will be a multiple of the sampling factors.  Conversely,
	readers must ignore any extra data (outside the specified image
	dimensions) after upsampling.

	When PlanarConfiguration=2, each strip or tile covers the same
	image area despite subsampling; that is, the total number of strips
	or tiles in the image is the same for each component.  Therefore
	strips or tiles of the subsampled components contain fewer samples
	than strips or tiles of the luminance component.

	If there are extra samples per pixel (see field ExtraSamples),
	these data channels have the same number of samples as the
	luminance component.

Rewrite the YCbCrSubSampling field description (pp 91-92) as follows
(largely to eliminate possibly-misleading references to
ImageWidth/ImageLength of the subsampled components):

	(first paragraph unchanged)

	The two elements of this field are defined as follows:

	Short 0: ChromaSubsampleHoriz:

	1 = there are equal numbers of luma and chroma samples horizontally.

	2 = there are twice as many luma samples as chroma samples
	horizontally.

	4 = there are four times as many luma samples as chroma samples
	horizontally.

	Short 1: ChromaSubsampleVert:

	1 = there are equal numbers of luma and chroma samples vertically.

	2 = there are twice as many luma samples as chroma samples
	vertically.

	4 = there are four times as many luma samples as chroma samples
	vertically.

	ChromaSubsampleVert shall always be less than or equal to
	ChromaSubsampleHoriz.  Note that Cb and Cr have the same sampling
	ratios.

	In a strip TIFF file, RowsPerStrip is required to be an integer
	multiple of ChromaSubSampleVert (unless RowsPerStrip >=
	ImageLength, in which case its exact value is unimportant).
	If ImageWidth and ImageLength are not multiples of
	ChromaSubsampleHoriz and ChromaSubsampleVert respectively, then the
	source data shall be padded to the next integer multiple of these
	values before downsampling.

	In a tiled TIFF file, TileWidth must be an integer multiple of
	ChromaSubsampleHoriz and TileLength must be an integer multiple of
	ChromaSubsampleVert.  Padding will occur to tile boundaries.

	The default values of this field are [ 2,2 ].  Thus, YCbCr data is
	downsampled by default!
</pre>
PK粐\TU�;..html/addingtags.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Modifying The TIFF Library
</TITLE>
</HEAD>
<BODY BGCOLOR=white> 
<FONT FACE="Arial, Helvetica, Sans">

<H1>
Defining New TIFF Tags
</H1>

Libtiff has built-in knowledge of all the standard TIFF tags, as
well as extentions.  The following describes how to add knowledge of
new tags as builtins to libtiff, or how to application specific tags can
be used by applications without modifying libtiff. 
<p>

<h2>TIFFFieldInfo</h2>

How libtiff manages specific tags is primarily controlled by the 
definition for that tag value stored internally as a TIFFFieldInfo structure. 
This structure looks like this:
<p>

<pre>
typedef	struct {
  ttag_t    field_tag;          /* field's tag */
  short	    field_readcount;    /* read count/TIFF_VARIABLE/TIFF_SPP */
  short	    field_writecount;   /* write count/TIFF_VARIABLE */
  TIFFDataType field_type;      /* type of associated data */
  unsigned short field_bit;     /* bit in fieldsset bit vector */
  unsigned char field_oktochange;/* if true, can change while writing */
  unsigned char field_passcount;/* if true, pass dir count on set */
  char	*field_name;		/* ASCII name */
} TIFFFieldInfo;
</pre>

<ul>
<li> <b>field_tag</b>: the tag number.  For instance 277 for the
SamplesPerPixel tag.  Builtin tags will generally have a #define in
tiff.h for each known tag. <p>

<li> <b>field_readcount</b>: The number of values which should be read.
The special value TIFF_VARIABLE (-1) indicates that a variable number of
values may be read.  The special value TIFFTAG_SPP (-2) indicates that there
should be one value for each sample as defined by TIFFTAG_SAMPLESPERPIXEL.  
The special value TIFF_VARIABLE2 (-3) is presumably similar to TIFF_VARIABLE
though I am not sure what the distinction in behaviour is.  This field
is TIFF_VARIABLE for variable length ascii fields.<p>

<li> <b>field_writecount</b>: The number of values which should be written.
Generally the same as field_readcount.  A few built-in exceptions exist, but
I haven't analysed why they differ. <p>

<li> <b>field_type</b>: Type of the field.  One of TIFF_BYTE, TIFF_ASCII,
TIFF_SHORT, TIFF_LONG, TIFF_RATIONAL, TIFF_SBYTE, TIFF_UNDEFINED, 
TIFF_SSHORT, TIFF_SLONG, TIFF_SRATIONAL, TIFF_FLOAT, TIFF_DOUBLE or
TIFF_IFD.  Note that some fields can support more than one type (for 
instance short and long).  These fields should have multiple TIFFFieldInfos. 
<p>

<li> <b>field_bit</b>: Built-in tags stored in special fields in the 
TIFF structure have assigned field numbers to distinguish them (ie. 
FIELD_SAMPLESPERPIXEL).  New tags should generally just use 
FIELD_CUSTOM indicating they are stored in the generic tag list.<p>

<li> <b>field_oktochange</b>: TRUE if it is OK to change this tag value
while an image is being written.  FALSE for stuff that must be set once
and then left unchanged (like ImageWidth, or PhotometricInterpretation for
instance).<p>

<li> <b>field_passcount</b>: If TRUE, then the count value must be passed
in TIFFSetField(), and TIFFGetField(), otherwise the count is not required.
This should generally be TRUE for non-ascii variable count tags unless
the count is implicit (such as with the colormap).<p>

<li> <b>field_name</b>: A name for the tag.  Normally mixed case (studly caps) 
like "StripByteCounts" and relatively short. <p>

</ul>

A TIFFFieldInfo definition exists for each built-in tag in the tif_dirinfo.c
file.  Some tags which support multiple data types have more than one
definition, one per data type supported. <p>

Various functions exist for getting the internal TIFFFieldInfo definitions,
including _TIFFFindFieldInfo(), and _TIFFFindFieldInfoByName().  See
tif_dirinfo.c for details.  There must be some mechanism to get the whole
list, though I don't see it off hand.<p>

<h2>Default Tag Auto-registration</h2>

In libtiff 3.6.0 a new mechanism was introduced allowing libtiff to 
read unrecognised tags automatically.  When an unknown tags is encountered, 
it is automatically internally defined with a default name and a type 
derived from the tag value in the file.  Applications only need to predefine
application specific tags if they need to be able to set them in a file, or
if particular calling conventions are desired for TIFFSetField() and 
TIFFGetField().<p>

When tags are autodefined like this the <b>field_readcount</b> and
<b>field_writecount</b> values are always TIFF_VARIABLE.  The 
<b>field_passcount</b> is always TRUE, and the <b>field_bit</b> is 
FIELD_CUSTOM.  The field name will be "Tag %d" where the %d is the tag 
number.<p>  

<h2>Defining Application Tags</h2>

For various reasons, it is common for applications to want to define
their own tags to store information outside the core TIFF specification. 
This is done by calling TIFFMergeFieldInfo() with one or more TIFFFieldInfos. 
<p>

The libgeotiff library provides geospatial information extentions within
a TIFF file.  First, a set of TIFFFieldInfo's is prepared with information
on the new tags:<p>

<pre>
static const TIFFFieldInfo xtiffFieldInfo[] = {
  
  /* XXX Insert Your tags here */
    { TIFFTAG_GEOPIXELSCALE,	-1,-1, TIFF_DOUBLE,	FIELD_CUSTOM,
      TRUE,	TRUE,	"GeoPixelScale" },
    { TIFFTAG_GEOTRANSMATRIX,	-1,-1, TIFF_DOUBLE,	FIELD_CUSTOM,
      TRUE,	TRUE,	"GeoTransformationMatrix" },
    { TIFFTAG_GEOTIEPOINTS,	-1,-1, TIFF_DOUBLE,	FIELD_CUSTOM,
      TRUE,	TRUE,	"GeoTiePoints" },
    { TIFFTAG_GEOKEYDIRECTORY, -1,-1, TIFF_SHORT,	FIELD_CUSTOM,
      TRUE,	TRUE,	"GeoKeyDirectory" },
    { TIFFTAG_GEODOUBLEPARAMS,	-1,-1, TIFF_DOUBLE,	FIELD_CUSTOM,
      TRUE,	TRUE,	"GeoDoubleParams" },
    { TIFFTAG_GEOASCIIPARAMS,	-1,-1, TIFF_ASCII,	FIELD_CUSTOM,
      TRUE,	FALSE,	"GeoASCIIParams" }
};
</pre>

In order to define the tags, we call TIFFMergeFieldInfo() on the
desired TIFF handle with the list of TIFFFieldInfos.<p>

<pre>
#define	N(a)	(sizeof (a) / sizeof (a[0]))

    /* Install the extended Tag field info */
    TIFFMergeFieldInfo(tif, xtiffFieldInfo, N(xtiffFieldInfo));
</pre>

The tags need to be defined for each TIFF file opened - and when reading
they should be defined before the tags of the file are read, yet a valid
TIFF * is needed to merge the tags against.   In order to get them 
registered at the appropriate part of the setup process, it is necessary
to register our merge function as an extender callback with libtiff. 
This is done with TIFFSetTagExtender().  We also keep track of the 
previous tag extender (if any) so that we can call it from our extender
allowing a chain of customizations to take effect. <P>

<pre>
static TIFFExtendProc _ParentExtender = NULL;

static
void _XTIFFInitialize(void)
{
    static int first_time=1;
	
    if (! first_time) return; /* Been there. Done that. */
    first_time = 0;
	
    /* Grab the inherited method and install */
    _ParentExtender = TIFFSetTagExtender(_XTIFFDefaultDirectory);
}
</pre>

The extender callback is looks like this.  It merges in our new fields
and then calls the next extender if there is one in effect.<p>

<pre>
static void
_XTIFFDefaultDirectory(TIFF *tif)
{
    /* Install the extended Tag field info */
    TIFFMergeFieldInfo(tif, xtiffFieldInfo, N(xtiffFieldInfo));

    /* Since an XTIFF client module may have overridden
     * the default directory method, we call it now to
     * allow it to set up the rest of its own methods.
     */

    if (_ParentExtender) 
        (*_ParentExtender)(tif);
}
</pre>

The above approach ensures that our new definitions are used when reading
or writing any TIFF file.  However, since on reading we already have 
default definitions for tags, it is usually not critical to pre-define them.
If tag definitions are only required for writing custom tags, you can just
call TIFFMergeFieldInfo() before setting new tags.  The whole extender
architecture can then be avoided.<p>

<A NAME=AddingTags><P><H2>Adding New Builtin Tags</H2></A>

A similar approach is taken to the above.  However, the TIFFFieldInfo 
should be added to the tiffFieldInfo[] list in tif_dirinfo.c.  Ensure that
new tags are added in sorted order by the tag number.<p>

Normally new built-in tags should be defined with FIELD_CUSTOM; however, if
it is desirable for the tag value to have it's own field in the TIFFDirectory
structure, then you will need to #define a new FIELD_ value for it, and
add appropriate handling as follows:


<OL>
<LI>Define the tag in <B>tiff.h</B>.
<LI>Add a field to the directory structure in <B>tif_dir.h</B>
   and define a <TT>FIELD_*</TT> bit (also update the definition of
   <TT>FIELD_CODEC</TT> to reflect your addition).
<LI>Add an entry in the <TT>TIFFFieldInfo</TT> array defined at the top of
   <B>tif_dirinfo.c</B>. 
   Note that you must keep this array sorted by tag
   number and that the widest variant entry for a tag should come
   first (e.g. <TT>LONG</TT> before <TT>SHORT</TT>).
<LI>Add entries in <TT>_TIFFVSetField()</TT> and <TT>_TIFFVGetField()</TT>
   for the new tag.
<LI>(<I>optional</I>) If the value associated with the tag is not a scalar value
   (e.g. the array for <TT>TransferFunction</TT>) and requires
   special processing,
   then add the appropriate code to <TT>TIFFReadDirectory()</TT> and
   <TT>TIFFWriteDirectory()</TT>.  You're best off finding a similar tag and
   cribbing code.
<LI>Add support to <TT>TIFFPrintDirectory()</TT> in <B>tif_print.c</B>
    to print the tag's value.
</OL>

<P>
If you want to maintain portability, beware of making assumptions
about data types.  Use the typedefs (<TT>uint16</TT>, etc. when dealing with
data on disk and <TT>t*_t</TT> when stuff is in memory) and be careful about
passing items through printf or similar vararg interfaces.

<A NAME=AddingCODECTags><P><H2>Adding New Codec-private Tags</H2></A>

To add tags that are meaningful <EM>only when a particular compression
algorithm is used</EM> follow these steps:

<OL>
<LI>Define the tag in <B>tiff.h</B>.
<LI>Allocate storage for the tag values in the private state block of
   the codec.
<LI>Insure the state block is created when the codec is initialized.
<LI>At <TT>TIFFInitfoo</TT> time override the method pointers in the
    TIFF structure
   for getting, setting and printing tag values.  For example,
<PRE>
    sp->vgetparent = tif->tif_vgetfield;
    tif->tif_vgetfield = fooVGetField;	/* hook for codec tags */
    sp->vsetparent = tif->tif_vsetfield;
    tif->tif_vsetfield = fooVSetField;	/* hook for codec tags */
    tif->tif_printdir = fooPrintDir;	/* hook for codec tags */
</PRE>
   (Actually you may decide not to override the
   <TT>tif_printdir</TT> method, but rather just specify it).
<LI>Create a private <TT>TIFFFieldInfo</TT> array for your tags and
    merge them into the core tags at initialization time using
    <TT>_TIFFMergeFieldInfo</TT>; e.g.
<PRE>
    _TIFFMergeFieldInfo(tif, fooFieldInfo, N(fooFieldInfo));
</PRE>
   (where <TT>N</TT> is a macro used liberaly throughout the distributed code).
<LI>Fill in the get and set routines.  Be sure to call the parent method
   for tags that you are not handled directly.  Also be sure to set the
   <TT>FIELD_*</TT> bits for tags that are to be written to the file.  Note that
   you can create ``pseudo-tags'' by defining tags that are processed
   exclusively in the get/set routines and never written to file (see
   the handling of <TT>TIFFTAG_FAXMODE</TT> in <B>tif_fax3.c</B>
   for an example of this).
<LI>Fill in the print routine, if appropriate.
</OL>

Note that space has been allocated in the <TT>FIELD_*</TT> bit space for
codec-private tags.  Define your bits as <TT>FIELD_CODEC+&lt;offset&gt;</TT> to
keep them away from the core tags.  If you need more tags than there
is room for, just increase <TT>FIELD_SETLONGS</TT> at the top of
<B>tiffiop.h</B>.

<HR>

Last updated: $Date: 2016-09-25 20:05:44 $

</BODY>

</HTML>
PK粐\V����	�	html/bugs.htmlnu�[���<HTML>
<HEAD>
<TITLE>Bugs and the TIFF Mailing List</TITLE>
</HEAD>
<BODY BGCOLOR=white> 
<FONT FACE="Arial, Helvetica, Sans">
<H1>
<IMG SRC=images/cover.jpg WIDTH=110 HEIGHT=110 ALIGN=left BORDER=1 HSPACE=6>
Bugs, Bugzilla, and the TIFF Mailing List
</H1>

<P>
This software is free.  Please let us know when you find a problem or
fix a bug.

<P>
Thanks to <A HREF=http://www.maptools.org/>MapTools.org</a>, libtiff now uses
bugzilla to track bugs.  All bugs filed in the older bugzilla at
bugzilla.remotesensing.org (pre April 2008) have unfortunately been lost. 
<P>
If you think you've discovered a bug, please first check to see if it is 
already known by looking at the list of already reported bugs.  You can do so 
by visiting the buglist at 
<A HREF=http://bugzilla.maptools.org/buglist.cgi?product=libtiff>http://bugzilla.maptools.org/buglist.cgi?product=libtiff</A>.  Also verify that 
the problem is still reproducable with the current development software 
from CVS. 
<P>
If you'd like to enter a new bug, you can do so at
<A HREF=http://bugzilla.maptools.org/enter_bug.cgi?product=libtiff>http://bugzilla.maptools.org/enter_bug.cgi?product=libtiff</A>.  
<P>
If you'd like to inform us about some kind of security issue that should not
be disclosed for a period of time, then you can contact maintainers directly.
Send a copies of your report to the following people: Frank Warmerdam
<a href="mailto:warmerdam@pobox.com">&lt;warmerdam@pobox.com&gt;</a> and
Bob Friesenhahn
<a href="mailto:bfriesen@simple.dallas.tx.us">&lt;bfriesen@simple.dallas.tx.us&gt;</a>.
<P>

Of course, reporting bugs is no substitute for discussion.  The 
<a href="mailto:tiff@lists.maptools.org">tiff@lists.maptools.org</a> mailing
list is for users of this software, and discussion TIFF issues in general. 
It is managed with the Mailman software, and the web interface for subscribing
and managing your access to the list is at:<p>

  <a href="http://lists.maptools.org/mailman/listinfo/tiff">http://lists.maptools.org/mailman/listinfo/tiff</a><P>

Posts to the list are only accepted from members of the list in order
to limit the amount of spam propagated.<p>

A <A HREF="http://www.awaresystems.be/imaging/tiff/tml.html">Long Term
Archive</a> including recent messages, and most messages back to 1993,
with search capabilities is available, and 
has been prepared and hosted by <a href="http://www.awaresystems.be">AWare
Systems</a>. <p>


<HR>

Last updated: $Date: 2016-04-08 02:34:03 $
</BODY>
</HTML>
PK粐\�b��W�W�html/build.htmlnu�[���<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
<title>Building the TIFF Software Distribution</title>
</head>
<body bgcolor="white">
<h1><font face="Arial, Helvetica, Sans"><img src=
"images/cramps.gif" width="159" height="203" align="left" border=
"1" hspace="6"> Building the Software Distribution</font></h1>
<ul>
<li><a href="#CMAKE">Building on all systems with CMake</a>.</li>
<li><a href="#UNIX">Building on a UNIX system with Autoconf</a>.</li>
<li><a href="#PC">Building on an MS-DOS or Windows system with nmake</a>.</li>
<li><a href="#VMS">Building on a VMS system</a>.</li>
<li><a href="#Other">Building the Software on Other
Systems.</a></li>
</ul>
<br clear="left">
This chapter contains step-by-step instructions on how to configure
and build the TIFF software distribution. The software is most
easily built on a UNIX system, but with a little bit of work it can
easily be built and used on other non-UNIX platforms.
<hr>
<a name="CMake" id="CMAKE"></a>
<h2>Building on all systems with CMake</h2> CMake may be used to
generate build files for most common build systems and IDEs, and
supports all UNIX-like systems as well as Windows. See
the <a href="http://www.cmake.org/">CMake website</a> for further
details. To build the software on you need to first run
<tt>cmake</tt> to configure the build and generate the system-specific
build files. This reads the top-level <tt>CMakeLists.txt</tt> file,
which probes the target system for necessary tools and functions,
checks any options you specified to configure the build, and then
outputs build files configured for your system.  If using <tt>Unix
Makefiles</tt>, once configuration is done, you simply
run <tt>make</tt> (or <tt>gmake</tt>) to build the software and
then <tt>make install</tt> to do the installation.  For other build
systems, you do the equivalent steps with the tool for that system.
For example, on any UNIX system:
<div style="margin-left: 2em">
<pre>
% <b>cd ./tiff-4.0.5</b>
% <b>cmake</b>
    <i>...lots of messages...</i>
% <b>make</b>
    <i>...lots of messages...</i>
% <b>make test</b>
    <i>...lots of messages...</i>
# <b>make install</b>
</pre></div>
Building is dependent on a <tt>make</tt> utility and a C
(and optionally a C++ compiler), so you will need these tools.
<p>In general, the software is designed such that the following
targets will always be available</p>
<div style="margin-left: 2em">
<pre>
make [all]      build stuff
make test       run the test suite
make install    build and install stuff
make clean      remove object files, executables and cruft
</pre></div>
<a name="CMakeBuildTrees" id= "CMakeBuildTrees"></a>
<hr width="65%" align="right">
<h3>Build Trees</h3>
There are two schemes for configuring and building the software. If
you intend to build the software for only one target system, you
can configure the software so that it is built in the same
directories as the source code.
<div style="margin-left: 2em">
<pre>
% <b>gzip -dc tiff-4.0.5.tar.gz | tar -xf -</b>
% <b>cd ./tiff-4.0.5</b>
% <b>cmake</b>
% <b>make</b>
% <b>make test</b>
% <b>make install</b>
</pre></div>
<p>Otherwise, you can configure a build tree that is parallel to
the source tree hierarchy (or in some completely different place)
but which contains only configured files and files created during
the build procedure.</p>
<div style="margin-left: 2em">
<pre>
% <b>gzip -dc tiff-4.0.5.tar.gz | tar -xf -</b>
% <b>mkdir tiff-4.0.5-build</b>
% <b>cd ./tiff-4.0.5-build</b>
% <b>cmake ../tiff-4.0.5</b>
% <b>make</b>
% <b>make test</b>
% <b>make install</b>
</pre></div>
This second scheme is useful for:
<ul>
<li>building multiple targets from a single source tree</li>
<li>building from a read-only source tree (e.g. if you receive the
distribution on CD-ROM)</li>
<li>sharing the source files via a network, but building on
multiple systems</li>
<li>keeping the source tree clean
(unlike <tt>autoconf</tt>, <tt>cmake</tt> does not provide
a <tt>distclean</tt> target, so out of source builds are
recommended)</li>
</ul>
<a name="CMakeGenerators" id= "CMakeGenerators"></a>
<hr width="65%" align="right">
<h3>Generators</h3> The default generator for UNIX is <tt>Unix
Makefiles</tt>, and on Windows is <tt>NMake Makefiles</tt> or MSBuild
depending upon the setup.  Run <b>cmake --help</b> to list all the
generators available for your platform.  For example, to use the Ninja
<a href="https://martine.github.io/ninja/">build system</a> on UNIX or
Windows:
<pre>
<b>cmake -G Ninja</b>
<b>cmake --build .</b>
<b>ctest -V</b>
<b>cmake --build . --target install</b>
</pre>
<p>Note that <b>cmake --build .</b> is a build-system-independent way
of building a target; you can always use the build system directly.</p>
<p>Alternatively, using the MSBuild system on Windows (64-bit Release
build with VS2013):
</p>
<pre>
<b>cmake -G "Visual Studio 12 2013 Win64"</b>
<b>cmake --build . --config Release</b>
<b>ctest -V -C Release</b>
<b>cmake --build . --config Release --target install</b>
</pre>
With the above configuration, it's also possible to open the generated
solution file with the Visual Studio IDE as well as building on the
command-line.
<a name="CMakeConfigOptions" id="CMakeConfigOptions"></a>
<hr width="65%" align="right">
<h3>Configuration Options</h3>
The configuration process is critical to the proper compilation,
installation, and operation of the
software. The <tt>CMakeLists.txt</tt> script runs a series of tests to
decide whether or not the target system supports required
functionality and, if it does not, whether it can emulate or
workaround the missing functions.  After running <tt>cmake</tt>, check
the <tt>CMakeCache.txt</tt> file; this contains all the results of the
checks performed and the options set by the user.  If <tt>cmake</tt>
failed to run, check <tt>CMakeFiles/CMakeOutput.log</tt>
and <tt>CMakeFiles/CMakeError.log</tt>; these should record the error
which caused the failure.
<p>A second function of the configure script is to set the default
configuration parameters for the software. Of particular note are the
directories where the software is to be installed. By default the
software is installed in the <b>/usr/local</b> hierarchy. To change
this behaviour the appropriate parameters can be specified on the
command line. Run <b>cmake --help</b> to get a full list of possible
options, and <b>cmake -LH</b> to list all the configurable options for
this software package, or <b>cmake -LAH</b> to show all advanced
options in addition. Standard installation related options are shown
below.</p>
<pre>
<tt>
Installation directories:
  CMAKE_INSTALL_PREFIX

Fine tuning of the installation directories:
  CMAKE_INSTALL_BINDIR            user executables [PREFIX/bin]
  CMAKE_INSTALL_SBINDIR           system admin executables [PREFIX/sbin]
  CMAKE_INSTALL_LIBEXECDIR        program executables [PREFIX/libexec]
  CMAKE_INSTALL_SYSCONFDIR        read-only single-machine data [PREFIX/etc]
  CMAKE_INSTALL_SHAREDSTATEDIR    modifiable architecture-independent data [PREFIX/com]
  CMAKE_INSTALL_LOCALSTATEDIR     modifiable single-machine data [PREFIX/var]
  CMAKE_INSTALL_LIBDIR            object code libraries [PREFIX/lib]
  CMAKE_INSTALL_INCLUDEDIR        C header files [PREFIX/include]
  CMAKE_INSTALL_OLDINCLUDEDIR     C header files for non-gcc [/usr/include]
  CMAKE_INSTALL_DATAROOTDIR       read-only arch.-independent data root [PREFIX/share]
  CMAKE_INSTALL_DATADIR           read-only architecture-independent data [DATAROOTDIR]
  CMAKE_INSTALL_LOCALEDIR         locale-dependent data [DATAROOTDIR/locale]
  CMAKE_INSTALL_MANDIR            man documentation [DATAROOTDIR/man]
  CMAKE_INSTALL_DOCDIR            documentation root [DATAROOTDIR/doc/tiff]
</tt>
</pre>
Also see the
CMake <a href="http://www.cmake.org/cmake/help/v3.3/">documentation</a>
for <a href="http://www.cmake.org/cmake/help/v3.3/manual/cmake-variables.7.html"
>additional variables</a> which may be set.
<a name="CMakePackages" id="CMakePackages"></a>
<hr width="65%" align="right">
<h3>Configuring Optional Packages/Support</h3>
The TIFF software comes with several packages that are installed
only as needed, or only if specifically configured at the time the
configure script is run. Packages can be configured via the
<b>cmake</b> commandline parameters.
<dl>
<dt><i>Static/Shared Objects Support</i></dt>
<dd><tt>BUILD_SHARED_LIBS[=ON|OFF]&nbsp;&nbsp;&nbsp;&nbsp;build shared
libraries [default=ON]</tt><br>
<p>This option controls whether or not to configure the software
to build a shared and static binaries for the TIFF library. Use of
shared libraries can significantly reduce the disk space needed for
users of the TIFF software. If shared libraries are not used then
the code is statically linked into each application that uses it.
</p>
<p><tt>ld-version-script[=ON|OFF]&nbsp;&nbsp;Enable linker version
script (default is ON)</tt></p>
<p>Add shared library symbol versioning on ELF-based systems (e.g.
Linux and FreeBSD) which use the GNU linker. This is needed if
several major versions of libtiff might be loaded at once into the
same program.</p>
</dd>
<dt><i>JPEG Support</i></dt>
<dd><tt>jpeg[=ON|OFF]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enable IJG JPEG
library usage (required for JPEG compression, enabled by default)<br>
JPEG_INCLUDE_DIR=DIR&nbsp;location of IJG
JPEG library headers<br>
JPEG_LIBRARY=DIR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;location of IJG JPEG
library binary)</tt></dd>
<dd>The <tt>JPEG</tt> package enables support for the handling of
TIFF images with JPEG-encoded data. Support for JPEG-encoded data
requires the Independent JPEG Group (IJG) <tt>libjpeg</tt>
distribution; this software is available at <a href=
"http://www.ijg.org/">http://www.ijg.org/</a>. <b>cmake</b>
script automatically tries to search for a working IJG JPEG
installation. If it fails to find library, JPEG support will be
automatically disabled. If you want specify the exact paths to
library binary and headers, use above options for that.</dd>
<dt><i>ZIP Support</i></dt>
<dd>The <tt>ZIP</tt> support enables support for the handling of TIFF
images with deflate-encoded data (enabled by default if
available). Support for deflate-encoded data requires the freely
available <tt>zlib</tt> distribution written by Jean-loup Gailly and
Mark Adler; this software is available at <a href=
"http://www.zlib.org/">http://www.zlib.org/</a>.</dd>
</dl>
<a name="Sample" id="Sample"></a>
<hr width="65%" align="right">
<a name="UNIX" id="UNIX"></a>
<h2>Building on a UNIX System with Autoconf</h2>
To build the software on a UNIX system you need to first run the
configure shell script that is located in the top level of the
source directory. This script probes the target system for
necessary tools and functions and constructs a build environment in
which the software may be compiled. Once configuration is done, you
simply run <tt>make</tt> (or <tt>gmake</tt>) to build the software
and then <tt>make install</tt> to do the installation; for example:
<div style="margin-left: 2em">
<pre>
% <b>cd ./tiff-4.0.5</b>
% <b>./configure</b>
    <i>...lots of messages...</i>
% <b>make</b>
    <i>...lots of messages...</i>
% <b>make check</b>
    <i>...lots of messages...</i>
# <b>make install</b>
</pre></div>
Supplied makefiles are dependent on a <tt>make</tt> utility and a C
(and optionally a C++ compiler), so you will need these tools.
<p>In general, the software is designed such that the following
should be ``<i>make-able</i>'' in each directory:</p>
<div style="margin-left: 2em">
<pre>
make [all]      build stuff
make check      run the test suite
make install    build and install stuff
make clean      remove object files, executables and cruft
make distclean  remove everything, that can be recreated
</pre></div>
Note that after running "<tt>make distclean</tt>" the
<tt>configure</tt> script must be run again to create the Makefiles
and other make-related files. <a name="BuildTrees" id=
"BuildTrees"></a>
<hr width="65%" align="right">
<h3>Build Trees</h3>
There are two schemes for configuring and building the software. If
you intend to build the software for only one target system, you
can configure the software so that it is built in the same
directories as the source code.
<div style="margin-left: 2em">
<pre>
% <b>gzip -dc tiff-4.0.5.tar.gz | tar -xf -</b>
% <b>cd ./tiff-4.0.5</b>
% <b>./configure</b>
% <b>make</b>
% <b>make check</b>
% <b>make install</b>
</pre></div>
<p>Otherwise, you can configure a build tree that is parallel to
the source tree hierarchy (or in some completely different place)
but which contains only configured files and files created during
the build procedure.</p>
<div style="margin-left: 2em">
<pre>
% <b>gzip -dc tiff-4.0.5.tar.gz | tar -xf -</b>
% <b>mkdir tiff-4.0.5-build</b>
% <b>cd ./tiff-4.0.5-build</b>
% <b>../tiff-4.0.5/configure</b>
% <b>make</b>
% <b>make check</b>
% <b>make install</b>
</pre></div>
This second scheme is useful for:
<ul>
<li>building multiple targets from a single source tree</li>
<li>building from a read-only source tree (e.g. if you receive the
distribution on CD-ROM)</li>
<li>sharing the source files via a network, but building on
multiple systems</li>
</ul>
<a name="ConfigOptions" id="ConfigOptions"></a>
<hr width="65%" align="right">
<h3>Configuration Options</h3>
The configuration process is critical to the proper compilation,
installation, and operation of the software. The configure script
runs a series of tests to decide whether or not the target system
supports required functionality and, if it does not, whether it can
emulate or workaround the missing functions. This procedure is
fairly complicated and, due to the nonstandard nature of most UNIX
systems, prone to error. The first time that you configure the
software for use you should check the output from the configure
script and look for anything that does not make sense for your
system.
<p>A second function of the configure script is to set the default
configuration parameters for the software. Of particular note are
the directories where the software is to be installed. By default
the software is installed in the <b>/usr/local</b> hierarchy. To
change this behaviour the appropriate parameters can be specified
on the command line to configure. Run <b>./configure --help</b> to
get a full list of possible options. Standard installation related
options are shown below.</p>
<pre>
<tt>
Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc.  You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR            user executables [EPREFIX/bin]
  --sbindir=DIR           system admin executables [EPREFIX/sbin]
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/tiff]
  --htmldir=DIR           html documentation [DOCDIR]

Program names:
  --program-prefix=PREFIX            prepend PREFIX to installed program names
  --program-suffix=SUFFIX            append SUFFIX to installed program names
  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
</tt>
</pre>
<a name="Packages" id="Packages"></a>
<hr width="65%" align="right">
<h3>Configuring Optional Packages/Support</h3>
The TIFF software comes with several packages that are installed
only as needed, or only if specifically configured at the time the
configure script is run. Packages can be configured via the
<b>configure</b> script commandline parameters.
<dl>
<dt><i>Static/Shared Objects Support</i></dt>
<dd><tt>--enable-shared[=PKGS]&nbsp;&nbsp;&nbsp;&nbsp;build shared
libraries [default=yes]<br>
--enable-static[=PKGS]&nbsp;&nbsp;&nbsp;&nbsp;build static
libraries [default=yes]</tt>
<p>These options control whether or not to configure the software
to build a shared and static binaries for the TIFF library. Use of
shared libraries can significantly reduce the disk space needed for
users of the TIFF software. If shared libraries are not used then
the code is statically linked into each application that uses it.
By default both types of binaries is configured.</p>
<p>
<tt>--enable-rpath&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enable
runtime linker paths (-R libtool option)</tt></p>
<p>Add library directories (see other options below) to the TIFF
library run-time linker path.</p>
<p><tt>--enable-ld-version-script&nbsp;&nbsp;Enable linker version
script (default is disabled)</tt></p>
<p>Add shared library symbol versioning on ELF-based systems (e.g.
Linux and FreeBSD) which use the GNU linker. This is needed if
several major versions of libtiff might be loaded at once into the
same program.</p>
</dd>
<dt><i>JPEG Support</i></dt>
<dd><tt>--disable-jpeg&nbsp;&nbsp;&nbsp;&nbsp;disable IJG JPEG
library usage (required for JPEG compression, enabled by default)
--with-jpeg-include-dir=DIR&nbsp;&nbsp;&nbsp;&nbsp;location of IJG
JPEG library headers
--with-jpeg-lib-dir=DIR&nbsp;&nbsp;&nbsp;&nbsp;location of IJG JPEG
library binary)</tt></dd>
<dd>The <tt>JPEG</tt> package enables support for the handling of
TIFF images with JPEG-encoded data. Support for JPEG-encoded data
requires the Independent JPEG Group (IJG) <tt>libjpeg</tt>
distribution; this software is available at <a href=
"http://www.ijg.org/">http://www.ijg.org/</a>. <b>configure</b>
script automatically tries to search for a working IJG JPEG
installation. If it fails to find library, JPEG support will be
automatically disabled. If you want specify the exact paths to
library binary and headers, use above switches for that.</dd>
<dt><i>ZIP Support</i></dt>
<dd>The <tt>ZIP</tt> support enables support for the handling of
TIFF images with deflate-encoded data. Support for deflate-encoded
data requires the freely available <tt>zlib</tt> distribution
written by Jean-loup Gailly and Mark Adler; this software is
available at <a href=
"http://www.zlib.org/">http://www.zlib.org/</a>. If ZIP support is
enabled the <tt>DIRS_LIBINC</tt> and <tt>DIR_GZLIB</tt> parameters
should also be set (see below). By default this package is not
configured.</dd>
</dl>
<a name="Sample" id="Sample"></a>
<hr width="65%" align="right">
<a name="PC" id="PC"></a>
<h2>Building the Software under Windows 2000/XP/7/8/10 with nmake</h2>
With Microsoft Visual C++ installed, and properly configured for
commandline use (you will likely need to source VCVARS32.BAT in
AUTOEXEC.bAT or somewhere similar) you should be able to use the
provided <tt>makefile.vc</tt>.
<p>The source package is delivered using Unix line termination
conventions, which work with MSVC but do not work with Windows
'notepad'. If you use unzip from the <a href=
"http://www.info-zip.org/pub/infozip/">Info-Zip</a> package, you
can extract the files using Windows normal line termination
conventions with a command similar to:</p>
<pre>
  unzip -aa -a tiff-4.0.5.zip
</pre>
<p>By default the nmake-based libtiff build does not depend on any
additional libraries.  Normally libtiff should be built with at least
JPEG and ZIP support so that it can open JPEG and ZIP-compressed TIFF
files.  In order to add additional libraries (e.g. libjpeg, zlib,
jbigkit), build those libraries according to their own particular
build instructions, and then edit 'nmake.opt' (using a capable
plain-text editor) to enable use of the libraries, including
specifying where the libraries are installed.  It is also necessary to
edit libtiff/tiffconf.vc.h to enable the related configuration defines
(<em>JPEG_SUPPORT</em>, <em>OJPEG_SUPPORT</em>, <em>PIXARLOG_SUPPORT</em>,
<em>ZIP_SUPPORT</em>), or to disable features which are normally
included by default.  Ignore the comment at the top of the
libtiff/tiffconf.vc.h file which says that it has no influence on the
build, because the statement is not true for Windows. Please note that
the nmake build copies tiffconf.vc.h to tiffconf.h, and copies
tif_config.vc.h to tif_config.h, overwriting any files which may be
present.  Likewise, the 'nmake clean' step removes those files.</p>
<p>To build using the provided makefile.vc you may use:</p>
<pre>
  C:\tiff-4.0.5&gt; nmake /f makefile.vc clean
  C:\tiff-4.0.5&gt; nmake /f makefile.vc

    or (the hard way)

  C:\tiff-4.0.5&gt; cd port
  C:\tiff-4.0.5\port&gt; nmake /f makefile.vc clean
  C:\tiff-4.0.5\port&gt; nmake /f makefile.vc
  C:\tiff-4.0.5&gt; cd ../libtiff
  C:\tiff-4.0.5\libtiff&gt; nmake /f makefile.vc clean
  C:\tiff-4.0.5\libtiff&gt; nmake /f makefile.vc
  C:\tiff-4.0.5\libtiff&gt; cd ..\tools
  C:\tiff-4.0.5\tools&gt; nmake /f makefile.vc clean
  C:\tiff-4.0.5\tools&gt; nmake /f makefile.vc
</pre>
<p>This will build the library
file <tt>libtiff\libtiff\libtiff.lib</tt>.</p>
<p>The makefile also builds a DLL (libtiff.dll) with an associated
import library (libtiff_i.lib). Any builds using libtiff will need to
include the LIBTIFF\LIBTIFF directory in the include path.</p>
<p>The <tt>libtiff\tools\makefile.vc</tt> should build .exe's for
all the standard TIFF tool programs.</p>
<hr>
<a name="VMS" id="VMS"></a>
<h2>Building the Software on a VMS System</h2>
The VMS port was done by Karsten Spang (<a href=
"mailto:krs@kampsax.dk">krs@kampsax.dk</a>), who also "sort of"
maintains it. The VMS specific files are not in the main
directories. Instead they are placed under
<tt>[.CONTRIB.VMS...]</tt> in the distribution tree. Installation:
It is assumed that you have unpacked the tar file into a VMS
directory tree, in this text called DISK:[TIFF].
<ol>
<li>Move the VMS specific files to their proper directories.
<pre>
$ SET DEFAULT DISK:[TIFF.CONTRIB.VMS]
$ RENAME [.LIBTIFF]*.* [-.-.LIBTIFF]
$ RENAME [.TOOLS]*.* [-.-.TOOLS]
</pre></li>
<li>Compile the library.
<pre>
$ SET DEFAULT DISK:[TIFF.LIBTIFF]
$ @MAKEVMS
</pre></li>
<li>Compile the tools.
<pre>
$ SET DEFAULT DISK:[TIFF.TOOLS]
$ @MAKEVMS
</pre></li>
<li>Define the programs.
<pre>
$ DEFINE TIFFSHR DISK:[TIFF.LIBTIFF]TIFFSHR
$ FAX2PS    :==$DISK:[TIFF.TOOLS]FAX2PS
$ FAX2TIFF  :==$DISK:[TIFF.TOOLS]FAX2TIFF
$ GIF2TIFF  :==$DISK:[TIFF.TOOLS]GIF2TIFF
$ PAL2RGB   :==$DISK:[TIFF.TOOLS]PAL2RGB
$ PPM2TIFF  :==$DISK:[TIFF.TOOLS]PPM2TIFF
$ RAS2TIFF  :==$DISK:[TIFF.TOOLS]RAS2TIFF
$ RGB2YCBCR :==$DISK:[TIFF.TOOLS]RGB2YCBCR
$ THUMBNAIL :==$DISK:[TIFF.TOOLS]THUMBNAIL
$ TIFF2BW   :==$DISK:[TIFF.TOOLS]TIFF2BW
$ TIFF2PS   :==$DISK:[TIFF.TOOLS]TIFF2PS
$ TIFFCMP   :==$DISK:[TIFF.TOOLS]TIFFCMP
$ TIFFCP    :==$DISK:[TIFF.TOOLS]TIFFCP
$ TIFFDITHER:==$DISK:[TIFF.TOOLS]TIFFDITHER
$ TIFFDUMP  :==$DISK:[TIFF.TOOLS]TIFFDUMP
$ TIFFINFO  :==$DISK:[TIFF.TOOLS]TIFFINFO
$ TIFFMEDIAN:==$DISK:[TIFF.TOOLS]TIFFMEDIAN
$ TIFFSPLIT :==$DISK:[TIFF.TOOLS]TIFFSPLIT
$ YCBCR     :==$DISK:[TIFF.TOOLS]YCBCR
</pre></li>
</ol>
You will want to add these lines to your <tt>LOGIN.COM</tt> file,
after changing the name of the directory that you have used on your
machine.
<p>This release has been tested on OpenVMS/VAX 5.5-2, using VAX C
3.2. A previous release was tested under OpenVMS/AXP ?.? using DEC
C ?.?, it is believed that this release as well works on AXP. The
code contains some GNU C specific things. This does *not* imply,
however, that the VAX/GCC configuration has been tested, *it has
not*.</p>
<p>The command procedures (<tt>MAKEVMS.COM</tt>) for building the
library and tools, is believed to choose the correct options for
the VAX and AXP cases automatically.</p>
<p>On the AXP, IEEE floating point is used by default. If you want
VAX floating point, remove the <tt>/FLOAT=IEEE_FLOAT</tt>
qualifier, and change <tt>HAVE_IEEEFP=1</tt> to
<tt>HAVE_IEEEFP=0</tt> in the <tt>MAKEVMS.COM</tt> files in both
the <b>libtiff</b> and <b>tools</b> directories.</p>
<h3>Compiling your own program on a VMS system:</h3>
When compiling a source file in which you <tt>"#include
&lt;tiffio.h&gt;"</tt>, use the following command
<pre>
    $ CC/INCLUDE=DISK:[TIFF.LIBTIFF]
</pre>
This ensures that the header file is found. On the AXP, also add
<tt>/FLOAT=IEEE_FLOAT</tt> (if used when building the library).
<h3>Linking your own program to the TIFF library on a VMS
system:</h3>
You can link to the library in two ways: Either using the shareable
library, or using the object library. On the VAX these
possibilities are:
<ol>
<li>Using the shareable TIFF library.
<pre>
$ LINK MY_PROGRAM,DISK:[TIFF.LIBTIFF]TIFF/OPTIONS,SYS$INPUT:/OPTIONS
    SYS$SHARE:VAXCRTL/SHAREABLE
</pre></li>
<li>Using the TIFF object library.
<pre>
$ LINK MY_PROGRAM, -
    DISK:[TIFF.LIBTIFF]TIFF/LIBRARY/INCLUDE=(TIF_FAX3SM,TIF_CODEC), -
    SYS$INPUT:/OPTIONS
    SYS$SHARE:VAXCRTL/SHAREABLE
</pre></li>
</ol>
On AXP (and possibly also using DEC C on VAX) the corresponding
commands are
<ol>
<li>Using the shareable TIFF library.
<pre>
$ LINK MY_PROGRAM,DISK:[TIFF.LIBTIFF]TIFF/OPTIONS
</pre></li>
<li>Using the TIFF object library.
<pre>
$ LINK MY_PROGRAM,DISK:[TIFF.LIBTIFF]TIFF/LIBRARY
</pre></li>
</ol>
Method 1 uses the shortest link time and smallest <tt>.EXE</tt>
files, but it requires that <tt>TIFFSHR</tt> is defined as above at
link time and <strong>at run time</strong>. Using the compilation
procedure above, the tools are linked in this way.
<p>Method 2 gives somewhat longer link time and larger
<tt>.EXE</tt> files, but does not require <tt>TIFFSHR</tt> to be
defined. This method is recommended if you want to run your program
on another machine, and for some reason don't want to have the
library on that machine. If you plan to have more than one program
(including the tools) on the machine, it is recommended that you
copy the library to the other machine and use method 1.</p>
<hr>
<a name="Other" id="Other"></a>
<h2>Building the Software on Other Systems</h2>
This section contains information that might be useful if you are
working on a non-UNIX system that is not directly supported. All
library-related files described below are located in the
<b>libtiff</b> directory.
<p>The library requires two files that are generated
<i>on-the-fly</i>. The file <b>tif_fax3sm.c</b> has the state
tables for the Group 3 and Group 4 decoders. This file is generated
by the <tt>mkg3states</tt> program on a UNIX system; for
example,</p>
<div style="margin-left: 2em">
<pre>
<tt>
cd libtiff
cc -o mkg3states mkg3states.c
rm -f tif_fax3sm.c
./mkg3states -c const tif_fax3sm.c
</tt>
</pre></div>
The <tt>-c</tt> option can be used to control whether or not the
resutling tables are generated with a <tt>const</tt> declaration.
The <tt>-s</tt> option can be used to specify a C storage class for
the table declarations. The <tt>-b</tt> option can be used to force
data values to be explicitly bracketed with ``{}'' (apparently
needed for some MS-Windows compilers); otherwise the structures are
emitted in as compact a format as possible. Consult the source code
for this program if you have questions.
<p>The second file required to build the library, <b>version.h</b>,
contains the version information returned by the
<tt>TIFFGetVersion</tt> routine. This file is built on most systems
using the <tt>mkversion</tt> program and the contents of the
<tt>VERSION</tt> and <tt>tiff.alpha</tt> files; for example,</p>
<div style="margin-left: 2em">
<pre>
cd libtiff
cc -o mkversion mkversion.c
rm -f version.h
./mkversion -v ../VERSION -a ../dist/tiff.alpha version.h
</pre></div>
<p>Otherwise, when building the library on a non-UNIX system be
sure to consult the files <b>tiffcomp.h</b> and <b>tiffconf.h</b>.
The former contains system compatibility definitions while the
latter is provided so that the software configuration can be
controlled on systems that do not support the make facility for
building the software.</p>
<p>Systems without a 32-bit compiler may not be able to handle some
of the codecs in the library; especially the Group 3 and 4 decoder.
If you encounter problems try disabling support for a particular
codec; consult the <a href=
"internals.html#Config">documentation</a>.</p>
<p>Programs in the tools directory are written to assume an ANSI C
compilation environment. There may be a few POSIX'isms as well. The
code in the <b>port</b> directory is provided to emulate routines
that may be missing on some systems. On UNIX systems the
<tt>configure</tt> script automatically figures out which routines
are not present on a system and enables the use of the equivalent
emulation routines from the <b>port</b> directory. It may be
necessary to manually do this work on a non-UNIX system. <a name=
"Testing" id="Testing"></a></p>
<hr>
<h2>Checking out the Software</h2>
<p>Assuming you have working versions of <tt>tiffgt</tt> and
<tt>tiffsv</tt>, you can just use them to view any of the sample
images available for testing (see the <a href="images.html">section
on obtaining the test images</a>). Otherwise, you can do a cursory
check of the library with the <tt>tiffcp</tt> and <tt>tiffcmp</tt>
programs. For example,</p>
<div style="margin-left: 2em">
<pre>
tiffcp -lzw cramps.tif x.tif
tiffcmp cramps.tif x.tif
</pre></div>
<p>(<tt>tiffcmp</tt> should be silent if the files compare
correctly). <a name="TOC" id="TOC"></a></p>
<hr>
<h2>Table of Contents</h2>
The following files makup the core library:
<pre>
libtiff/tiff.h                  TIFF spec definitions
libtiff/tiffcomp.h              non-UNIX OS-compatibility definitions
libtiff/tiffconf.h              non-UNIX configuration definitions
libtiff/tiffio.h                public TIFF library definitions
libtiff/tiffiop.h               private TIFF library definitions
libtiff/t4.h                    CCITT Group 3/4 code tables+definitions
libtiff/tif_dir.h               private defs for TIFF directory handling
libtiff/tif_fax3.h              CCITT Group 3/4-related definitions
libtiff/tif_predict.h           private defs for Predictor tag support
libtiff/uvcode.h                LogL/LogLuv codec-specific definitions
libtiff/version.h               version string (generated by Makefile)
libtiff/tif_apple.c             Apple-related OS support
libtiff/tif_atari.c             Atari-related OS support
libtiff/tif_aux.c               auxilary directory-related functions
libtiff/tif_close.c             close an open TIFF file
libtiff/tif_codec.c             configuration table of builtin codecs
libtiff/tif_compress.c          compression scheme support
libtiff/tif_dir.c               directory tag interface code
libtiff/tif_dirinfo.c           directory known tag support code
libtiff/tif_dirread.c           directory reading code
libtiff/tif_dirwrite.c          directory writing code
libtiff/tif_dumpmode.c          "no" compression codec
libtiff/tif_error.c             library error handler
libtiff/tif_fax3.c              CCITT Group 3 and 4 codec
libtiff/tif_fax3sm.c            G3/G4 state tables (generated by mkg3states)
libtiff/tif_flush.c             i/o and directory state flushing
libtiff/tif_getimage.c          TIFFRGBAImage support
libtiff/tif_jpeg.c              JPEG codec (interface to the IJG distribution)
libtiff/tif_luv.c               SGI LogL/LogLuv codec
libtiff/tif_lzw.c               LZW codec
libtiff/tif_msdos.c             MSDOS-related OS support
libtiff/tif_next.c              NeXT 2-bit scheme codec (decoding only)
libtiff/tif_open.c              open and simply query code
libtiff/tif_packbits.c          Packbits codec
libtiff/tif_pixarlog.c          Pixar codec
libtiff/tif_predict.c           Predictor tag support
libtiff/tif_print.c             directory printing support
libtiff/tif_read.c              image data reading support
libtiff/tif_strip.c             some strip-related code
libtiff/tif_swab.c              byte and bit swapping support
libtiff/tif_thunder.c           Thunderscan codec (decoding only)
libtiff/tif_tile.c              some tile-related code
libtiff/tif_unix.c              UNIX-related OS support
libtiff/tif_version.c           library version support
libtiff/tif_vms.c               VMS-related OS support
libtiff/tif_warning.c           library warning handler
libtiff/tif_win3.c              Windows-3.1-related OS support
libtiff/tif_win32.c             Win32 (95/98/NT) related OS support
libtiff/tif_write.c             image data writing support
libtiff/tif_zip.c               Deflate codec

libtiff/mkg3states.c            program to generate G3/G4 decoder state tables
libtiff/mkspans.c               program to generate black-white span tables
libtiff/mkversion.c             program to generate libtiff/version.h.
</pre>
<hr>
Last updated: $Date: 2015-08-29 15:30:11 $
</body>
</html>
PK粐\
�k��html/contrib.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Contributed TIFF Software
</TITLE>
</HEAD>

<BODY BGCOLOR=white> 
<FONT FACE="Arial, Helvetica, Sans">
<H1>
<IMG SRC=images/smallliz.jpg WIDTH=144 HEIGHT=108 ALIGN=left BORDER=1 HSPACE=6>
Contributed TIFF Software
</H1>


<P>
The <B>contrib</B> directory has contributed software that
uses the TIFF library or which is associated with the library
(typically glue and guidance for ports to non-UNIX platforms, or tools that
aren't directly TIFF related).

<BR CLEAR=left>

<P>
<TABLE BORDER CELLPADDING=3>

<TR>
<TD VALIGN=top>
<B>contrib/vms</B>
</TD>
<TD>
scripts and files from Karsten Spang for building
		the library and tools under VMS
</TD>
</TR>

<TR>
<TD VALIGN=top>
<B>contrib/dbs</B>
</TD>
<TD>
various tools from Dan & Chris Sears, including a simple X-based viewer
</TD>
</TR>

<TR>
<TD VALIGN=top>
<B>contrib/ras</B>
</TD>
<TD>
two programs by Patrick Naughton for converting
		between Sun rasterfile format and TIFF (these
		require <TT>libpixrect.a</TT>, as opposed to the one in
		tools that doesn't)
</TD>
</TR>

<TR>
<TD VALIGN=top>
<B>contrib/mac-mpw</B><br>
<B>contrib/mac-cw</B>
</TD>
<TD>
scripts and files from Niles Ritter for building
the library and tools under Macintosh/MPW C and
code warrior.
</TD>
</TR>

<TR>
<TD VALIGN=top>
<B>contrib/acorn</B>
</TD>
<TD>
scripts and files from Peter Greenham for building
		the library and tools on an Acorn RISC OS system.
</TD>
</TR>

<TR>
<TD VALIGN=top>
<B>contrib/win32</B>
</TD>
<TD>
scripts and files from Scott Wagner for building
the library under Windows NT and Windows 95. (The makefile.vc in the
libtiff/libtiff directory may be sufficient for most users.)
</TD>
</TR>

<TR>
<TD VALIGN=top>
<B>contrib/win_dib</B>
</TD>
<TD>
two separate implementations of TIFF to DIB code suitable for any Win32 
platform.  Contributed by Mark James, and Philippe Tenenhaus.
</TD>
</TR>

<TR>
<TD VALIGN=top>
<B>contrib/ojpeg</B>
</TD>
<TD>
Patch for IJG JPEG library related to support for some Old JPEG in TIFF files.
Contributed by Scott Marovich.
</TD>
</TR>

<TR>
<TD VALIGN=top>
<B>contrib/dosdjgpp</B>
</TD>
<TD>
scripts and files from Alexander Lehmann for building
		the library under MSDOS with the DJGPP v2 compiler.
</TD>
</TR>

<TR>
<TD VALIGN=top>
<B>contrib/tags</B>
</TD>
<TD>
scripts and files from Niles Ritter for adding private
         tag support at runtime, without changing libtiff.
</TD>
</TR>

<TR>
<TD VALIGN=top>
<B>contrib/mfs</B>
</TD>
<TD>
code from Mike Johnson to read+write images in memory
without modifying the library
</TD>
</TR>

<TR>
<TD VALIGN=top>
<B>contrib/pds</B>
</TD>
<TD>
various routines from Conrad Poelman; a TIFF image iterator and
   code to support ``private sub-directories''
</TD>
</TR>

<TR>
<TD VALIGN=top>
<B>contrib/iptcutil</B>
</TD>

<TD>

A utility by <A HREF=mailto:billr@corbis.com>Bill Radcliffe</a> to
convert an extracted IPTC Newsphoto caption from a binary blob to
ASCII text, and vice versa. IPTC binary blobs can be extracted from
images via the <A
HREF=http://www.ImageMagick.org/>ImageMagick</a> convert(1)
utility.


</TD>
</TR>

<TR>
<TD VALIGN=top>
<B>contrib/addtiffo</B>
</TD>

<TD>

A utility (and supporting subroutine) for building
one or more reduce resolution
overviews to an existing TIFF file.  Supplied by 
<a href="http://pobox.com/~warmerdam">Frank Warmerdam</a>.

</TD>
</TR>

<TR>
<TD VALIGN=top>
<B>contrib/stream</B>
</TD>

<TD>

A class (TiffStream) for accessing TIFF files through a C++ stream 
interface.   Supplied by <a href="mailto:avi@shutterfly.com">Avi Bleiweiss</a>.

</TD>
</TR>

</TABLE>

<P>
Questions regarding these packages are usually best directed toward
their authors. 

<P>
<HR>

Last updated: $Date: 2016-09-25 20:05:44 $

</BODY>
</HTML>
PK粐\EyD66html/document.htmlnu�[���<HTML>
<HEAD>
<TITLE>
TIFF Documentation
</TITLE>
</HEAD>
<BODY BGCOLOR=white> 
<FONT FACE="Arial, Helvetica, Sans">
<H1>
<IMG SRC=images/jim.gif WIDTH=139 HEIGHT=170 ALIGN=left BORDER=1 HSPACE=6>
TIFF Documentation
</H1>

<P>
A copy of the 6.0 specification is available from Adobe at
<A HREF="http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf">http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf</A>, or from the libtiff
ftp site at <a href="ftp://download.osgeo.org/libtiff/doc/TIFF6.pdf">
ftp://download.osgeo.org/libtiff/doc/TIFF6.pdf</A>.<p>

<P>
Draft <a href="TIFFTechNote2.html">TIFF Technical Note #2</A> covers problems 
with the TIFF 6.0 design for embedding JPEG-compressed data in TIFF, and 
describes an alternative. <p>

Other Adobe information on TIFF can be retrieved from:

<A HREF="http://partners.adobe.com/public/developer/tiff/index.html">
http://partners.adobe.com/public/developer/tiff/index.html</A>

<P>
Joris Van Damme maintains a list of known tags and their descriptions and
definitions. It is available online at
<A HREF="http://www.awaresystems.be/imaging/tiff/tifftags.html">
http://www.awaresystems.be/imaging/tiff/tifftags.html</A>

<P>
There is a FAQ, related both to TIFF format and libtiff library:
<A HREF="http://www.awaresystems.be/imaging/tiff/faq.html">
http://www.awaresystems.be/imaging/tiff/faq.html</A>

<P>
There is a preliminary <a href="bigtiffdesign.html">BigTIFF Design</a> for
a TIFF variation supporting files larger than 4GB.

<HR>

<ADDRESS>
 Last updated: $Date: 2016-09-25 20:05:44 $
</ADDRESS>

</BODY>
</HTML>
PK粐\�]��22html/images.htmlnu�[���<HTML>
<HEAD>
<TITLE>
TIFF Test Images
</TITLE>
</HEAD>
<BODY BGCOLOR=white> 
<FONT FACE="Arial, Helvetica, Sans">
<H1>
<IMG SRC=images/bali.jpg WIDTH=158 HEIGHT=107 ALIGN=left BORDER=1 HSPACE=6>
TIFF Test Images
</H1>

<P>
Test images are available for most formats supported by the library.
Most of the images included in the test kit are also part of this
documentation (albeit in TIFF rather than GIF or JFIF).
The images are kept in a separate archive that should be located in
the same directory as this software.

<BR CLEAR=left>

<P>
The latest archive of test images is located at
<A HREF="ftp://download.osgeo.org/libtiff/pics-3.8.0.tar.gz">
ftp://download.osgeo.org/libtiff/pics-3.8.0.tar.gz</A>

<P>
There are two other good sources for TIFF test images:
the contributed software <B>contrib/dbs</B> includes several
programs that generate test images suitable for debugging, and
the <TT>tiffcp</TT> program can be used to generate a variety
of images with different storage characteristics.

<P>
<HR>

Last updated: $Date: 2016-09-25 20:05:44 $

</BODY>
</HTML>
PK粐\�Y,��html/index.htmlnu�[���<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
  <title>LibTIFF - TIFF Library and Utilities</title>
  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  <meta http-equiv="content-language" content="en">
  <style type="text/css">
  <!--
    th {text-align: left; vertical-align: top; padding-right: 1em; white-space: nowrap}
  -->
  </style>
</head>
<body lang="en" text="#000000" bgcolor="#ffffff" link="#0000ff" alink="#0000ff" vlink="#0000ff">
  <h1>LibTIFF - TIFF Library and Utilities</h1>
  <hr>
  <table cellspacing="0" cellpadding="0" border="0">
    <tr>
      <th>Home Page #1</th>
      <td><a href="http://www.simplesystems.org/libtiff/" title="Home of the LibTIFF software">http://www.simplesystems.org/libtiff/</a></td>
    </tr>
    <tr>
      <th>Home Page #2</th>
      <td><a href="http://libtiff.maptools.org/" title="Mirror of the LibTIFF software">http://libtiff.maptools.org/</a></td>
    </tr>
    <tr>
      <th>Latest Stable Release</th>
      <td><a href="v4.0.9.html">v4.0.9</a></td>
    </tr>
    <tr>
      <th>Master Download Site</th>
      <td><a href="ftp://download.osgeo.org/libtiff">download.osgeo.org</a>, directory libtiff</td>
    </tr>
    <tr>
      <th>Mailing List</th>
      <td><a href="mailto:tiff@lists.maptools.org">tiff@lists.maptools.org</a>,
        <a href="http://lists.maptools.org/mailman/listinfo/tiff/">Subscription</a>,
        <a href="http://www.awaresystems.be/imaging/tiff/tml.html">Archive</a>.
        Please, read the <a href="http://www.awaresystems.be/imaging/tiff/faq.html">TIFF FAQ</a>
        before asking questions.</td>
    </tr>
    <tr>
      <th>Anonymous CVS</th>
      <td><tt>export CVSROOT=:pserver:cvsanon@cvs.maptools.org:/cvs/maptools/cvsroot<br>
	cvs login</tt><br>
	(use empty password)<br>
	<tt>cvs checkout libtiff<br></tt>
	to get the stable libtiff code or<br>
	<tt>cvs checkout -r branch-3-9 libtiff</tt><br>
	to get the previous stable branch supporting the 3.9.X release series.</td>
    </tr>
  </table>
  <hr>
  <p>
    This software provides support for the <i>Tag Image File Format</i> (TIFF),
    a widely used format for storing image data.  The latest version of
    the TIFF specification is <a href="document.html">available on-line</a>
    in several different formats.
  </p>
  <p>
    Included in this software distribution is a library, libtiff, for
    reading and writing TIFF, a small collection of tools for doing
    simple manipulations of TIFF images, and documentation on the
    library and tools.  Libtiff is a portable software, it was built
    and tested on various systems: UNIX flavors (Linux, BSD, Solaris,
    MacOS X), Windows, and OpenVMS.  It should be possible to port
    libtiff and additional tools on other OSes.
  </p>
  <p>
    The library, along with associated tool programs, should handle most of
    your needs for reading and writing TIFF images on 32- and 64-bit
    machines.
  </p>
  <p>
    The software was originally authored and maintained by Sam Leffler
    but has been maintained by a cast of others since 1999.
  </p>
  <p>
    Questions should be sent to the TIFF mailing list:
    <a href="mailto:tiff@lists.maptools.org">tiff@lists.maptools.org</a>, with
    a subscription interface at
    <a href="http://lists.maptools.org/mailman/listinfo/tiff">http://lists.maptools.org/mailman/listinfo/tiff</a>.
  </p>
  <p>
    The persons currently actively maintaining and releasing libtiff
    are <a href="mailto:even.rouault@spatialys.com">Even Rouault</a>
    and <a href="mailto:bfriesen@GraphicsMagick.org">Bob Friesenhahn</a>.
  </p>
  <p>Significant maintainers in the past (since the 3.5.1 release) are
    <a href="http://pobox.com/~warmerdam">Frank Warmerdam</a>,
    <a href="mailto:dron@ak4719.spb.edu">Andrey Kiselev</a>,
    Joris Van Damme, and Lee Howard.
  </p>
  <p>
    The following sections are included in this documentation:
  </p>
  <ul>
    <li><a href="support.html">TIFF 6.0 specification coverage</a></li>
    <li><a href="libtiff.html">Using the TIFF Library</a></li>
    <li><a href="internals.html">Modifying the TIFF Library</a>
      and <a href="addingtags.html">Adding New Tags</a></li>
    <li><a href="tools.html">TIFF tools overview</a></li>
    <li><a href="contrib.html">Contributed software</a></li>
    <li><a href="document.html">TIFF documentation</a></li>
    <li><a href="build.html">Building the software distribution</a></li>
    <li><a href="bugs.html">Bugs, Bugzilla, and the TIFF mailing list</a></li>
    <li><a href="images.html">Test images</a></li>
    <li><a href="misc.html">Acknowledgements and copyright issues</a></li>
    <li><a href="man/index.html">Man Pages</a></li>
  </ul>
  <p>
    <b>BigTIFF News</b>
  </p>
  <ul>
    <li><a href="BigTIFFProposal.html">BigTIFF project proposal</a> (work is completed!)</li>
    <li><a href="bigtiffpr.html">Press release: Currently extending LibTiff</a> (work is completed!)</li>
  </ul>
  <hr>
  <p>
    Last updated  $Date: 2017-11-07 02:00:06 $.
  </p>
</body>
</html>
PK粐\9�>$K$Khtml/internals.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Modifying The TIFF Library
</TITLE>
</HEAD>
<BODY BGCOLOR=white> 
<FONT FACE="Arial, Helvetica, Sans">
<H1>
<IMG SRC=images/dave.gif WIDTH=107 HEIGHT=148 BORDER=2 ALIGN=left HSPACE=6>
Modifying The TIFF Library
</H1>


<P>
This chapter provides information about the internal structure of
the library, how to control the configuration when building it, and
how to add new support to the library.
The following sections are found in this chapter:

<UL>
<LI><A HREF=#Config>Library Configuration</A>
<LI><A HREF=#Portability>General Portability Comments</A>
<LI><A HREF="#Types">Types and Portability</A>
<LI><A HREF="addingtags.html">Adding New Tags</A>
<LI><A HREF=#AddingCODECS>Adding New Builtin Codecs</A>
<LI><A HREF="addingtags.html#AddingCODECTags">Adding New Codec-private Tags</A>
<LI><A HREF=#Other>Other Comments</A>
</UL>


<A NAME="Config"><P><HR WIDTH=65% ALIGN=right><H3>Library Configuration</H3></A>

Information on compiling the library is given
<A HREF=build.html>elsewhere in this documentation</A>.
This section describes the low-level mechanisms used to control
the optional parts of the library that are configured at build
time.   Control is based on
a collection of C defines that are specified either on the compiler
command line or in a configuration file such as <TT>port.h</TT>
(as generated by the <TT>configure</TT> script for UNIX systems)
or <B>tiffconf.h</B>.

<P>
Configuration defines are split into three areas:
<UL>
<LI>those that control which compression schemes are
    configured as part of the builtin codecs,
<LI>those that control support for groups of tags that
    are considered optional, and
<LI>those that control operating system or machine-specific support.
</UL>

<P>
If the define <TT>COMPRESSION_SUPPORT</TT> is <STRONG>not defined</STRONG>
then a default set of compression schemes is automatically
configured:
<UL>
<LI>CCITT Group 3 and 4 algorithms (compression codes 2, 3, 4, and 32771),
<LI>the Macintosh PackBits algorithm (compression 32773),
<LI>a 4-bit run-length encoding scheme from ThunderScan (compression 32809),
<LI>a 2-bit encoding scheme used by NeXT (compression 32766), and
<LI>two experimental schemes intended for images with high dynamic range
(compression 34676 and 34677).
</UL>

<P>

To override the default compression behaviour define
<TT>COMPRESSION_SUPPORT</TT> and then one or more additional defines
to enable configuration of the appropriate codecs (see the table
below); e.g.

<UL><PRE>
#define	COMPRESSION_SUPPORT
#define	CCITT_SUPPORT
#define	PACKBITS_SUPPORT
</PRE></UL>

Several other compression schemes are configured separately from
the default set because they depend on ancillary software
packages that are not distributed with <TT>libtiff</TT>.

<P>
Support for JPEG compression is controlled by <TT>JPEG_SUPPORT</TT>.
The JPEG codec that comes with <TT>libtiff</TT> is designed for
use with release 5 or later of the Independent JPEG Group's freely
available software distribution.
This software can be retrieved from the directory
<A HREF=ftp://ftp.uu.net/graphics/jpeg>ftp.uu.net:/graphics/jpeg/</A>.


<P>
<IMG SRC="images/info.gif" ALT="NOTE: " ALIGN=left HSPACE=8>
<EM>Enabling JPEG support automatically enables support for
the TIFF 6.0 colorimetry and YCbCr-related tags.</EM>

<P>
Experimental support for the deflate algorithm is controlled by
<TT>DEFLATE_SUPPORT</TT>.
The deflate codec that comes with <TT>libtiff</TT> is designed
for use with version 0.99 or later of the freely available
<TT>libz</TT> library written by Jean-loup Gailly and Mark Adler.
The data format used by this library is described
in the files
<A HREF=ftp://ftp.uu.net/pub/archiving/zip/doc/zlib-3.1.doc>zlib-3.1.doc</A>,
and
<A HREF=ftp://ftp.uu.net/pub/archiving/zip/doc/deflate-1.1.doc>deflate-1.1.doc</A>,
available in the directory
<A HREF=ftp://ftp.uu.net/pub/archiving/zip/doc>ftp.uu.net:/pub/archiving/zip/doc</A>.</EM>
The library can be retried from the directory
<A HREF=ftp://ftp.uu.net/pub/archiving/zip/zlib/>ftp.uu.net:/pub/archiving/zip/zlib/</A>
(or try <A HREF=ftp://quest.jpl.nasa.gov/beta/zlib/>quest.jpl.nasa.gov:/beta/zlib/</A>).

<P>
<IMG SRC="images/warning.gif" ALT="NOTE: " ALIGN=left HSPACE=8 VSPACE=6>
<EM>The deflate algorithm is experimental.  Do not expect
to exchange files using this compression scheme;
it is included only because the similar, and more common,
LZW algorithm is claimed to be governed by licensing restrictions.</EM>


<P>
By default <B>tiffconf.h</B> defines
<TT>COLORIMETRY_SUPPORT</TT>, 
<TT>YCBCR_SUPPORT</TT>,
and 
<TT>CMYK_SUPPORT</TT>.

<P>
<TABLE BORDER CELLPADDING=3>

<TR><TH ALIGN=left>Define</TH><TH ALIGN=left>Description</TH></TR>

<TR>
<TD VALIGN=top><TT>CCITT_SUPPORT</TT></TD>
<TD>CCITT Group 3 and 4 algorithms (compression codes 2, 3, 4,
    and 32771)</TD>
</TR>

<TR>
<TD VALIGN=top><TT>PACKBITS_SUPPORT</TT></TD>
<TD>Macintosh PackBits algorithm (compression 32773)</TD>
</TR>

<TR>
<TD VALIGN=top><TT>LZW_SUPPORT</TT></TD>
<TD>Lempel-Ziv & Welch (LZW) algorithm (compression 5)</TD>
</TR>

<TR>
<TD VALIGN=top><TT>THUNDER_SUPPORT</TT></TD>
<TD>4-bit
run-length encoding scheme from ThunderScan (compression 32809)</TD>
</TR>

<TR>
<TD VALIGN=top><TT>NEXT_SUPPORT</TT></TD>
<TD>2-bit encoding scheme used by NeXT (compression 32766)</TD>
</TR>

<TR>
<TD VALIGN=top><TT>OJPEG_SUPPORT</TT></TD>
<TD>obsolete JPEG scheme defined in the 6.0 spec (compression 6)</TD>
</TR>

<TR>
<TD VALIGN=top><TT>JPEG_SUPPORT</TT></TD>
<TD>current JPEG scheme defined in TTN2 (compression 7)</TD>
</TR>

<TR>
<TD VALIGN=top><TT>ZIP_SUPPORT</TT></TD>
<TD>experimental Deflate scheme (compression 32946)</TD>
</TR>

<TR>
<TD VALIGN=top><TT>PIXARLOG_SUPPORT</TT></TD>
<TD>Pixar's compression scheme for high-resolution color images (compression 32909)</TD>
</TR>

<TR>
<TD VALIGN=top><TT>SGILOG_SUPPORT</TT></TD>
<TD>SGI's compression scheme for high-resolution color images (compression 34676 and 34677)</TD>
</TR>

<TR>
<TD VALIGN=top><TT>COLORIMETRY_SUPPORT</TT></TD>
<TD>support for the TIFF 6.0 colorimetry tags</TD>
</TR>

<TR>
<TD VALIGN=top><TT>YCBCR_SUPPORT</TT></TD>
<TD>support for the TIFF 6.0 YCbCr-related tags</TD>
</TR>

<TR>
<TD VALIGN=top><TT>CMYK_SUPPORT</TT></TD>
<TD>support for the TIFF 6.0 CMYK-related tags</TD>
</TR>

<TR>
<TD VALIGN=top><TT>ICC_SUPPORT</TT></TD>
<TD>support for the ICC Profile tag; see
<I>The ICC Profile Format Specification</I>,
Annex B.3 "Embedding ICC Profiles in TIFF Files";
available at
<A HREF=http://www.color.org>http://www.color.org</A>
</TD>
</TR>

</TABLE>


<A NAME="Portability"><P><HR WIDTH=65% ALIGN=right><H3>General Portability Comments</H3></A>

This software is developed on Silicon Graphics UNIX
systems (big-endian, MIPS CPU, 32-bit ints,
IEEE floating point). 
The <TT>configure</TT> shell script generates the appropriate
include files and make files for UNIX systems.
Makefiles exist for non-UNIX platforms that the
code runs on -- this work has mostly been done by other people.

<P>
In general, the code is guaranteed to work only on SGI machines.
In practice it is highly portable to any 32-bit or 64-bit system and much
work has been done to insure portability to 16-bit systems.
If you encounter portability problems please return fixes so
that future distributions can be improved.

<P>
The software is written to assume an ANSI C compilation environment.
If your compiler does not support ANSI function prototypes, <TT>const</TT>,
and <TT>&lt;stdarg.h&gt;</TT> then you will have to make modifications to the
software.  In the past I have tried to support compilers without <TT>const</TT>
and systems without <TT>&lt;stdarg.h&gt;</TT>, but I am
<EM>no longer interested in these
antiquated environments</EM>.  With the general availability of
the freely available GCC compiler, I
see no reason to incorporate modifications to the software for these
purposes.

<P>
An effort has been made to isolate as many of the
operating system-dependencies
as possible in two files: <B>tiffcomp.h</B> and
<B>libtiff/tif_&lt;os&gt;.c</B>.  The latter file contains
operating system-specific routines to do I/O and I/O-related operations.
The UNIX (<B>tif_unix.c</B>),
Macintosh (<B>tif_apple.c</B>),
and VMS (<B>tif_vms.c</B>)
code has had the most use;
the MS/DOS support (<B>tif_msdos.c</B>) assumes
some level of UNIX system call emulation (i.e.
<TT>open</TT>,
<TT>read</TT>,
<TT>write</TT>,
<TT>fstat</TT>,
<TT>malloc</TT>,
<TT>free</TT>).

<P>
Native CPU byte order is determined on the fly by
the library and does not need to be specified.
The <TT>HOST_FILLORDER</TT> and <TT>HOST_BIGENDIAN</TT>
definitions are not currently used, but may be employed by
codecs for optimization purposes.

<P>
The following defines control general portability:

<P>
<TABLE BORDER CELLPADDING=3 WIDTH=100%>

<TR>
<TD VALIGN=top><TT>BSDTYPES</TT></TD>
<TD>Define this if your system does NOT define the
		usual BSD typedefs: <TT>u_char</TT>,
		<TT>u_short</TT>, <TT>u_int</TT>, <TT>u_long</TT>.</TD>
</TR>

<TR>
<TD VALIGN=top><TT>HAVE_IEEEFP</TT></TD>
<TD>Define this as 0 or 1 according to the floating point
		format suported by the machine.  If your machine does
		not support IEEE floating point then you will need to
		add support to tif_machdep.c to convert between the
		native format and IEEE format.</TD>
</TR>

<TR>
<TD VALIGN=top><TT>HAVE_MMAP</TT></TD>
<TD>Define this if there is <I>mmap-style</I> support for
mapping files into memory (used only to read data).</TD>
</TR>

<TR>
<TD VALIGN=top><TT>HOST_FILLORDER</TT></TD>
<TD>Define the native CPU bit order: one of <TT>FILLORDER_MSB2LSB</TT>
 or <TT>FILLORDER_LSB2MSB</TT></TD>
</TR>

<TR>
<TD VALIGN=top><TT>HOST_BIGENDIAN</TT></TD>
<TD>Define the native CPU byte order: 1 if big-endian (Motorola)
 or 0 if little-endian (Intel); this may be used
 in codecs to optimize code</TD>
</TR>
</TABLE>

<P>
On UNIX systems <TT>HAVE_MMAP</TT> is defined through the running of
the <TT>configure</TT> script; otherwise support for memory-mapped
files is disabled.
Note that <B>tiffcomp.h</B> defines <TT>HAVE_IEEEFP</TT> to be
1 (<TT>BSDTYPES</TT> is not defined).


<A NAME="Types"><P><HR WIDTH=65% ALIGN=right><H3>Types and Portability</H3></A>

The software makes extensive use of C typedefs to promote portability.
Two sets of typedefs are used, one for communication with clients
of the library and one for internal data structures and parsing of the
TIFF format.  There are interactions between these two to be careful
of, but for the most part you should be able to deal with portability
purely by fiddling with the following machine-dependent typedefs:


<P>
<TABLE BORDER CELLPADDING=3 WIDTH=100%>

<TR>
<TD>uint8</TD>
<TD>8-bit unsigned integer</TD>
<TD>tiff.h</TD>
</TR>

<TR>
<TD>int8</TD>
<TD>8-bit signed integer</TD>
<TD>tiff.h</TD>
</TR>

<TR>
<TD>uint16</TD>
<TD>16-bit unsigned integer</TD>
<TD>tiff.h</TD>
</TR>

<TR>
<TD>int16</TD>
<TD>16-bit signed integer</TD>
<TD>tiff.h</TD>
</TR>

<TR>
<TD>uint32</TD>
<TD>32-bit unsigned integer</TD>
<TD>tiff.h</TD>
</TR>

<TR>
<TD>int32</TD>
<TD>32-bit signed integer</TD>
<TD>tiff.h</TD>
</TR>

<TR>
<TD>dblparam_t</TD>
<TD>promoted type for floats</TD>
<TD>tiffcomp.h</TD>
</TR>

</TABLE>

<P>
(to clarify <TT>dblparam_t</TT>, it is the type that float parameters are
promoted to when passed by value in a function call.)

<P>
The following typedefs are used throughout the library and interfaces
to refer to certain objects whose size is dependent on the TIFF image
structure:


<P>
<TABLE BORDER CELLPADDING=3 WIDTH=100%>

<TR>
<TD WIDTH=25%>typedef unsigned int ttag_t;</TD>	<TD>directory tag</TD>
</TR>

<TR>
<TD>typedef uint16 tdir_t;</TD>		<TD>directory index</TD>
</TR>

<TR>
<TD>typedef uint16 tsample_t;</TD>	<TD>sample number</TD>
</TR>

<TR>
<TD>typedef uint32 tstrip_t;</TD>	<TD>strip number</TD>
</TR>

<TR>
<TD>typedef uint32 ttile_t;</TD>		<TD>tile number</TD>
</TR>

<TR>
<TD>typedef int32 tsize_t;</TD>		<TD>i/o size in bytes</TD>
</TR>

<TR>
<TD>typedef void* tdata_t;</TD>		<TD>image data ref</TD>
</TR>

<TR>
<TD>typedef void* thandle_t;</TD>	<TD>client data handle</TD>
</TR>

<TR>
<TD>typedef int32 toff_t;</TD>		<TD>file offset (should be off_t)</TD>
</TR>

<TR>
<TD>typedef unsigned char* tidata_t;</TD> <TD>internal image data</TD>
</TR>

</TABLE>

<P>
Note that <TT>tstrip_t</TT>, <TT>ttile_t</TT>, and <TT>tsize_t</TT>
are constrained to be
no more than 32-bit quantities by 32-bit fields they are stored
in in the TIFF image.  Likewise <TT>tsample_t</TT> is limited by the 16-bit
field used to store the <TT>SamplesPerPixel</TT> tag.  <TT>tdir_t</TT>
constrains
the maximum number of IFDs that may appear in an image and may
be an arbitrary size (without penalty).  <TT>ttag_t</TT> must be either
<TT>int</TT>, <TT>unsigned int</TT>, pointer, or <TT>double</TT>
because the library uses a varargs
interface and ANSI C restricts the type of the parameter before an
ellipsis to be a promoted type.  <TT>toff_t</TT> is defined as
<TT>int32</TT> because
TIFF file offsets are (unsigned) 32-bit quantities.  A signed
value is used because some interfaces return -1 on error (sigh).
Finally, note that <TT>tidata_t</TT> is used internally to the library to
manipulate internal data.  User-specified data references are
passed as opaque handles and only cast at the lowest layers where
their type is presumed.


<P><HR WIDTH=65% ALIGN=right><H3>General Comments</H3></A>

The library is designed to hide as much of the details of TIFF from
applications as
possible.  In particular, TIFF directories are read in their entirety
into an internal format.  Only the tags known by the library are
available to a user and certain tag data may be maintained that a user
does not care about (e.g. transfer function tables).

<A NAME=AddingCODECS><P><HR WIDTH=65% ALIGN=right><H3>Adding New Builtin Codecs</H3></A>

To add builtin support for a new compression algorithm, you can either
use the "tag-extension" trick to override the handling of the
TIFF Compression tag (see <A HREF=addingtags.html>Adding New Tags</A>), 
or do the following to add support directly to the core library:

<OL>
<LI>Define the tag value in <B>tiff.h</B>.
<LI>Edit the file <B>tif_codec.c</B> to add an entry to the
   _TIFFBuiltinCODECS array (see how other algorithms are handled).
<LI>Add the appropriate function prototype declaration to
   <B>tiffiop.h</B> (close to the bottom).
<LI>Create a file with the compression scheme code, by convention files
   are named <B>tif_*.c</B> (except perhaps on some systems where the
   tif_ prefix pushes some filenames over 14 chars.
<LI>Edit <B>Makefile.in</B> (and any other Makefiles)
   to include the new source file.
</OL>

<P>
A codec, say <TT>foo</TT>, can have many different entry points:

<PRE>
TIFFInitfoo(tif, scheme)/* initialize scheme and setup entry points in tif */
fooSetupDecode(tif)	/* called once per IFD after tags has been frozen */
fooPreDecode(tif, sample)/* called once per strip/tile, after data is read,
			    but before the first row is decoded */
fooDecode*(tif, bp, cc, sample)/* decode cc bytes of data into the buffer */
    fooDecodeRow(...)	/* called to decode a single scanline */
    fooDecodeStrip(...)	/* called to decode an entire strip */
    fooDecodeTile(...)	/* called to decode an entire tile */
fooSetupEncode(tif)	/* called once per IFD after tags has been frozen */
fooPreEncode(tif, sample)/* called once per strip/tile, before the first row in
			    a strip/tile is encoded */
fooEncode*(tif, bp, cc, sample)/* encode cc bytes of user data (bp) */
    fooEncodeRow(...)	/* called to decode a single scanline */
    fooEncodeStrip(...)	/* called to decode an entire strip */
    fooEncodeTile(...)	/* called to decode an entire tile */
fooPostEncode(tif)	/* called once per strip/tile, just before data is written */
fooSeek(tif, row)	/* seek forwards row scanlines from the beginning
			   of a strip (row will always be &gt;0 and &lt;rows/strip */
fooCleanup(tif)		/* called when compression scheme is replaced by user */
</PRE>

<P>
Note that the encoding and decoding variants are only needed when
a compression algorithm is dependent on the structure of the data.
For example, Group 3 2D encoding and decoding maintains a reference
scanline.  The sample parameter identifies which sample is to be
encoded or decoded if the image is organized with <TT>PlanarConfig</TT>=2
(separate planes).  This is important for algorithms such as JPEG.
If <TT>PlanarConfig</TT>=1 (interleaved), then sample will always be 0.

<A NAME=Other><P><HR WIDTH=65% ALIGN=right><H3>Other Comments</H3></A>

The library handles most I/O buffering.  There are two data buffers
when decoding data: a raw data buffer that holds all the data in a
strip, and a user-supplied scanline buffer that compression schemes
place decoded data into.  When encoding data the data in the
user-supplied scanline buffer is encoded into the raw data buffer (from
where it is written).  Decoding routines should never have to explicitly
read data -- a full strip/tile's worth of raw data is read and scanlines
never cross strip boundaries.  Encoding routines must be cognizant of
the raw data buffer size and call <TT>TIFFFlushData1()</TT> when necessary.
Note that any pending data is automatically flushed when a new strip/tile is
started, so there's no need do that in the tif_postencode routine (if
one exists).  Bit order is automatically handled by the library when
a raw strip or tile is filled.  If the decoded samples are interpreted
by the decoding routine before they are passed back to the user, then
the decoding logic must handle byte-swapping by overriding the
<TT>tif_postdecode</TT>
routine (set it to <TT>TIFFNoPostDecode</TT>) and doing the required work
internally.  For an example of doing this look at the horizontal
differencing code in the routines in <B>tif_predict.c</B>.

<P>
The variables <TT>tif_rawcc</TT>, <TT>tif_rawdata</TT>, and
<TT>tif_rawcp</TT> in a <TT>TIFF</TT> structure
are associated with the raw data buffer.  <TT>tif_rawcc</TT> must be non-zero
for the library to automatically flush data.  The variable
<TT>tif_scanlinesize</TT> is the size a user's scanline buffer should be.  The
variable <TT>tif_tilesize</TT> is the size of a tile for tiled images.  This
should not normally be used by compression routines, except where it
relates to the compression algorithm.  That is, the <TT>cc</TT> parameter to the
<TT>tif_decode*</TT> and <TT>tif_encode*</TT>
routines should be used in terminating
decompression/compression.  This ensures these routines can be used,
for example, to decode/encode entire strips of data.

<P>
In general, if you have a new compression algorithm to add, work from
the code for an existing routine.  In particular,
<B>tif_dumpmode.c</B>
has the trivial code for the "nil" compression scheme,
<B>tif_packbits.c</B> is a
simple byte-oriented scheme that has to watch out for buffer
boundaries, and <B>tif_lzw.c</B> has the LZW scheme that has the most
complexity -- it tracks the buffer boundary at a bit level.
Of course, using a private compression scheme (or private tags) limits
the portability of your TIFF files.

<P>
<HR>

Last updated: $Date: 2016-09-25 20:05:44 $

</BODY>

</HTML>
PK粐\szRBZ	Z	html/intro.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Introduction to the TIFF Documentation
</TITLE>
</HEAD>
<BODY BGCOLOR=white> 
<FONT FACE="Arial, Helvetica, Sans">
<H1>
<IMG SRC=images/strike.gif WIDTH=128 HEIGHT=100 ALIGN=left HSPACE=6>
Introduction to the TIFF Documentation
</H1>


<P>
The following definitions are used throughout this documentation.
They are consistent with the terminology used in the TIFF 6.0 specification.

<DL>
<DT><I>Sample</I>
<DD>The unit of information stored in an image; often called a
  channel elsewhere.  Sample values are numbers, usually unsigned
  integers, but possibly in some other format if the SampleFormat
  tag is specified in a TIFF
<DT><I>Pixel</I>
<DD>A collection of one or more samples that go together.
<DT><I>Row</I>
<DD>An Nx1 rectangular collection of pixels.
<DT><I>Tile</I>
<DD>An NxM rectangular organization of data (or pixels).
<DT><I>Strip</I>
<DD>A tile whose width is the full image width.
<DT><I>Compression</I>
<DD>A scheme by which pixel or sample data are stored in
  an encoded form, specifically with the intent of reducing the
  storage cost.
<DT><I>Codec</I>
<DD>Software that implements the decoding and encoding algorithms
  of a compression scheme.
</UL>

<P>
In order to better understand how TIFF works (and consequently this
software) it is important to recognize the distinction between the
physical organization of image data as it is stored in a TIFF and how
the data is interpreted and manipulated as pixels in an image.  TIFF
supports a wide variety of storage and data compression schemes that
can be used to optimize retrieval time and/or minimize storage space.
These on-disk formats are independent of the image characteristics; it
is the responsibility of the TIFF reader to process the on-disk storage
into an in-memory format suitable for an application.  Furthermore, it
is the responsibility of the application to properly interpret the
visual characteristics of the image data.  TIFF defines a framework for
specifying the on-disk storage format and image characteristics with
few restrictions.  This permits significant complexity that can be
daunting.  Good applications that handle TIFF work by handling as wide
a range of storage formats as possible, while constraining the
acceptable image characteristics to those that make sense for the
application.


<P>
<HR>

Last updated: $Date: 2016-09-25 20:05:44 $

</BODY>
</HTML>
PK粐\u���9�9�html/libtiff.htmlnu�[���<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
  <title>Using The TIFF Library</title>
  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  <meta http-equiv="content-language" content="en">
  <style type="text/css">
  <!--
    th {text-align: left; vertical-align: top; font-style: italic; font-weight: normal}
  -->
  </style>
</head>
<body lang="en" text="#000000" bgcolor="#ffffff" link="#0000ff" alink="#0000ff" vlink="#0000ff">
  <table border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td style="padding-left: 1em; padding-right: 1em"><img src="images/cat.gif" width="113" height="146" alt=""></td>
      <td>
        <h1>Using The TIFF Library</h1>
        <p>
          <tt>libtiff</tt> is a set of C functions (a library) that support
          the manipulation of TIFF image files.
          The library requires an ANSI C compilation environment for building
          and presumes an ANSI C environment for use.
        </p>
      </td>
    </tr>
  </table>
  <br>
  <p>
    <tt>libtiff</tt>
    provides interfaces to image data at several layers of abstraction (and cost).
    At the highest level image data can be read into an 8-bit/sample,
    ABGR pixel raster format without regard for the underlying data organization,
    colorspace, or compression scheme.  Below this high-level interface
    the library provides scanline-, strip-, and tile-oriented interfaces that
    return data decompressed but otherwise untransformed.  These interfaces
    require that the application first identify the organization of stored
    data and select either a strip-based or tile-based API for manipulating
    data.  At the lowest level the library
    provides access to the raw uncompressed strips or tiles,
    returning the data exactly as it appears in the file.
  </p>
  <p>
    The material presented in this chapter is a basic introduction
    to the capabilities of the library; it is not an attempt to describe
    everything a developer needs to know about the library or about TIFF.
    Detailed information on the interfaces to the library are given in
    the <a href="http://www.simplesystems.org/libtiff/man/index.html">UNIX 
    manual pages</a> that accompany this software.
  </p>
  <p>
    Michael Still has also written a useful introduction to libtiff for the
    IBM DeveloperWorks site available at
    <a href="http://www.ibm.com/developerworks/linux/library/l-libtiff">http://www.ibm.com/developerworks/linux/library/l-libtiff</a>.
  </p>
  <p>
    The following sections are found in this chapter:
  </p>
  <ul>
    <li><a href="#version">How to tell which version you have</a></li>
    <li><a href="#typedefs">Library Datatypes</a></li>
    <li><a href="#mman">Memory Management</a></li>
    <li><a href="#errors">Error Handling</a></li>
    <li><a href="#fio">Basic File Handling</a></li>
    <li><a href="#dirs">TIFF Directories</a></li>
    <li><a href="#tags">TIFF Tags</a></li>
    <li><a href="#compression">TIFF Compression Schemes</a></li>
    <li><a href="#byteorder">Byte Order</a></li>
    <li><a href="#dataplacement">Data Placement</a></li>
    <li><a href="#tiffrgbaimage">TIFFRGBAImage Support</a></li>
    <li><a href="#scanlines">Scanline-based Image I/O</a></li>
    <li><a href="#strips">Strip-oriented Image I/O</a></li>
    <li><a href="#tiles">Tile-oriented Image I/O</a></li>
    <li><a href="#other">Other Stuff</a></li>
  </ul>
  <hr>
  <h2 id="version">How to tell which version you have</h2>
  <p>
    The software version can be found by looking at the file named
    <tt>VERSION</tt>
    that is located at the top of the source tree; the precise alpha number
    is given in the file <tt>dist/tiff.alpha</tt>.
    If you have need to refer to this
    specific software, you should identify it as:
  </p>
  <p style="margin-left: 40px">
    <tt>TIFF &lt;<i>version</i>&gt; &lt;<i>alpha</i>&gt;</tt>
  </p>
  <p>
    where <tt>&lt;<i>version</i>&gt;</tt> is whatever you get from
    <tt>"cat VERSION"</tt> and <tt>&lt;<i>alpha</i>&gt;</tt> is
    what you get from <tt>"cat dist/tiff.alpha"</tt>.
  </p>
  <p>
    Within an application that uses <tt>libtiff</tt> the <tt>TIFFGetVersion</tt>
    routine will return a pointer to a string that contains software version
    information.
    The library include file <tt>&lt;tiffio.h&gt;</tt> contains a C pre-processor
    define <tt>TIFFLIB_VERSION</tt> that can be used to check library
    version compatiblity at compile time.
  </p>
  <hr>
  <h2 id="typedefs">Library Datatypes</h2>
  <p>
    <tt>libtiff</tt> defines a portable programming interface through the
    use of a set of C type definitions.
    These definitions, defined in in the files <b>tiff.h</b> and
    <b>tiffio.h</b>,
    isolate the <tt>libtiff</tt> API from the characteristics
    of the underlying machine.
    To insure portable code and correct operation, applications that use
    <tt>libtiff</tt> should use the typedefs and follow the function
    prototypes for the library API.
  </p>
  <hr>
  <h2 id="mman">Memory Management</h2>
  <p>
    <tt>libtiff</tt> uses a machine-specific set of routines for managing
    dynamically allocated memory.
    <tt>_TIFFmalloc</tt>, <tt>_TIFFrealloc</tt>, and <tt>_TIFFfree</tt>
    mimic the normal ANSI C routines.
    Any dynamically allocated memory that is to be passed into the library
    should be allocated using these interfaces in order to insure pointer
    compatibility on machines with a segmented architecture.
    (On 32-bit UNIX systems these routines just call the normal <tt>malloc</tt>,
    <tt>realloc</tt>, and <tt>free</tt> routines in the C library.)
  </p>
  <p>
    To deal with segmented pointer issues <tt>libtiff</tt> also provides
    <tt>_TIFFmemcpy</tt>, <tt>_TIFFmemset</tt>, and <tt>_TIFFmemmove</tt>
    routines that mimic the equivalent ANSI C routines, but that are
    intended for use with memory allocated through <tt>_TIFFmalloc</tt>
    and <tt>_TIFFrealloc</tt>.
  </p>
  <hr>
  <h2 id="errors">Error Handling</h2>
  <p>
    <tt>libtiff</tt> handles most errors by returning an invalid/erroneous
    value when returning from a function call.
    Various diagnostic messages may also be generated by the library.
    All error messages are directed to a single global error handler
    routine that can be specified with a call to <tt>TIFFSetErrorHandler</tt>.
    Likewise warning messages are directed to a single handler routine
    that can be specified with a call to <tt>TIFFSetWarningHandler</tt>
  </p>
  <hr>
  <h2 id="fio">Basic File Handling</h2>
  <p>
    The library is modeled after the normal UNIX stdio library.
    For example, to read from an existing TIFF image the
    file must first be opened:
  </p>
  <p style="margin-left: 40px">
    <tt>#include "tiffio.h"<br>
    main()<br>
    {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;TIFF* tif = TIFFOpen("foo.tif", "r");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;... do stuff ...<br>
    &nbsp;&nbsp;&nbsp;&nbsp;TIFFClose(tif);<br>
    }</tt>
  </p>
  <p>
    The handle returned by <tt>TIFFOpen</tt> is <i>opaque</i>, that is
    the application is not permitted to know about its contents.
    All subsequent library calls for this file must pass the handle
    as an argument.
  </p>
  <p>
    To create or overwrite a TIFF image the file is also opened, but with
    a <tt>"w"</tt> argument:
  <p>
  <p style="margin-left: 40px">
    <tt>#include "tiffio.h"<br>
    main()<br>
    {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;TIFF* tif = TIFFOpen("foo.tif", "w");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;... do stuff ...<br>
    &nbsp;&nbsp;&nbsp;&nbsp;TIFFClose(tif);<br>
    }</tt>
  </p>
  <p>
    If the file already exists it is first truncated to zero length.
  </p>
  <table>
    <tr>
      <td valign=top><img src="images/warning.gif" width="40" height="40" alt=""></td>
      <td><i>Note that unlike the stdio library TIFF image files may not be
        opened for both reading and writing;
        there is no support for altering the contents of a TIFF file.</i></td>
    </tr>
  </table>
  <p>
    <tt>libtiff</tt> buffers much information associated with writing a
    valid TIFF image.  Consequently, when writing a TIFF image it is necessary
    to always call <tt>TIFFClose</tt> or <tt>TIFFFlush</tt> to flush any
    buffered information to a file.  Note that if you call <tt>TIFFClose</tt>
    you do not need to call <tt>TIFFFlush</tt>.
  </p>
  <hr>
  <h2 id="dirs">TIFF Directories</h2>
  <p>
    TIFF supports the storage of multiple images in a single file.
    Each image has an associated data structure termed a <i>directory</i>
    that houses all the information about the format and content of the
    image data.
    Images in a file are usually related but they do not need to be; it
    is perfectly alright to store a color image together with a black and
    white image.
    Note however that while images may be related their directories are
    not.
    That is, each directory stands on its own; their is no need to read
    an unrelated directory in order to properly interpret the contents
    of an image.
  </p>
  <p>
    <tt>libtiff</tt> provides several routines for reading and writing
    directories.  In normal use there is no need to explicitly
    read or write a directory: the library automatically reads the first
    directory in a file when opened for reading, and directory information
    to be written is automatically accumulated and written when writing
    (assuming <tt>TIFFClose</tt> or <tt>TIFFFlush</tt> are called).
  </p>
  <p>
    For a file open for reading the <tt>TIFFSetDirectory</tt> routine can
    be used to select an arbitrary directory; directories are referenced by
    number with the numbering starting at 0.  Otherwise the
    <tt>TIFFReadDirectory</tt> and <tt>TIFFWriteDirectory</tt> routines can
    be used for sequential access to directories.
    For example, to count the number of directories in a file the following
    code might be used:
  </p>
  <p style="margin-left: 40px">
    <tt>#include "tiffio.h"<br>
    main(int argc, char* argv[])<br>
    {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;TIFF* tif = TIFFOpen(argv[1], "r");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;if (tif) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int dircount = 0;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dircount++;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} while (TIFFReadDirectory(tif));<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d directories in %s\n", dircount, argv[1]);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFClose(tif);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;}<br>
    &nbsp;&nbsp;&nbsp;&nbsp;exit(0);<br>
    }</tt>
  </p>
  <p>
    Finally, note that there are several routines for querying the
    directory status of an open file:
    <tt>TIFFCurrentDirectory</tt> returns the index of the current
    directory and
    <tt>TIFFLastDirectory</tt> returns an indication of whether the
    current directory is the last directory in a file.
    There is also a routine, <tt>TIFFPrintDirectory</tt>, that can
    be called to print a formatted description of the contents of
    the current directory; consult the manual page for complete details.
  </p>
  <hr>
  <h2 id="tags">TIFF Tags</h2>
  <p>
    Image-related information such as the image width and height, number
    of samples, orientation, colorimetric information, etc.
    are stored in each image
    directory in <i>fields</i> or <i>tags</i>.
    Tags are identified by a number that is usually a value registered
    with the Aldus (now Adobe) Corporation.
    Beware however that some vendors write
    TIFF images with tags that are unregistered; in this case interpreting
    their contents is usually a waste of time.
  </p>
  <p>
    <tt>libtiff</tt> reads the contents of a directory all at once
    and converts the on-disk information to an appropriate in-memory
    form.  While the TIFF specification permits an arbitrary set of
    tags to be defined and used in a file, the library only understands
    a limited set of tags.
    Any unknown tags that are encountered in a file are ignored.
    There is a mechanism to extend the set of tags the library handles
    without modifying the library itself;
    this is described <a href="addingtags.html">elsewhere</a>.
  </p>
  <p>
    <tt>libtiff</tt> provides two interfaces for getting and setting tag
    values: <tt>TIFFGetField</tt> and <tt>TIFFSetField</tt>.
    These routines use a variable argument list-style interface to pass
    parameters of different type through a single function interface.
    The <i>get interface</i> takes one or more pointers to memory locations
    where the tag values are to be returned and also returns one or
    zero according to whether the requested tag is defined in the directory.
    The <i>set interface</i> takes the tag values either by-reference or
    by-value.
    The TIFF specification defines
    <i>default values</i> for some tags.
    To get the value of a tag, or its default value if it is undefined,
    the <tt>TIFFGetFieldDefaulted</tt> interface may be used.
  </p>
  <p>
    The manual pages for the tag get and set routines specifiy the exact data types
    and calling conventions required for each tag supported by the library.
  </p>
  <hr>
  <h2 id="compression">TIFF Compression Schemes</h2>
  <p>
    <tt>libtiff</tt> includes support for a wide variety of
    data compression schemes.
    In normal operation a compression scheme is automatically used when
    the TIFF <tt>Compression</tt> tag is set, either by opening a file
    for reading, or by setting the tag when writing.
  </p>
  <p>
    Compression schemes are implemented by software modules termed <i>codecs</i>
    that implement decoder and encoder routines that hook into the
    core library i/o support.
    Codecs other than those bundled with the library can be registered
    for use with the <tt>TIFFRegisterCODEC</tt> routine.
    This interface can also be used to override the core-library
    implementation for a compression scheme.
  </p>
  <hr>
  <h2 id="byteorder">Byte Order</h2>
  <p>
    The TIFF specification says, and has always said, that
    <em>a correct TIFF
    reader must handle images in big-endian and little-endian byte order</em>.
    <tt>libtiff</tt> conforms in this respect.
    Consequently there is no means to force a specific
    byte order for the data written to a TIFF image file (data is
    written in the native order of the host CPU unless appending to
    an existing file, in which case it is written in the byte order
    specified in the file).
  </p>
  <hr>
  <h2 id="dataplacement">Data Placement</h2>
  <p>
    The TIFF specification requires that all information except an
    8-byte header can be placed anywhere in a file.
    In particular, it is perfectly legitimate for directory information
    to be written after the image data itself.
    Consequently TIFF is inherently not suitable for passing through a
    stream-oriented mechanism such as UNIX pipes.
    Software that require that data be organized in a file in a particular
    order (e.g. directory information before image data) does not
    correctly support TIFF.
    <tt>libtiff</tt> provides no mechanism for controlling the placement
    of data in a file; image data is typically written before directory
    information.
  </p>
  <hr>
  <h2 id="tiffrgbaimage">TIFFRGBAImage Support</h2>
  <p>
    <tt>libtiff</tt> provides a high-level interface for reading image
    data from a TIFF file.  This interface handles the details of
    data organization and format for a wide variety of TIFF files;
    at least the large majority of those files that one would normally
    encounter.  Image data is, by default, returned as ABGR
    pixels packed into 32-bit words (8 bits per sample).  Rectangular
    rasters can be read or data can be intercepted at an intermediate
    level and packed into memory in a format more suitable to the
    application.
    The library handles all the details of the format of data stored on
    disk and, in most cases, if any colorspace conversions are required:
    bilevel to RGB, greyscale to RGB, CMYK to RGB, YCbCr to RGB, 16-bit
    samples to 8-bit samples, associated/unassociated alpha, etc.
  </p>
  <p>
    There are two ways to read image data using this interface.  If
    all the data is to be stored in memory and manipulated at once,
    then the routine <tt>TIFFReadRGBAImage</tt> can be used:
  </p>
  <p>
  <p style="margin-left: 40px">
    <tt>#include "tiffio.h"<br>
    main(int argc, char* argv[])<br>
    {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;TIFF* tif = TIFFOpen(argv[1], "r");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;if (tif) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 w, h;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size_t npixels;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32* raster;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &amp;w);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &amp;h);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;npixels = w * h;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raster = (uint32*) _TIFFmalloc(npixels * sizeof (uint32));<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (raster != NULL) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (TIFFReadRGBAImage(tif, w, h, raster, 0)) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...process raster data...<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_TIFFfree(raster);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFClose(tif);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;}<br>
    &nbsp;&nbsp;&nbsp;&nbsp;exit(0);<br>
    }</tt>
  </p>
  <p>
    Note above that <tt>_TIFFmalloc</tt> is used to allocate memory for
    the raster passed to <tt>TIFFReadRGBAImage</tt>; this is important
    to insure the ``appropriate type of memory'' is passed on machines
    with segmented architectures.
  </p>
  <p>
    Alternatively, <tt>TIFFReadRGBAImage</tt> can be replaced with a
    more low-level interface that permits an application to have more
    control over this reading procedure.  The equivalent to the above
    is:
  </p>
  <p style="margin-left: 40px">
    <tt>#include "tiffio.h"<br>
    main(int argc, char* argv[])<br>
    {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;TIFF* tif = TIFFOpen(argv[1], "r");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;if (tif) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFRGBAImage img;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char emsg[1024];<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (TIFFRGBAImageBegin(&amp;img, tif, 0, emsg)) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size_t npixels;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32* raster;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;npixels = img.width * img.height;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raster = (uint32*) _TIFFmalloc(npixels * sizeof (uint32));<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (raster != NULL) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (TIFFRGBAImageGet(&amp;img, raster, img.width, img.height)) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...process raster data...<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_TIFFfree(raster);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFRGBAImageEnd(&amp;img);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFError(argv[1], emsg);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFClose(tif);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;}<br>
    &nbsp;&nbsp;&nbsp;&nbsp;exit(0);<br>
    }</tt>
  </p>
  <p>
    However this usage does not take advantage of the more fine-grained
    control that's possible.  That is, by using this interface it is
    possible to:
  </p>
  <ul>
    <li>repeatedly fetch (and manipulate) an image without opening
      and closing the file</li>
    <li>interpose a method for packing raster pixel data according to
      application-specific needs (or write the data at all)</li>
    <li>interpose methods that handle TIFF formats that are not already
      handled by the core library</li>
  </ul>
  <p>
    The first item means that, for example, image viewers that want to
    handle multiple files can cache decoding information in order to
    speedup the work required to display a TIFF image.
  </p>
  <p>
    The second item is the main reason for this interface.  By interposing
    a "put method" (the routine that is called to pack pixel data in
    the raster) it is possible share the core logic that understands how
    to deal with TIFF while packing the resultant pixels in a format that
    is optimized for the application.  This alternate format might be very
    different than the 8-bit per sample ABGR format the library writes by
    default.  For example, if the application is going to display the image
    on an 8-bit colormap display the put routine might take the data and
    convert it on-the-fly to the best colormap indices for display.
  </p>
  <p>
    The last item permits an application to extend the library
    without modifying the core code.
    By overriding the code provided an application might add support
    for some esoteric flavor of TIFF that it needs, or it might
    substitute a packing routine that is able to do optimizations
    using application/environment-specific information.
  </p>
  <p>
    The TIFF image viewer found in <b>tools/sgigt.c</b> is an example
    of an application that makes use of the <tt>TIFFRGBAImage</tt>
    support.
  </p>
  <hr>
  <h2 id="scanlines">Scanline-based Image I/O</h2>
  <p>
    The simplest interface provided by <tt>libtiff</tt> is a
    scanline-oriented interface that can be used to read TIFF
    images that have their image data organized in strips
    (trying to use this interface to read data written in tiles
    will produce errors.)
    A scanline is a one pixel high row of image data whose width
    is the width of the image.
    Data is returned packed if the image data is stored with samples
    packed together, or as arrays of separate samples if the data
    is stored with samples separated.
    The major limitation of the scanline-oriented interface, other
    than the need to first identify an existing file as having a
    suitable organization, is that random access to individual
    scanlines can only be provided when data is not stored in a
    compressed format, or when the number of rows in a strip
    of image data is set to one (<tt>RowsPerStrip</tt> is one).
  </p>
  <p>
    Two routines are provided for scanline-based i/o:
    <tt>TIFFReadScanline</tt>
    and
    <tt>TIFFWriteScanline</tt>.
    For example, to read the contents of a file that
    is assumed to be organized in strips, the following might be used:
  </p>
  <p style="margin-left: 40px">
    <tt>#include "tiffio.h"<br>
    main()<br>
    {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;TIFF* tif = TIFFOpen("myfile.tif", "r");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;if (tif) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 imagelength;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tdata_t buf;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 row;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &amp;imagelength);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf = _TIFFmalloc(TIFFScanlineSize(tif));<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (row = 0; row &lt; imagelength; row++)<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tiffreadscanline(tif, buf, row);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_tifffree(buf);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tiffclose(tif);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;}<br>
    }</tt>
  </p>
  <p>
    <tt>TIFFScanlineSize</tt> returns the number of bytes in
    a decoded scanline, as returned by <tt>TIFFReadScanline</tt>.
    Note however that if the file had been create with samples
    written in separate planes, then the above code would only
    read data that contained the first sample of each pixel;
    to handle either case one might use the following instead:
  </p>
  <p style="margin-left: 40px">
    <tt>#include "tiffio.h"<br>
    main()<br>
    {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;TIFF* tif = TIFFOpen("myfile.tif", "r");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;if (tif) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 imagelength;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tdata_t buf;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 row;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &amp;imagelength);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFGetField(tif, TIFFTAG_PLANARCONFIG, &amp;config);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf = _TIFFmalloc(TIFFScanlineSize(tif));<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (config == PLANARCONFIG_CONTIG) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (row = 0; row &lt; imagelength; row++)<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tiffreadscanline(tif, buf, row);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else if (config == planarconfig_separate) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint16 s, nsamples;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tiffgetfield(tif, tifftag_samplesperpixel, &amp;nsamples);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (s = 0; s &lt; nsamples; s++)<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (row = 0; row &lt; imagelength; row++)<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tiffreadscanline(tif, buf, row, s);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_tifffree(buf);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tiffclose(tif);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;}<br>
    }</tt>
  </p>
  <p>
    Beware however that if the following code were used instead to
    read data in the case <tt>PLANARCONFIG_SEPARATE</tt>,...
  </p>
  <p style="margin-left: 40px">
    <tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (row = 0; row &lt; imagelength; row++)<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (s = 0; s &lt; nsamples; s++)<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tiffreadscanline(tif, buf, row, s);</tt>
  </p>
  <p>
    ...then problems would arise if <tt>RowsPerStrip</tt> was not one
    because the order in which scanlines are requested would require
    random access to data within strips (something that is not supported
    by the library when strips are compressed).
  </p>
  <hr>
  <h2 id="strips">Strip-oriented Image I/O</h2>
  <p>
    The strip-oriented interfaces provided by the library provide
    access to entire strips of data.  Unlike the scanline-oriented
    calls, data can be read or written compressed or uncompressed.
    Accessing data at a strip (or tile) level is often desirable
    because there are no complications with regard to random access
    to data within strips.
  </p>
  <p>
    A simple example of reading an image by strips is:
  </p>
  <p style="margin-left: 40px">
    <tt>#include "tiffio.h"<br>
    main()<br>
    {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;TIFF* tif = TIFFOpen("myfile.tif", "r");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;if (tif) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tdata_t buf;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tstrip_t strip;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf = _TIFFmalloc(TIFFStripSize(tif));<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (strip = 0; strip &lt; tiffnumberofstrips(tif); strip++)<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tiffreadencodedstrip(tif, strip, buf, (tsize_t) -1);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_tifffree(buf);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tiffclose(tif);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;}<br>
    }</tt>
  </p>
  <p>
    Notice how a strip size of <tt>-1</tt> is used; <tt>TIFFReadEncodedStrip</tt>
    will calculate the appropriate size in this case.
  </p>
  <p>
    The above code reads strips in the order in which the
    data is physically stored in the file.  If multiple samples
    are present and data is stored with <tt>PLANARCONFIG_SEPARATE</tt>
    then all the strips of data holding the first sample will be
    read, followed by strips for the second sample, etc.
  </p>
  <p>
    Finally, note that the last strip of data in an image may have fewer
    rows in it than specified by the <tt>RowsPerStrip</tt> tag.  A
    reader should not assume that each decoded strip contains a full
    set of rows in it.
  </p>
  <p>
    The following is an example of how to read raw strips of data from
    a file:
  </p>
  <p style="margin-left: 40px">
    <tt>#include "tiffio.h"<br>
    main()<br>
    {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;TIFF* tif = TIFFOpen("myfile.tif", "r");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;if (tif) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tdata_t buf;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tstrip_t strip;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32* bc;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 stripsize;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFGetField(tif, TIFFTAG_STRIPBYTECOUNTS, &amp;bc);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stripsize = bc[0];<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf = _TIFFmalloc(stripsize);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (strip = 0; strip &lt; tiffnumberofstrips(tif); strip++) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (bc[strip] &gt; stripsize) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf = _TIFFrealloc(buf, bc[strip]);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stripsize = bc[strip];<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFReadRawStrip(tif, strip, buf, bc[strip]);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_TIFFfree(buf);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFClose(tif);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;}<br>
    }</tt>
  </p>
  <p>
    As above the strips are read in the order in which they are
    physically stored in the file; this may be different from the
    logical ordering expected by an application.
  </p>
  <hr>
  <h2 id="tiles">Tile-oriented Image I/O</h2>
  <p>
    Tiles of data may be read and written in a manner similar to strips.
    With this interface, an image is
    broken up into a set of rectangular areas that may have dimensions
    less than the image width and height.  All the tiles
    in an image have the same size, and the tile width and length must each
    be a multiple of 16 pixels.  Tiles are ordered left-to-right and
    top-to-bottom in an image.  As for scanlines, samples can be packed
    contiguously or separately.  When separated, all the tiles for a sample
    are colocated in the file.  That is, all the tiles for sample 0 appear
    before the tiles for sample 1, etc.
  </p>
  <p>
    Tiles and strips may also be extended in a z dimension to form
    volumes.  Data volumes are organized as "slices".  That is, all the
    data for a slice is colocated.  Volumes whose data is organized in
    tiles can also have a tile depth so that data can be organized in
    cubes.
  </p>
  <p>
    There are actually two interfaces for tiles.
    One interface is similar to scanlines,  to read a tiled image,
    code of the following sort might be used:
  </p>
  <p style="margin-left: 40px">
    <tt>main()<br>
    {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;TIFF* tif = TIFFOpen("myfile.tif", "r");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;if (tif) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 imageWidth, imageLength;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 tileWidth, tileLength;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32 x, y;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tdata_t buf;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &amp;imageWidth);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &amp;imageLength);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFGetField(tif, TIFFTAG_TILEWIDTH, &amp;tileWidth);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIFFGetField(tif, TIFFTAG_TILELENGTH, &amp;tileLength);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf = _TIFFmalloc(TIFFTileSize(tif));<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (y = 0; y &lt; imagelength; y += tilelength)<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (x = 0; x &lt; imagewidth; x += tilewidth)<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tiffreadtile(tif, buf, x, y, 0);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_tifffree(buf);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tiffclose(tif);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;}<br>
    }</tt>
  </p>
  <p>
    (once again, we assume samples are packed contiguously.)
  </p>
  <p>
    Alternatively a direct interface to the low-level data is provided
    a la strips.  Tiles can be read with
    <tt>TIFFReadEncodedTile</tt> or <tt>TIFFReadRawTile</tt>,
    and written with <tt>TIFFWriteEncodedTile</tt> or
    <tt>TIFFWriteRawTile</tt>. For example, to read all the tiles in an image:
  </p>
  <p style="margin-left: 40px">
    <tt>#include "tiffio.h"<br>
    main()<br>
    {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;TIFF* tif = TIFFOpen("myfile.tif", "r");<br>
    &nbsp;&nbsp;&nbsp;&nbsp;if (tif) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tdata_t buf;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ttile_t tile;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf = _TIFFmalloc(TIFFTileSize(tif));<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (tile = 0; tile &lt; tiffnumberoftiles(tif); tile++)<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tiffreadencodedtile(tif, tile, buf, (tsize_t) -1);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_tifffree(buf);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tiffclose(tif);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;}<br>
    }</tt>
  </p>
  <hr>
  <h2 id="other">Other Stuff</h2>
  <p>
    Some other stuff will almost certainly go here...
  </p>
  <hr>
  <p>
    Last updated: $Date: 2016-09-25 20:05:44 $
  </p>
</body>
</html>
PK粐\�5*�html/misc.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Acknowledgments and Other Issues
</TITLE>
</HEAD>
<BODY BGCOLOR=white> 
<FONT FACE="Arial, Helvetica, Sans"> 
<H1>
<IMG SRC=images/ring.gif WIDTH=124 HEIGHT=124 ALIGN=left BORDER=1 HSPACE=6>
Acknowledgments and Other Issues
</H1>

<P>
Silicon Graphics has seen fit to allow us to give this work away.  It
is free.  There is no support or guarantee of any sort as to its
operations, correctness, or whatever.  If you do anything useful with
all or parts of it you need to honor the copyright notices.  It would
also be nice to be acknowledged.<p>

<BR CLEAR=left>

<H2>Acknowledgements</H2>

The libtiff software was written by Sam Leffler while working for
Silicon Graphics.<p>

The LZW algorithm is derived from the compress program (the proper attribution
is included in the source code).  The Group 3 fax stuff originated as code
from Jef Poskanzer, but has since been rewritten several times.  The latest
version uses an algorithm from Frank Cringle -- consult
<TT>libtiff/mkg3states.c</TT> and <TT>libtiff/tif_fax3.h</TT> for further
information. The JPEG support was written by Tom Lane and is dependent on the
excellent work of Tom Lane and the Independent JPEG Group (IJG) who distribute
their work under friendly licensing similar to this software. Joris Van Damme
implemented the robust Old JPEG decoder (as included in libtiff since version
3.9.0, there was another Old JPEG module in older releases, which was
incomplete and unsuitable for many existing images of that format). JBIG
module was written by Lee Howard and depends on JBIG library from the Markus
Kuhn. Many other people have by now helped with bug fixes and code; a few of
the more persistent contributors have been:

<PRE>
    Bjorn P. Brox
    Dan McCoy
    J.T. Conklin                
    Richard Minner
    Frank D. Cringle        
    Richard Mlynarik
    Soren Pingel Dalsgaard  
    Niles Ritter
    Steve Johnson           
    Karsten Spang
    Tom Lane               
    Peter Smith
    Brent Roman            
    Mike Welles
    Frank Warmerdam
    Greg Ward
    Stanislav Brabec        
    Roman Shpount
    Peter Skarpetis        
    Arvan Pritchard
    Bernt Herd             
    Joseph Orost
    Phil Beffery           
    Ivo Penzar
    Francois Dagand        
    Albert Chin-A-Young
    Bruce A. Mallett
    Dwight Kelly
    Andrey Kiselev
    Ross Finlayson
    Dmitry V. Levin
    Bob Friesenhahn
    Lee Howard
    Joris Van Damme
    Tavis Ormandy
    Richard Nolde
    Even Rouault
</PRE>

(my apology to anyone that was inadvertently not listed.)

<H2>Use and Copyright</H2>

<P><H5><PRE>
Copyright (c) 1988-1997 Sam Leffler
Copyright (c) 1991-1997 Silicon Graphics, Inc.

Permission to use, copy, modify, distribute, and sell this software and 
its documentation for any purpose is hereby granted without fee, provided
that (i) the above copyright notices and this permission notice appear in
all copies of the software and related documentation, and (ii) the names of
Sam Leffler and Silicon Graphics may not be used in any advertising or
publicity relating to the software without the specific, prior written
permission of Sam Leffler and Silicon Graphics.

THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  

IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
OF THIS SOFTWARE.
</PRE></H5>

<P>
<HR>


Last updated: $Date: 2016-09-25 20:05:44 $
</BODY>
</HTML>
PK粐\ո��EEhtml/support.htmlnu�[���<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
  <title>TIFF 6.0 Specification Coverage</title>
  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  <meta http-equiv="content-language" content="en">
  <style type="text/css">
  <!--
    th {text-align: left; vertical-align: top; font-style: italic; font-weight: normal}
  -->
  </style>
</head>
<body lang="en" text="#000000" bgcolor="#ffffff" link="#0000ff" alink="#0000ff" vlink="#0000ff">
  <table border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td style="padding-left: 1em; padding-right: 1em"><img src="images/strike.gif" width="128" height="100" alt=""></td>
      <td>
        <h1>TIFF 6.0 Specification Coverage</h1>
        <p>
          The library is capable of dealing with images that are written to
          follow the 5.0 or 6.0 TIFF spec.  There is also considerable support
          for some of the more esoteric portions of the 6.0 TIFF spec.
        </p>
      </td>
    </tr>
  </table>
  <br>
  <table border="1" cellspacing="0" cellpadding="5">
    <tr>
      <th>Core requirements</th>
      <td>
        <p>
          Both <tt>"MM"</tt> and <tt>"II"</tt> byte orders are handled.
          Both packed and separated planar configuration of samples.
          Any number of samples per pixel (memory permitting).
          Any image width and height (memory permitting).
          Multiple subfiles can be read and written.
          Editing is <b>not</b> supported in that related subfiles (e.g.
          a reduced resolution version of an image) are not automatically
          updated.
        </p>
        <p>
          Tags handled: <tt>ExtraSamples</tt>, <tt>ImageWidth</tt>,
          <tt>ImageLength</tt>, <tt>NewSubfileType</tt>, <tt>ResolutionUnit</tt>.
          <tt>Rowsperstrip</tt>, <tt>StripOffsets</tt>, <tt>StripByteCounts</tt>,
          <tt>XResolution</tt>, <tt>YResolution</tt>
        </p>
      </td>
    </tr>
    <tr>
      <th>Tiled Images</th>
      <td><tt>TileWidth</tt>, <tt>TileLength</tt>, <tt>TileOffsets</tt>,
        <tt>TileByteCounts</tt></td>
    </tr>
    <tr>
      <th>Image Colorimetry Information</th>
      <td><tt>WhitePoint</tt>, <tt>PrimaryChromaticities</tt>, <tt>TransferFunction</tt>,
        <tt>ReferenceBlackWhite</tt></td>
    </tr>
    <tr>
      <th>Class B for bilevel images</th>
      <td><tt>SamplesPerPixel</tt> = 1<br>
        <tt>BitsPerSample</tt> = 1<br>
        <tt>Compression</tt> = 1 (none), 2 (CCITT 1D), or 32773 (PackBits)<br>
        <tt>PhotometricInterpretation</tt> = 0 (Min-is-White), 1 (Min-is-Black)</td>
    </tr>
    <tr>
      <th>Class G for grayscale images</th>
      <td><tt>SamplesPerPixel</tt> = 1<br>
        <tt>BitsPerSample</tt> = 4, 8<br>
        <tt>Compression</tt> = 1 (none) 5 (LZW)<br>
        <tt>PhotometricInterpretation</tt> = 0 (Min-is-White), 1 (Min-is-Black)</td>
    </tr>
    <tr>
      <th>Class P for palette color images</th>
      <td><tt>SamplesPerPixel</tt> = 1<br>
        <tt>BitsPerSample</tt> = 1-8<br>
        <tt>Compression</tt> = 1 (none) 5 (LZW)<br>
        <tt>PhotometricInterpretation</tt> = 3 (Palette RGB)<br>
        <tt>ColorMap</tt></td>
    </tr>
    <tr>
      <th>Class R for RGB full color images</th>
      <td><tt>SamplesPerPixel</tt> = 3<br>
        <tt>BitsPerSample</tt> = &lt;8,8,8&gt;<br>
        <tt>PlanarConfiguration</tt> = 1, 2<br>
        <tt>Compression</tt> = 1 (none) 5 (LZW)<br>
        <tt>PhotometricInterpretation</tt> = 2 (RGB)</td>
    </tr>
    <tr>
      <th>Class F for facsimile</th>
      <td>(<i>Class B tags plus...</i>)<br>
        <tt>Compression</tt> = 3 (CCITT Group 3), 4 (CCITT Group 4)<br>
        <tt>FillOrder</tt> = 1 (MSB), 2 (LSB)<br>
        <tt>Group3Options</tt> = 1 (2d encoding), 4 (zero fill), 5 (2d+fill)<br>
        <tt>ImageWidth</tt> = 1728, 2048, 2482<br>
        <tt>NewSubFileType</tt> = 2<br>
        <tt>ResolutionUnit</tt> = 2 (Inch), 3 (Centimeter)<br>
        <tt>PageNumber</tt>,
        <tt>XResolution</tt>,
        <tt>YResolution</tt>,
        <tt>Software</tt>,
        <tt>BadFaxLines</tt>,
        <tt>CleanFaxData</tt>,
        <tt>ConsecutiveBadFaxLines</tt>,
        <tt>DateTime</tt>,
        <tt>DocumentName</tt>,
        <tt>ImageDescription</tt>,
        <tt>Orientation</tt></td>
    </tr>
    <tr>
      <th>Class S for separated images</th>
      <td><tt>SamplesPerPixel</tt> = 4<br>
        <tt>PlanarConfiguration</tt> = 1, 2<br>
        <tt>Compression</tt> = 1 (none), 5 (LZW)<br>
        <tt>PhotometricInterpretation</tt> = 5 (Separated)<br>
        <tt>InkSet</tt> = 1 (CMYK)<br>
        <tt>DotRange</tt>,
        <tt>InkNames</tt>,
        <tt>DotRange</tt>,
        <tt>TargetPrinter</tt></td>
    </tr>
    <tr>
      <th>Class Y for YCbCr images</th>
      <td><tt>SamplesPerPixel</tt> = 3<br>
        <tt>BitsPerSample</tt> = &lt;8,8,8&gt;<br>
        <tt>PlanarConfiguration</tt> = 1, 2<br>
        <tt>Compression</tt> = 1 (none),  5 (LZW), 7 (JPEG)<br>
        <tt>PhotometricInterpretation</tt> = 6 (YCbCr)<br>
        <tt>YCbCrCoefficients</tt>,
        <tt>YCbCrSubsampling</tt>,
        <tt>YCbCrPositioning</tt><br>
        (<i>colorimetry info from Appendix H; see above</i>)</td>
    </tr>
    <tr>
      <th>Class "JPEG" for JPEG images (per TTN2)</th>
      <td><tt>PhotometricInterpretation</tt> = 1 (grayscale), 2 (RGB), 5 (CMYK), 6 (YCbCr)<br>
        (<i>Class Y tags if YCbCr</i>)<br>
        (<i>Class S tags if CMYK</i>)<br>
        <tt>Compression</tt> = 7 (JPEG)</td>
    </tr>
  </table>
  <p>
    In addition, the library supports some optional compression algorithms
    that are, in some cases, of dubious value.
  </p>
  <table border="0" cellspacing="0" cellpadding="2">
    <tr><th>Compression tag value</th><th>Compression algorithm</th></tr>
    <tr><td>32766</td><td>NeXT 2-bit encoding</td></tr>
    <tr><td>32809</td><td>ThunderScan 4-bit encoding</td></tr>
    <tr><td>32909</td><td>Pixar companded 11-bit ZIP encoding</td></tr>
    <tr><td>32946</td><td>PKZIP-style Deflate encoding (experimental)</td></tr>
    <tr><td>34676</td><td>SGI 32-bit Log Luminance encoding (experimental)</td></tr>
    <tr><td>34677</td><td>SGI 24-bit Log Luminance encoding (experimental)</td></tr>
  </table>
  <br>
  <p>
    Note that there is no support for the JPEG-related tags defined
    in the 6.0 specification; the JPEG support is based on the post-6.0
    proposal given in TIFF Technical Note #2.
  </p>
  <table>
    <tr>
      <td valign=top><img src="images/info.gif" width="32" height="32" alt=""></td>
      <td>For more information on the experimental Log Luminance encoding
        consult the materials available at
        <a href="http://www.anyhere.com/gward/pixformat/tiffluv.html">http://www.anyhere.com/gward/pixformat/tiffluv.html</a>.</td>
    </tr>
  </table>
  <br>
  <p>
    The following table shows the tags that are recognized
    and how they are used by the library.  If no use is indicated,
    then the library reads and writes the tag, but does not use it internally.
  </p>
  <table border="1" cellspacing="0" cellpadding="5">
    <tr>
      <th>Tag Name</th>
      <th>Value</th>
      <th>R/W</th>
      <th>Library's Use (Comments)</th>
    </tr>
    <tr>
      <td><tt>NewSubFileType</tt></td>
      <td>254</td>
      <td>R/W</td>
      <td>none (called <tt>SubFileType</tt> in &lt;tiff.h&gt;)</td>
    </tr>
    <tr>
      <td><tt>SubFileType</tt></td>
      <td>255</td>
      <td>R/W</td>
      <td>none (called <tt>OSubFileType</tt> in &lt;tiff.h&gt;)</td>
    </tr>
    <tr>
      <td><tt>ImageWidth</tt></td>
      <td>256</td>
      <td>R/W</td>
      <td>lots</td>
    </tr>
    <tr>
      <td><tt>ImageLength</tt></td>
      <td>257</td>
      <td>R/W</td>
      <td>lots</td>
    </tr>
    <tr>
      <td><tt>BitsPerSample</tt></td>
      <td>258</td>
      <td>R/W</td>
      <td>lots</td>
    </tr>
    <tr>
      <td><tt>Compression</tt></td>
      <td>259</td>
      <td>R/W</td>
      <td>to select appropriate codec</td>
    </tr>
    <tr>
      <td><tt>PhotometricInterpretation</tt></td>
      <td>262</td>
      <td>R/W</td>
      <td>lots</td>
    </tr>
    <tr>
      <td><tt>Thresholding</tt></td>
      <td>263</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>CellWidth</tt></td>
      <td>264</td>
      <td>&nbsp;</td>
      <td>parsed but ignored</td>
    </tr>
    <tr>
      <td><tt>CellLength</tt></td>
      <td>265</td>
      <td>&nbsp;</td>
      <td>parsed but ignored</td>
    </tr>
    <tr>
      <td><tt>FillOrder</tt></td>
      <td>266</td>
      <td>R/W</td>
      <td>control bit order</td>
    </tr>
    <tr>
      <td><tt>DocumentName</tt></td>
      <td>269</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>ImageDescription</tt></td>
      <td>270</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>Make</tt></td>
      <td>271</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>Model</tt></td>
      <td>272</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>StripOffsets</tt></td>
      <td>273</td>
      <td>R/W</td>
      <td>data i/o</td>
    </tr>
    <tr>
      <td><tt>Orientation</tt></td>
      <td>274</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>SamplesPerPixel</tt></td>
      <td>277</td>
      <td>R/W</td>
      <td>lots</td>
    </tr>
    <tr>
      <td><tt>RowsPerStrip</tt></td>
      <td>278</td>
      <td>R/W</td>
      <td>data i/o</td>
    </tr>
    <tr>
    <td><tt>StripByteCounts</tt></td>
      <td>279</td>
      <td>R/W</td>
      <td>data i/o</td>
    </tr>
    <tr>
      <td><tt>MinSampleValue</tt></td>
      <td>280</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>MaxSampleValue</tt></td>
      <td>281</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>XResolution</tt></td>
      <td>282</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>YResolution</tt></td>
      <td>283</td>
      <td>R/W</td>
      <td>used by Group 3 2d encoder</td>
    </tr>
    <tr>
      <td><tt>PlanarConfiguration</tt></td>
      <td>284</td>
      <td>R/W</td>
      <td>data i/o</td>
    </tr>
    <tr>
      <td><tt>PageName</tt></td>
      <td>285</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>XPosition</tt></td>
      <td>286</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>YPosition</tt></td>
      <td>286</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>FreeOffsets</tt></td>
      <td>288</td>
      <td>&nbsp;</td>
      <td>parsed but ignored</td>
    </tr>
    <tr>
      <td><tt>FreeByteCounts</tt></td>
      <td>289</td>
      <td>&nbsp;</td>
      <td>parsed but ignored</td>
    </tr>
    <tr>
      <td><tt>GrayResponseUnit</tt></td>
      <td>290</td>
      <td>&nbsp;</td>
      <td>parsed but ignored</td>
    </tr>
    <tr>
      <td><tt>GrayResponseCurve</tt></td>
      <td>291</td>
      <td>&nbsp;</td>
      <td>parsed but ignored</td>
    </tr>
    <tr>
      <td><tt>Group3Options</tt></td>
      <td>292</td>
      <td>R/W</td>
      <td>used by Group 3 codec</td>
    </tr>
    <tr>
      <td><tt>Group4Options</tt></td>
      <td>293</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>ResolutionUnit</tt></td>
      <td>296</td>
      <td>R/W</td>
      <td>used by Group 3 2d encoder</td>
    </tr>
    <tr>
      <td><tt>PageNumber</tt></td>
      <td>297</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>ColorResponseUnit</tt></td>
      <td>300</td>
      <td>&nbsp;</td>
      <td>parsed but ignored</td>
    </tr>
    <tr>
      <td><tt>TransferFunction</tt></td>
      <td>301</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>Software</tt></td>
      <td>305</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>DateTime</tt></td>
      <td>306</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>Artist</tt></td>
      <td>315</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>HostComputer</tt></td>
      <td>316</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>Predictor</tt></td>
      <td>317</td>
      <td>R/W</td>
      <td>used by LZW codec</td>
    </tr>
    <tr>
      <td><tt>WhitePoint</tt></td>
      <td>318</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>PrimaryChromacities</tt></td>
      <td>319</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>ColorMap</tt></td>
      <td>320</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>TileWidth</tt></td>
      <td>322</td>
      <td>R/W</td>
      <td>data i/o</td>
    </tr>
    <tr>
      <td><tt>TileLength</tt></td>
      <td>323</td>
      <td>R/W</td>
      <td>data i/o</td>
    </tr>
    <tr>
      <td><tt>TileOffsets</tt></td>
      <td>324</td>
      <td>R/W</td>
      <td>data i/o</td>
    </tr>
    <tr>
      <td><tt>TileByteCounts</tt></td>
      <td>324</td>
      <td>R/W</td>
      <td>data i/o</td>
    </tr>
    <tr>
      <td><tt>BadFaxLines</tt></td>
      <td>326</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>CleanFaxData</tt></td>
      <td>327</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>ConsecutiveBadFaxLines</tt></td>
      <td>328</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>SubIFD</tt></td>
      <td>330</td>
      <td>R/W</td>
      <td>subimage descriptor support</td>
    </tr>
    <tr>
      <td><tt>InkSet</tt></td>
      <td>332</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>InkNames</tt></td>
      <td>333</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>DotRange</tt></td>
      <td>336</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>TargetPrinter</tt></td>
      <td>337</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>ExtraSamples</tt></td>
      <td>338</td>
      <td>R/W</td>
      <td>lots</td>
    </tr>
    <tr>
      <td><tt>SampleFormat</tt></td>
      <td>339</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>SMinSampleValue</tt></td>
      <td>340</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>SMaxSampleValue</tt></td>
      <td>341</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>JPEGTables</tt></td>
      <td>347</td>
      <td>R/W</td>
      <td>used by JPEG codec</td>
    </tr>
    <tr>
      <td><tt>YCbCrCoefficients</tt></td>
      <td>529</td>
      <td>R/W</td>
      <td>used by <tt>TIFFReadRGBAImage</tt> support</td>
    </tr>
    <tr>
      <td><tt>YCbCrSubsampling</tt></td>
      <td>530</td>
      <td>R/W</td>
      <td>tile/strip size calculations</td>
    </tr>
    <tr>
      <td><tt>YCbCrPositioning</tt></td>
      <td>531</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>ReferenceBlackWhite</tt></td>
      <td>532</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><tt>Matteing</tt></td>
      <td>32995</td>
      <td>R</td>
      <td>none (obsoleted by <tt>ExtraSamples</tt> tag)</td>
    </tr>
    <tr>
      <td><tt>DataType</tt></td>
      <td>32996</td>
      <td>R</td>
      <td>none (obsoleted by <tt>SampleFormat</tt> tag)</td>
    </tr>
    <tr>
      <td><tt>ImageDepth</tt></td>
      <td>32997</td>
      <td>R/W</td>
      <td>tile/strip calculations</td>
    </tr>
    <tr>
      <td><tt>TileDepth</tt></td>
      <td>32998</td>
      <td>R/W</td>
      <td>tile/strip calculations</td>
    </tr>
    <tr>
      <td><tt>StoNits</tt></td>
      <td>37439</td>
      <td>R/W</td>
      <td>&nbsp;</td>
    </tr>
  </table>
  <p>
    The <tt>Matteing</tt> and <tt>DataType</tt>
    tags have been obsoleted by the 6.0
    <tt>ExtraSamples</tt> and <tt>SampleFormat</tt> tags.
    Consult the documentation on the
    <tt>ExtraSamples</tt> tag and Associated Alpha for elaboration.  Note however
    that if you use Associated Alpha, you are expected to save data that is
    pre-multipled by Alpha.  If this means nothing to you, check out
    Porter &amp; Duff's paper in the '84 SIGGRAPH proceedings: "Compositing Digital
    Images".
  </p>
  <p>
    The <tt>ImageDepth</tt>
    tag is a non-standard, but registered tag that specifies
    the Z-dimension of volumetric data.  The combination of <tt>ImageWidth</tt>,
    <tt>ImageLength</tt>, and <tt>ImageDepth</tt>,
    defines a 3D volume of pixels that are
    further specified by <tt>BitsPerSample</tt> and
    <tt>SamplesPerPixel</tt>.  The <tt>TileDepth</tt>
    tag (also non-standard, but registered) can be used to specified a
    subvolume "tiling" of a volume of data.
  </p>
  <p>
    The Colorimetry, and CMYK tags are additions that appear in TIFF 6.0.
    Consult the TIFF 6.0 specification included in the <b>doc</b> directory
    and <a href="document.html">online</a>.
  </p>
  <p>
    The JPEG-related tag is specified in
    <a href="TIFFTechNote2.html">TIFF Technical Note #2</a> which defines
    a revised JPEG-in-TIFF scheme (revised over that appendix that was
    part of the TIFF 6.0 specification).
  </p>
  <hr>
  <p>
    Last updated: $Date: 2016-09-25 20:05:45 $
  </p>
</body>
</html>

PK粐\~<�^^html/tools.htmlnu�[���<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Solaris (vers 12 April 2005), see www.w3.org">
<title>TIFF Tools Overview</title>
</head>
<body bgcolor="white">
<h1><font face="Arial, Helvetica, Sans"><img src="images/quad.jpg"
width="144" height="108" align="left" border="1" hspace="6"> TIFF
Tools Overview</font></h1>
<p>This software distribution comes with a small collection of
programs for converting non-TIFF format images to TIFF and for
manipulating and interrogating the contents of TIFF images. Several
of these tools are useful in their own right. Many of them however
are more intended to serve as programming examples for using the
TIFF library.</p>
<h3>Device-dependent Programs</h3>
There are two device-dependent programs that serve as simple
examples for writing programs to display and save TIFF images.
<table border cellpadding="3">
<tr>
<td valign="top" width="10%">
<tt><a href="man/tiffgt.1.html">tiffgt</a>&nbsp;&nbsp;&nbsp;&nbsp;</tt></td>
<td>Display the contents of one or more TIFF images using OpenGL.
The software makes extensive use of the <tt>TIFFRGBAImage</tt>
facilities described elsewhere.</td>
</tr>
</table>
<h3>Device-independent Programs</h3>
The remaining programs should be device-independent:
<table border cellpadding="3">
<td valign="top" width="10%"><tt><a href="man/fax2ps.1.html">fax2ps</a></tt></td>
<td>Convert a Group 3- or Group 4- compressed TIFF to PostScript
that is significantly more compressed than is generated by
<tt>tiff2ps</tt> (unless <tt>tiff2ps</tt> writes PS Level II)</td>
</tr>
<tr>
<td valign="top" width="10%"><tt><a href="man/fax2tiff.1.html">fax2tiff</a></tt></td>
<td>Convert raw Group 3 or Group 4 facsimile data to TIFF</td>
</tr>
<td valign="top" width="10%"><tt><a href="man/pal2rgb.1.html">pal2rgb</a></tt></td>
<td>Convert a Palette-style image to a full color RGB image by
applying the colormap</td>
</tr>
<tr>
<td valign="top" width="10%"><tt><a href="man/ppm2tiff.1.html">ppm2tiff</a></tt></td>
<td>A quick hack that converts 8-bit PPM format images to TIFF</td>
</tr>
<td valign="top" width="10%"><tt><a href="man/raw2tiff.1.html">raw2tiff</a></tt></td>
<td>Create a TIFF file from raw data</td>
</tr>
<tr>
<td valign="top" width="10%"><tt><a href="man/rgb2ycbcr.1.html">rgb2ycbcr</a></tt></td>
<td>Convert an RGB, grayscale, or bilevel TIFF image to a YCbCr
TIFF image; it's mainly provided for testing</td>
</tr>
<tr>
<td valign="top" width="10%"><tt><a href="man/thumbnail.1.html">thumbnail</a></tt></tt></td>
<td>Copy a bilevel TIFF to one that includes 8-bit greyscale
"thumbnail images" for each page; it is provided as an example of
how one might use the <tt>SubIFD</tt> tag (and the library support
for it)</td>
</tr>
<tr>
<td valign="top" width="10%"><tt><a href="man/tiff2bw.1.html">tiff2bw</a></tt></td>
<td>A simple program to convert a color image to grayscale</td>
</tr>
<tr>
<td valign="top" width="10%"><tt><a href="man/tiff2pdf.1.html">tiff2pdf</a></tt></td>
<td>Convert TIFF images to PDF</td>
</tr>
<tr>
<td valign="top" width="10%"><tt><a href="man/tiff2ps.1.html">tiff2ps</a></tt></td>
<td>Convert TIFF images to PostScript</td>
</tr>
<tr>
<td valign="top" width="10%"><tt><a href="man/tiff2rgba.1.html">tiff2rgba</a></tt></td>
<td>Convert a TIFF image to RGBA color space</td>
</tr>
<tr>
<td valign="top" width="10%"><tt><a href="man/tiffcmp.1.html">tiffcmp</a></tt></td>
<td>Compare the contents of two TIFF files (it does not check all
the directory information, but does check all the data)</td>
</tr>
<tr>
<td valign="top" width="10%"><tt><a href="man/tiffcp.1.html">tiffcp</a></tt></td>
<td>Copy, concatenate, and convert TIFF images (e.g. switching from
Compression=5 to Compression=1)</td>
</tr>
<tr>
<td valign="top" width="10%"><tt><a href="man/tiffcrop.1.html">tiffcrop</a></tt></td>
<td>Provides selection of images from within one or more multi-image
TIFF files, with orthogonal rotation, mirroring, cropping, and
extraction of multiple sections and exporting to one or more files.
It extends the functionality of tiffcp to support additional bit
depths in strips and tiles and enhances the selection capabilities of
tiffsplit. Bilevel images can be inverted and images may be split into
segments to fit on multiple /pages/ (standard paper sizes), plus other
functions described in the tiffcrop man page</td>
</tr>
<tr>
<td valign="top" width="10%"><tt><a href="man/tiffdither.1.html">tiffdither</a></tt></td>
<td>Dither a b&amp;w image into a bilevel image (suitable for use
in creating fax files)</td>
</tr>
<tr>
<td valign="top" width="10%"><tt><a href="man/tiffdump.1.html">tiffdump</a></tt></td>
<td>Display the verbatim contents of the TIFF directory in a file
(it's very useful for debugging bogus files that you may get from
someone that claims they support TIFF)</td>
</tr>
<tr>
<td valign="top" width="10%"><tt><a href="man/tiffinfo.1.html">tiffinfo</a></tt></td>
<td>Display information about one or more TIFF files.</td>
</tr>
<tr>
<td valign="top" width="10%"><tt><a href="man/tiffmedian.1.html">tiffmedian</a></tt></td>
<td>A version of Paul Heckbert's median cut program that reads an
RGB TIFF image, and creates a TIFF palette file as a result</td>
</tr>
<tr>
<td valign="top" width="10%"><tt><a href="man/tiffset.1.html">tiffset</a></tt></td>
<td>Set a field in a TIFF header</td>
</tr>
<tr>
<td valign="top" width="10%"><tt><a href="man/tiffsplit.1.html">tiffsplit</a></tt></td>
<td>Create one or more single-image files from a (possibly)
multi-image file</td>
</tr>
</table>
<p>Check out the manual pages for details about the above
programs.</p>
<hr>
Last updated: $Date: 2016-06-05 19:54:00 $
</body>
</html>
PK粐\�^77html/v3.4beta007.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.4beta007
</TITLE>
</HEAD>

<BODY>
<FONT FACE="Arial, Helvetica, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.4beta007<BR>
<B>Previous Version</B>: v3.4beta004<BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.sgi.com/graphics/tiff">ftp.sgi.com (192.48.153.1), directory graphics/tiff</A><BR>
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#port">Changes in the portability support</A>
<LI><A HREF="#tools">Changes in the tools</A>
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
<LI>bit order was corrected for Pentium systems
<LI>a new define, <TT>HOST_BIGENDIAN</TT>, was added for code that
   wants to statically use information about native cpu byte order
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
<LI>the G3/G4 decoder was replaced by a new one that is faster and
   has smaller state tables
<LI>Niles Ritter's client tag extension hooks were added
<LI>a new routine <TT>TIFFCurrentDirOffset</TT> was added for
   applications that want to find out the file offset of a TIFF directory
<LI>the calculation of the number of strips in an image was corected
   for images with certain esoteric configurations
<LI>a potential memory leak (very unlikely) was plugged
<LI>the <TT>TIFFReadRGBAImage</TT> support was completely rewritten
   and new, more flexible support was added for reading images into
   a fixed-format raster
<LI>YCbCr to RGB conversion done in the <TT>TIFFReadRGBAImage</TT> support
   was optimized
<LI>a bug in JPEG support calculation of strip size was corrected
<LI>the LZW decoder was changed to initialize the code table to zero
   to lessen potential problems that arise when invalid data is decoded
<LI><B>tiffcomp.h</B> is now aware of OS/2
<LI>some function prototypes in <B>tiffio.h</B> and <B>tiffiop.h</B>
   that contained parameter
   names have been changed to avoid complaints from certain compilers
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="port"><B><FONT SIZE=+3>C</FONT>HANGES IN THE PORTABILITY SUPPORT:</B></A>

<UL>
<LI><B>Makefile.in</B> has been corrected to use the parameters
   chosen by the configure script
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
<LI><TT>fax2ps</TT> has been rewritten and moved over from the user
   contributed software
<LI>an uninitialized variable in <TT>pal2rgb</TT> has been fixed
<LI><TT>ras2tiff</TT> now converts 24-bit RGB raster data so that
   samples are written in the proper order
<LI><TT>tiff2ps</TT> has been updated to include fixes
    and enhancements from Alberto Accomazzi
<LI><TT>tiffcp</TT> now has a <TT>-o</TT> option to select a directory
    by file offset
<LI><TT>tiffinfo</TT> is now capable of displaying the raw undecoded
    image data in a file
<LI><TT>tiffgt</TT> has been rewritten to use the new <TT>TIFFRGBAImage</TT>
   support and to handle multiple files
</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

<ADDRESS>
<A HREF="sam.html">Sam Leffler</A> / <A HREF="mailto:sam@engr.sgi.com">sam@engr.sgi.com</A>
Last updated $Date: 2016-09-25 20:05:45 $.
</ADDRESS>

</BODY>
</HTML>
PK粐\��n���html/v3.4beta016.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.4beta016
</TITLE>
</HEAD>

<BODY>
<FONT FACE="Arial, Helvetica, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.4beta016<BR>
<B>Previous Version</B>: <A HREF=v3.4beta007.html>v3.4beta007</A><BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.sgi.com/graphics/tiff">ftp.sgi.com (192.48.153.1), directory graphics/tiff</A><BR>
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#man">Changes in the manual pages</A>
<LI><A HREF="#html">Changes in the documentation</A>
<LI><A HREF="#contrib">Changes in contributed software</A>
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
<LI>support was added for configuring the Deflate codec
<LI>support was added for the HTML documentation
<LI>codecs that are not configured for inclusion in the library
   are no longer compiled
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
<LI>support was added for registering new codecs external to the library
   and for overriding the codecs that are builtin to the library
<LI>emulation support for the old <TT>DataType</TT> tag was improved
<LI>suppport was added for the <TT>SMinSampleValue</TT>
    and <TT>SMaxSampleValue</TT> tags
<LI>the library no longer ignores <TT>TileWidth</TT> and <TT>TileLength</TT>
    tags whose values are not a multiple of 16 (per the spec); this
    permits old, improperly written, images to be read
<LI>the support for the <TT>Predictor</TT> tag was placed in a reusable
    module so that it can be shared by multiple codecs
<LI>experimental compression support was added for the Deflate algorithm
   (using the freely available zlib package)
<LI>a new routine, <TT>TIFFWriteBufferSetup</TT> was added a la the
   routine <TT>TIFFReadBufferSetup</TT>
<LI>the DSO version of the library is now statically linked with the
   JPEG and Deflate libraries; this means applications that link against
   the DSO do not also need to link against these ancillary libraries
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
<LI>all the tools now use common code to process compress-oriented arguments
<LI><TT>tiffdump</TT> should now compile on a Macintosh with MPW
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="man"><B><FONT SIZE=+3>C</FONT>HANGES IN THE MANUAL PAGES:</B></A>

<UL>
<LI>everything was updated
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="html"><B><FONT SIZE=+3>C</FONT>HANGES IN THE DOCUMENTATION:</B></A>

<UL>
<LI>everything was updated
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN CONTRIBUTED SOFTWARE:</B></A>

<UL>
<LI><B>contrib/dbs/xtiff</B> was made to compile
<LI><B>contrib/mac-mpw</B> is new support for compiling the software on
   a Macintosh under MPW; consult <A HREF=build.html#Mac>the documentation</A>
   for details
<LI><B>contrib/tags</B> is information on how to use the tag extenion
   facilities; consult
   <A HREF=../contrib/tags/README>contrib/tags/README</A> for details
</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

<ADDRESS>
<A HREF="sam.html">Sam Leffler</A> / <A HREF="mailto:sam@engr.sgi.com">sam@engr.sgi.com</A>
Last updated $Date: 2016-09-25 20:05:45 $.
</ADDRESS>

</BODY>
</HTML>
PK粐\���W
W
html/v3.4beta018.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.4beta018
</TITLE>
</HEAD>

<BODY>
<FONT FACE="Arial, Helvetica, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.4beta018<BR>
<B>Previous Version</B>: <A HREF=v3.4beta016.html>v3.4beta016</A><BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.sgi.com/graphics/tiff">ftp.sgi.com (192.48.153.1), directory graphics/tiff</A><BR>
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
<LI>configure now recognizes IRIX 6.x systems
<LI>configure now uses <TT>ENVOPTS</TT> when searching for an ANSI
   C compiler; this fixes a problem configuring the software under
   HP/UX with the native C compiler
<LI>configure now correctly recognizes memory-mapped files are supported
   under AIX
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
<LI><TT>make install</TT> now properly installs the include files
<LI>some portability fixes from Bjorn Brox
<LI>the G3/G4 codec now warns about decoded rows that are longer than
    the image/tile width
<LI>changes from Frank Cringle to make the library work with the
    gcc-specific bounds checking software
<LI>miscellaneous fixes to <TT>TIFFPrintDirectory</TT>
<LI>bug fix to correct a problem where <TT>TIFFWriteRawStrip</TT>
    could not be used to automatically grow an image's length
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
<LI>fixes from Frank Cringle to update <TT>fax2tiff</TT>
<LI>portability fixes to <TT>tiff2bw</TT> and <TT>tiffcmp</TT>
<LI><TT>tiffdump</TT> now uses the byte swapping routines in the library
</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

<ADDRESS>
<A HREF="sam.html">Sam Leffler</A> / <A HREF="mailto:sam@engr.sgi.com">sam@engr.sgi.com</A>
Last updated $Date: 2016-09-25 20:05:45 $.
</ADDRESS>

</BODY>
</HTML>
PK粐\�_+��html/v3.4beta024.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.4beta024
</TITLE>
</HEAD>

<BODY>
<FONT FACE="Arial, Helvetica, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.4beta024<BR>
<B>Previous Version</B>: <A HREF=v3.4beta018.html>v3.4beta018</A><BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.sgi.com/graphics/tiff">ftp.sgi.com (192.48.153.1), directory graphics/tiff</A><BR>
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#man">Changes in the manual pages</A>
<LI><A HREF="#contrib">Changes in the contributed software</A>
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
<LI>It is now possible to setup the software to build only the
   library; configure reconizes this is the intent when the
   <B>VERSION</B>, <B>tiff.alpha</B>, and <B>tif_version.c</B>
   files are in the local directory (i.e. ``.'')
<LI>configure no longer tries to setup HTML materials
<LI>include file directories needed in building the library are now
   specified with a <TT>DIRS_LIBINC</TT> config parameter
<LI>configure no longer checks for alternate compilers if <TT>CC</TT>
   is set; if the specified compiler is not found or is not appropriate
   the configuration procedure aborts
<LI>the <B>port.h</B> file generated by configure is now used only by
   the library and as such as have been moved to the <B>libtiff</B>
   directory
<LI>there is beginning support for building DSO's on systems other than IRIX
<LI>configure now verifies the JPEG and zlib directory pathnames by
   checking for well-known include files in these directories
<LI>configure no longer creates the <B>dist</B> directory needed only
   on SGI machines (for building SGI binary distributions)
<LI>a bug was fixed whereby configure would incorrectly set
    <TT>ENVOPTS</TT> when building the software with gcc under AIX
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
<LI>two new typedefs were added to <B>tiff.h</TT>: <TT>int8</TT>
    and <TT>uint8</TT> for signed and unsigned 8-bit quantities,
    respectively; these are currently used only by
    programs in the <B>tools</B> directory
<LI>the <TT>BadFaxLines</TT>, <TT>CleanFaxData</TT>, and
    <TT>ConsecutiveBadFaxLines</B> tags are now supported with
    Group 4 compression
<LI>byte order is now correctly identified on 64-bit machines
<LI>a bug was fixed in the PackBits decoder where input data would
    appear short when a no-op run was present
<LI>a bug was fixed in calculations with very wide strips
<LI><TT>TIFFWriteEncodedStrip</TT> and <TT>TIFFWriteRawStrip</TT>
    were extended to support dynamically growing the number of
    strips in an image (must set <TT>ImageLength</TT> prior to
    making calls though)
<LI><TT>TIFFDefaultTileSize</TT> now rounds tile width and height
    up to a multiple of 16 pixels, as required by the TIFF 6.0 specification
<LI>the file <B>version.h</B> is now built by a new <B>mkversion</B>
    program; this was done for portability to non-UNIX systems
<LI>support was added for the Acorn RISC OS (from Peter Greenham)
<LI>the builtin codec table is now made <TT>const</TT> when compiling
    under VMS so that <B>libtiff</B> can be built as a shared library
<LI>support for the PowerPC Mac (from Ruedi Boesch)
<LI>support for Window NT/Window 95 (from Scott Wagner)
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
<LI>the tools no longer include <B>port.h</B>
<LI>various portability fixes; mostly to eliminate implicit assumptions
    about how long <TT>int32</TT> data types are
<LI>PostScript Level II additions to <TT>tiff2ps</TT> from Bjorn Brox
<LI><TT>sgi2tiff</TT> now handles RGBA images
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="man"><B><FONT SIZE=+3>C</FONT>HANGES IN THE MANUAL PAGES:</B></A>

<UL>
<LI>the documentation has been updated to reflect the current state of
    the software
<LI>some routines have been moved to different manual pages
    to group like-routines together
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIBUTED SOFTWARE:</B></A>

<UL>
<LI>support was added for the Acorn RISC OS (from Peter Greenham)
<LI>support for Windows NT/Windows 95 contributed for a previous
    version of this software was sort of incorporated (it's broken
    right now) (from Scott Wagner)
</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

<ADDRESS>
<A HREF="sam.html">Sam Leffler</A> / <A HREF="mailto:sam@engr.sgi.com">sam@engr.sgi.com</A>
Last updated $Date: 2016-09-25 20:05:45 $.
</ADDRESS>

</BODY>
</HTML>
PK粐\͠=�^^html/v3.4beta028.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.4beta028
</TITLE>
</HEAD>

<BODY>
<FONT FACE="Arial, Helvetica, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.4beta028<BR>
<B>Previous Version</B>: <A HREF=v3.4beta024.html>v3.4beta024</A><BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.sgi.com/graphics/tiff">ftp.sgi.com (192.48.153.1), directory graphics/tiff</A><BR>
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#man">Changes in the manual pages</A>
<LI><A HREF="#contrib">Changes in the contributed software</A>
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
<LI>a <TT>-noninteractive</TT> flag was added to configure to
   control whether or not it prints and prompts for configuration information
<LI>various typos and fixes were made in configure for the the
   library-only build support (this and other configure fixes from
   Richard Mlynarik <A HREF=mailto:mly@adoc.xerox.com>&lt;mly@adoc.xerox.com&gt;</A>)
<LI>bugs were fixed in the handling of pathnames supplied for external
   packages; e.g. <TT>DIR_JPEG</TT>
<LI>the handling of <TT>SETMAKE</TT> is now done properly
<LI>the default prototype function declaration for <TT>pow</TT> was corrected
<LI>a bug was fixed in <B>libtiff/Makefile.in</B> that caused installation
   to fail on systems without DSO support
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
<LI>Acorn RISC O/S support that was accidentally left out of the
   left out of the previous distribution is present (from Peter Greenham)
<LI>complaints about unknown and/or unsupported codecs have been
   delayed until they are invoked; this permits applications to open
   images and look at tags even if the image data is compressed with
   an unknown/unsupported compression scheme
<LI>bugs in handling unknown tags have been corrected; applications
   that use multiple codecs, each with codec-specific tags, no longer
   generate confusing error messages
<LI>a missing pseudo-tag definition in the CCITT G3 codec was fixed
   (this problem caused core dumps in the <TT>tiffcp</TT> program)
<LI>pseudo-tags are now treated specially; they are always considered
   to be set (i.e. they do not use bits in the <TT>FIELD_*</TT> bit-vectors).
<LI>the use of strip chopping can now be controlled on a per-file basis
   through a mode parameter supplied when opening a file (``C'' to
   enable strip chopping and ``c'' to disable)
<LI>two bugs were fixed in the writing of opposite-endian byte-order
   files
<LI>support was added for three new fax-related tags registered to
   SGI: FaxRecvParams, FaxRecvTime, and FaxSubAddress
<LI>the bit order of image data read and written can now be controlled
   on a per-file basis through a mode parameter supplied when opening
   a file (``B'' to force MSB2LSB bit order, ``L'' for LSB2MSB bit
   order, and ``H'' for the bit order of the native CPU)
<LI>the byte order of image and tag data written to newly-created files
   can now be controlled on a per-file basis through a mode parameter
   supplied when openening a file (``b'' to force Big-Endian byte order
   and ``l'' to force Little-Endian byte order)
<LI>the use memory-mapped files for images opened read-only can now
   be controlled on a per-file basis through a mode parameter supplied
   when opening a file (``M'' to enable use of memory-mapped files
   and ``m'' to disable use)
<LI>the use of the <TT>WIN32</TT> define in <B>tiffiop.h</B> has
   been replaced by <TT>__WIN32__</TT>
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
<LI><TT>fax2ps</TT> now does a <TT>save</TT> and <TT>restore</TT>
    around each page of PostScript; this fixes a problem with VM
    overflow when printing a many-page document on some printers
<LI>a bug in the handling of 3-channel images by <TT>ras2tiff</TT> 
    was fixed
<LI><TT>tiffcp</TT> has new options to control the byte order of
    newly created files: <B>-B</B> for Big-Endian byte order, <B>-L</B>
    for Little-Endian byte order; a <B>-M</B> option to disable the
    use of memory-mapped files, and a <B>-C</B> option to disable the
    use of strip chopping
<LI>bugs were fixed in <TT>tiffcp</TT>'s handling of codec-specific tags
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="man"><B><FONT SIZE=+3>C</FONT>HANGES IN THE MANUAL PAGES:</B></A>

<UL>
<LI>the <TT>TIFFOpen</TT> page has been updated to reflect the new
    optional open mode parameters
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIBUTED SOFTWARE:</B></A>

<UL>
<LI><B>contrib/win95</B> contains information and code from Philippe Tenenhaus
    <A HREF=mailto:100423.3705@compuserve.com>&lt;100423.3705@compuserve.com&gt;</A>
    about using the software under Windows 95
<LI><B>contrib/winnt</B> contains information and code from Dave Dyer
    <A HREF=mailto:ddyer@triple-i.com>&lt;ddyer@triple-i.com&gt;</A>
    about using the software under Windows NT
</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

<ADDRESS>
<A HREF="sam.html">Sam Leffler</A> / <A HREF="mailto:sam@engr.sgi.com">sam@engr.sgi.com</A>
Last updated $Date: 2016-09-25 20:05:45 $.
</ADDRESS>

</BODY>
</HTML>
PK粐\��/�
�
html/v3.4beta029.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.4beta029
</TITLE>
</HEAD>

<BODY>
<FONT FACE="Arial, Helvetica, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.4beta029<BR>
<B>Previous Version</B>: <A HREF=v3.4beta028.html>v3.4beta028</A><BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.sgi.com/graphics/tiff">ftp.sgi.com (192.48.153.1), directory graphics/tiff</A><BR>
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#contrib">Changes in the contributed software</A>
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
<LI><B>configure</B> now relativizes pathname references given in
   <TT>-L</TT> options (as frequently specified when configuring
   ancillary packages)
<LI>problems related to configuring the software on Ultrix 4.4 have
   been corrected
<LI>the shell to use in Makefiles and scripts can now be set with the
   <TT>SCRIPT_SH</TT> configuration parameter
<LI>comments in <B>config.site</B> now correctly indicate how to setup the
   use of ancillary packages
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
<LI>mods for building the software on a Mac using the
   MetroWerks CodeWarrior compilers
<LI>a bug in the CCITT T.4/T.6 decoder was fixed where the last codeword in
   a strip/tile might not be decoded; this was seen only when decoding
   multi-strip images
<LI>a bug in the CCITT RLE codecs was fixed whereby the pseudo tags were not
   being properly registered
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIBUTED SOFTWARE:</B></A>

<UL>
<LI><B>contrib/mac-cw</B> contains information and code from Niles Ritter
    <A HREF=mailto:ndr@tazboy.jpl.nasa.gov>&lt;ndr@tazboy.jpl.nasa.gov&gt;</A>
    about building the software with the MetroWerks CodeWarrior compilers
    on Macintosh systems
</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

<ADDRESS>
<A HREF="sam.html">Sam Leffler</A> / <A HREF="mailto:sam@engr.sgi.com">sam@engr.sgi.com</A>
Last updated $Date: 2016-09-25 20:05:45 $.
</ADDRESS>

</BODY>
</HTML>
PK粐\��J���html/v3.4beta031.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.4beta031
</TITLE>
</HEAD>

<BODY>
<FONT FACE="Arial, Helvetica, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.4beta031<BR>
<B>Previous Version</B>: <A HREF=v3.4beta029.html>v3.4beta029</A><BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.sgi.com/graphics/tiff">ftp.sgi.com (192.48.153.1), directory graphics/tiff</A><BR>
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#man">Changes in the manual pages</A>
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
<LI><B>configure</B> now captures significantly more information
   in the <B>config.log</B> file and provides more information when
   it is unable to setup a configuration
<LI>support was added for building shared libraries on more systems:
   AIX, HPUX, Solaris, and Linux.
<LI>a new configuration parameter <TT>LIBCOPTS</TT> was added for
   passing arguments to the C compiler to use when building only
   the library; this is part of the enhanced support for building
   shared libraries
<LI>include files for optional packages that reside in <B>/usr/include</B>
   are now handled correctly
<LI>build trees may now be configured using either relative or absolute
   pathnames to the source distribution
<LI>several new configuration parameters were added, mainly for building
   shared libraries: <TT>DIST_MAJOR</TT>, <TT>DIST_MINOR</TT>, 
   <TT>DIST_ALPHA</TT>, and <TT>DSOSUF_VERSION</TT>
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
<LI>the Deflate support has been revised: it requires version 0.99 of
   the zlib software distribution, <B>the output format has changed and
   is incompatible with previous versions of this library</B> (each
   strip now includes a header read and written by the zlib library)
<LI>the codec name printed by the TIFFPrintDirectory routine is now
   taken from the codec table instead of from a builtin table; this means
   that application-defined codecs are handled correctly
<LI>a new symbol was added that contains the library version number;
   this can be used to do a compile-time compatibility check of the
   library version
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="man"><B><FONT SIZE=+3>C</FONT>HANGES IN THE MANUAL PAGES:</B></A>

<UL>
<LI>the creation and installation of manual pages was redone; it now
    implements the documented ``configuration scheme''
</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

<ADDRESS>
<A HREF="sam.html">Sam Leffler</A> / <A HREF="mailto:sam@engr.sgi.com">sam@engr.sgi.com</A>
Last updated $Date: 2016-09-25 20:05:45 $.
</ADDRESS>

</BODY>
</HTML>
PK粐\-V\�
�
html/v3.4beta032.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.4beta032
</TITLE>
</HEAD>

<BODY>
<FONT FACE="Arial, Helvetica, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.4beta032<BR>
<B>Previous Version</B>: <A HREF=v3.4beta031.html>v3.4beta031</A><BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.sgi.com/graphics/tiff">ftp.sgi.com (192.48.153.1), directory graphics/tiff</A><BR>
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contributed software</A>
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
<LI>various fixups and subtle improvements to <B>configure</B>
    from Richard Mlynarik
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
<LI>a new codec from Pixar designed for high-resolution color images;
    note that this codec is not configured by default
<LI>a bug fix for reading tags with a single <TT>FLOAT</TT> value
<LI>change to the <TT>TIFFGetField</TT> calling convention:
    a tag that has a single value of
    type <TT>DOUBLE</TT> is now retrieved by passing a
    ``<TT>double*</TT>'' instead of a
    ``<TT>double**</TT>'' (this change makes the handling of tags with
    <TT>DOUBLE</TT> values identical to the handling of tags with
    <TT>FLOAT</TT> values)
<LI>fix to VMS support for the handling of floating point values
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
<LI><B>tiffdump</B> now handles tags with <TT>FLOAT</TT> and <TT>DOUBLE</TT>
    values
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIBUTED SOFTWARE:</B></A>

<UL>
<LI>updates to the Acorn OS support from Peter Greenham
</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

<ADDRESS>
<A HREF="sam.html">Sam Leffler</A> / <A HREF="mailto:sam@engr.sgi.com">sam@engr.sgi.com</A>
Last updated $Date: 2016-09-25 20:05:45 $.
</ADDRESS>

</BODY>
</HTML>
PK粐\x�s���html/v3.4beta033.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.4beta033
</TITLE>
</HEAD>

<BODY>
<FONT FACE="Arial, Helvetica, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.4beta033 (aka the v3.4 release)<BR>
<B>Previous Version</B>: <A HREF=v3.4beta032.html>v3.4beta032</A><BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.sgi.com/graphics/tiff">ftp.sgi.com (192.48.153.1), directory graphics/tiff</A><BR>
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
<LI><A HREF="#tools">Changes in the tools</A>
<LI><A HREF="#contrib">Changes in the contributed software</A>
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
<LI>support was added for building the library as a DSO under OSF/1
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
<LI>fixes to the Pixar codec
<LI>portability mods for VMS
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>

<UL>
<LI>fixes to <B>gif2tiff</B> and <B>ppm2tiff</B> for building under MS/DOS
<LI>portability mods to <B>fax2ps</B> and <B>ycbcr</B> for VMS
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIBUTED SOFTWARE:</B></A>

<UL>
<LI>a new package from Alexander Lehmann
   for building the library and tools under MS/DOS with DJGPP v2
<LI>updated VMS support from Karsten Spang
</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

<ADDRESS>
<A HREF="sam.html">Sam Leffler</A> / <A HREF="mailto:sam@engr.sgi.com">sam@engr.sgi.com</A>
Last updated $Date: 2016-09-25 20:05:45 $.
</ADDRESS>

</BODY>
</HTML>
PK粐\A-!0qqhtml/v3.4beta034.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.4beta034
</TITLE>
</HEAD>

<BODY>
<FONT FACE="Arial, Helvetica, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.4beta034<BR>
<B>Previous Version</B>: <A HREF=v3.4beta033.html>v3.4beta033</A><BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.sgi.com/graphics/tiff">ftp.sgi.com (192.48.153.1), directory graphics/tiff</A><BR>
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
<LI>support was added for building the library as a DSO under NetBSD
<LI>a bug was fixed in the DSO support for Linux
<LI>the handling of version strings has changed slightly to simplify parsing
<LI>a new parameter, <TT>TIFFLIBREF</TT>, was added to control how the
    library is referenced when linking programs in the <B>tools</B> directory
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
<LI>DSO creation under Solaris now forces the DSO name with a <TT>-h</TT> option
<LI>the interface to the <B>mkversion</B> program was changed
    to eliminate the need to parse files
<LI>a bug was fixed in the EOL-detection logic of the T.4/T.6 decoder
<LI>ANSI IT8 TIFF/IT tag definitions were added to <B>tiff.h</B>
</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

<ADDRESS>
<A HREF="sam.html">Sam Leffler</A> / <A HREF="mailto:sam@engr.sgi.com">sam@engr.sgi.com</A>
Last updated $Date: 2016-09-25 20:05:45 $.
</ADDRESS>

</BODY>
</HTML>
PK粐\�html/v3.4beta035.htmlnu�[���<HTML>
<HEAD>
<TITLE>
Changes in TIFF v3.4beta035
</TITLE>
</HEAD>

<BODY>
<FONT FACE="Arial, Helvetica, Sans">

<BASEFONT SIZE=4>
<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
<BASEFONT SIZE=3>

<UL>
<HR SIZE=4 WIDTH=65% ALIGN=left>
<B>Current Version</B>: v3.4beta035<BR>
<B>Previous Version</B>: <A HREF=v3.4beta034.html>v3.4beta034</A><BR>
<B>Master FTP Site</B>: <A HREF="ftp://ftp.sgi.com/graphics/tiff">ftp.sgi.com (192.48.153.1), directory graphics/tiff</A><BR>
<HR SIZE=4 WIDTH=65% ALIGN=left>
</UL>

<P>
This document describes the changes made to the software between the
<I>previous</I> and <I>current</I> versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
<UL>
<LI><A HREF="#configure">Changes in the software configuration</A>
<LI><A HREF="#libtiff">Changes in libtiff</A>
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>

<UL>
<LI>support was added installing the HTML documentation
<LI>support was added for building the library as a DSO under FreeBSD
</UL>

<P><HR WIDTH=65% ALIGN=right>

<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>

<UL>
<LI>the interface to the <B>mkversion</B> program was restored to
    the form used prior to v3.4beta034
<LI>several portability problems for 16-bit systems were fixed
</UL>

<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>

<HR>

<ADDRESS>
<A HREF="sam.html">Sam Leffler</A> / <A HREF="mailto:sam@engr.sgi.com">sam@engr.sgi.com</A>
Last updated $Date: 2016-09-25 20:05:45 $.
</ADDRESS>

</BODY>
</HTML>
PK粐\(�H�t�t	ChangeLognu�[���2017-11-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* configure.ac: libtiff 4.0.9 released.

	* html/v4.0.9.html: Add HTML file to document changes in libtiff
	v4.0.9.

2017-11-17  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_aux.c, tif_getimage.c, tif_read.c: typo fixes in
	comments.

2017-11-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* test/Makefile.am: Add some tests for tiff2bw.

2017-11-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiff2bw.c (main): Free memory allocated in the tiff2bw
	program.  This is in response to the report associated with
	CVE-2017-16232 but does not solve the extremely high memory usage
	with the associated POC file.

2017-10-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiff2pdf.c (t2p_sample_realize_palette): Fix possible
	arithmetic overflow in bounds checking code and eliminate
	comparison between signed and unsigned type.

	* tools/fax2tiff.c (_FAX_Client_Data): Pass FAX_Client_Data as the
	client data.  This client data is not used at all at the moment,
	but it makes the most sense.  Issue that the value of
	client_data.fd was passed where a pointer is expected was reported
	via email by Gerald Schade on Sun, 29 Oct 2017.

2017-10-23  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_getimage.c: avoid floating point division by zero in
	initCIELabConversion()
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3733
	Credit to OSS Fuzz

2017-10-17  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_jpeg.c: add compatibility with libjpeg-turbo 1.5.2 that
	honours max_memory_to_use > 0.
	Cf https://github.com/libjpeg-turbo/libjpeg-turbo/issues/162

2017-10-10  Even Rouault <even.rouault at spatialys.com>

	* nmake.opt: support a DEBUG=1 option, so as to adjust OPTFLAGS and use
	/MDd runtime in debug mode.

2017-10-01  Even Rouault <even.rouault at spatialys.com>

	* tools/tiffset.c: fix setting a single value for the ExtraSamples tag
	(and other tags with variable number of values).
	So 'tiffset -s ExtraSamples 1 X'. This only worked
	when setting 2 or more values, but not just one.

2017-09-29  Even Rouault <even.rouault at spatialys.com>

	* libtiff/libtiff.def: add TIFFReadRGBAStripExt and TIFFReadRGBATileExt
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2735

2017-09-09  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirread.c: add NULL check to avoid likely false positive
	null-pointer dereference warning by CLang Static Analyzer. 

2017-09-07  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tiffiop.h, tif_aux.c: redirect SeekOK() macro to a _TIFFSeekoK()
	function that checks if the offset is not bigger than INT64_MAX, so as
	to avoid a -1 error return code of TIFFSeekFile() to match a required
	seek to UINT64_MAX/-1.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2726
	Adapted from proposal by Nicolas Ruff.

2017-08-29  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_jpeg.c: accept reading the last strip of a JPEG compressed
	file if the codestream height is larger than the truncated height of the
	strip. Emit a warning in this situation since this is non compliant.

2017-08-28  Even Rouault <even.rouault at spatialys.com>

	* test/Makefile.am: add missing reference to images/quad-lzw-compat.tiff
	to fix "make distcheck". Patch by Roger Leigh

2017-08-23  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirwrite.c: replace assertion to tag value not fitting
	on uint32 when selecting the value of SubIFD tag by runtime check
	(in TIFFWriteDirectoryTagSubifd()).
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2728
	Reported by team OWL337

2017-08-23  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirwrite.c: replace assertion related to not finding the
	SubIFD tag by runtime check (in TIFFWriteDirectorySec())
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2727
	Reported by team OWL337

2017-07-24  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_luv.c: further reduce memory requirements for temporary
	buffer when RowsPerStrip >= image_length in LogLuvInitState() and
	LogL16InitState().
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2700
	Credit to OSS Fuzz

2017-07-24  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_getimage.c: fix fromskew computation when to-be-skipped
	pixel number is not a multiple of the horizontal subsampling, and
	also in some other cases. Impact putcontig8bitYCbCr44tile,
	putcontig8bitYCbCr42tile, putcontig8bitYCbCr41tile,
	putcontig8bitYCbCr21tile and putcontig8bitYCbCr12tile
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2637 (discovered
	by Agostino Sarubbo)
	and https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2691 (credit
	to OSS Fuzz)

2017-07-24  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_getimage.c: gtTileContig() and gtTileSeparate():
	properly break from loops on error when stoponerr is set, instead
	of going on iterating on row based loop.

2017-07-18  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_luv.c: LogLuvInitState(): avoid excessive memory
	allocation when RowsPerStrip tag is missing.
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2683
	Credit to OSS-Fuzz

2017-07-15  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c: add protection against excessive memory
	allocation attempts in TIFFReadDirEntryArray() on short files.
	Effective for mmap'ed case. And non-mmap'ed case, but restricted
	to 64bit builds.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2675

2017-07-15  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c: in TIFFFetchStripThing(), only grow the
	arrays that hold StripOffsets/StripByteCounts, when they are smaller
	than the expected number of striles, up to 1 million striles, and
	error out beyond. Can be tweaked by setting the environment variable
	LIBTIFF_STRILE_ARRAY_MAX_RESIZE_COUNT.
	This partially goes against a change added on 2002-12-17 to accept
	those arrays of wrong sizes, but is needed to avoid denial of services.
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2350
	Credit to OSS Fuzz

2017-07-15  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c: TIFFFillStrip() / TIFFFillTile().
	Complementary fix for http://bugzilla.maptools.org/show_bug.cgi?id=2708
	in the isMapped() case, so as to avoid excessive memory allocation
	when we need a temporary buffer but the file is truncated.

2017-07-15  Even Rouault <even.rouault at spatialys.com>

	* tools/tiff2pdf.c: prevent heap buffer overflow write in "Raw"
	mode on PlanarConfig=Contig input images.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2715
	Reported by team OWL337

2017-07-11  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dir.c: avoid potential null pointer dereference in
	_TIFFVGetField() on corrupted TIFFTAG_NUMBEROFINKS tag instance.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2713

2017-07-11  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_lzw.c: fix potential out-of-buffer read on 1-byte LZW
	strips. Crashing issue only on memory mapped files, where the strip
	offset is the last byte of the file, and the file size is a multiple
	of one page size on the CPU architecture (typically 4096). Credit
	to myself :-)

2017-07-11  Even Rouault <even.rouault at spatialys.com>

	* test/tiffcp-lzw-compat.sh, test/images/quad-lzw-compat.tiff: new files
	to test old-style LZW decompression
	* test/common.sh, Makefile.am, CMakeList.txt: updated with above

2017-07-11  Even Rouault <even.rouault at spatialys.com>

	* refresh autoconf/make stuff with what is on Ubuntu 16.04 (minor changes)

2017-07-11  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_lzw.c: fix 4.0.8 regression in the decoding of old-style LZW
	compressed files.

2017-07-10  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_pixarlog.c: avoid excessive memory allocation on decoding
	when RowsPerStrip tag is not defined (and thus td_rowsperstrip == UINT_MAX)
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2554
	Credit to OSS Fuzz

2017-07-04  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c, tiffiop.h: add a _TIFFReadEncodedTileAndAllocBuffer()
	and _TIFFReadTileAndAllocBuffer() variants of TIFFReadEncodedTile() and
	TIFFReadTile() that allocates the decoded buffer only after a first
	successful TIFFFillTile(). This avoids excessive memory allocation
	on corrupted files.
	* libtiff/tif_getimage.c: use _TIFFReadTileAndAllocBuffer().
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2470
	Credit to OSS Fuzz.

2017-07-04  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_error.c, tif_warning.c: correctly use va_list when both
	an old-style and new-style warning/error handlers are installed.
	Patch by Paavo Helde (sent on the mailing list)

2017-07-02  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c: TIFFStartTile(): set tif_rawcc to
	tif_rawdataloaded when it is set. Similarly to TIFFStartStrip().
	This issue was revealed by the change of 2017-06-30 in TIFFFileTile(),
	limiting the number of bytes read. But it could probably have been hit
	too in CHUNKY_STRIP_READ_SUPPORT mode previously ?
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2454
	Credit to OSS Fuzz

2017-06-30  Even Rouault <even.rouault at spatialys.com>

	* man: update documentation regarding SubIFD tag and
	TIFFSetSubDirectory() data type.
	Patch by Eric Piel
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2671

2017-06-30  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirwrite.c: in TIFFWriteDirectoryTagCheckedXXXX()
	functions associated with LONG8/SLONG8 data type, replace assertion that
	the file is BigTIFF, by a non-fatal error.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2712
	Reported by team OWL337

2017-06-30  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c, tiffiop.h: add a _TIFFReadEncodedStripAndAllocBuffer()
	function, variant of TIFFReadEncodedStrip() that allocates the
	decoded buffer only after a first successful TIFFFillStrip(). This avoids
	excessive memory allocation on corrupted files.
	* libtiff/tif_getimage.c: use _TIFFReadEncodedStripAndAllocBuffer(). 
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2708 and
	https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2433 .
	Credit to OSS Fuzz

2017-06-30  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c: TIFFFillTile(): add limitation to the number
	of bytes read in case td_stripbytecount[strip] is bigger than
	reasonable, so as to avoid excessive memory allocation (similarly to
	what was done for TIFFFileStrip() on 2017-05-10)

2017-06-29  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tiffiop.h, libtiff/tif_jpeg.c, libtiff/tif_jpeg_12.c,
	libtiff/tif_read.c: make TIFFReadScanline() works in
	CHUNKY_STRIP_READ_SUPPORT mode with JPEG stream with multiple scans.
	Also make configurable through a LIBTIFF_JPEG_MAX_ALLOWED_SCAN_NUMBER
	environment variable the maximum number of scans allowed. Defaults to
	100.

2017-06-27  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirread.c: in TIFFReadDirEntryFloat(), check that a
	double value can fit in a float before casting. Patch by Nicolas RUFF

2017-06-26  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_jbig.c: fix memory leak in error code path of JBIGDecode()
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2706
	Reported by team OWL337

2017-06-24  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_jpeg.c: error out at decoding time if anticipated libjpeg
	memory allocation is above 100 MB. libjpeg in case of multiple scans,
	which is allowed even in baseline JPEG, if components are spread over several
	scans and not interleavedin a single one, needs to allocate memory (or
	backing store) for the whole strip/tile.
	See http://www.libjpeg-turbo.org/pmwiki/uploads/About/TwoIssueswiththeJPEGStandard.pdf
	This limitation may be overriden by setting the 
	LIBTIFF_ALLOW_LARGE_LIBJPEG_MEM_ALLOC environment variable, or recompiling
	libtiff with a custom value of TIFF_LIBJPEG_LARGEST_MEM_ALLOC macro.

2017-06-24  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_jpeg.c: add anti-denial of service measure to avoid excessive
	CPU consumption on progressive JPEGs with a huge number of scans.
	See http://www.libjpeg-turbo.org/pmwiki/uploads/About/TwoIssueswiththeJPEGStandard.pdf
	Note: only affects libtiff since 2014-12-29 where support of non-baseline JPEG
	was added.

2017-06-18  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tiffiop.h: add TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW macro to
	disable CLang warnings raised by -fsanitize=undefined,unsigned-integer-overflow
	* libtiff/tif_predict.c: decorate legitimate functions where unsigned int
	overflow occur with TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW
	* libtiff/tif_dirread.c: avoid unsigned int overflow in EstimateStripByteCounts()
	and BYTECOUNTLOOKSBAD when file is too short.
	* libtiff/tif_jpeg.c: avoid (harmless) unsigned int overflow on tiled images.
	* libtiff/tif_fax3.c: avoid unsigned int overflow in Fax3Encode2DRow(). Could
	potentially be a bug with huge rows.
	* libtiff/tif_getimage.c: avoid many (harmless) unsigned int overflows.

2017-06-12  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirread.c: TIFFFetchStripThing(): limit the number of items
	read in StripOffsets/StripByteCounts tags to the number of strips to avoid
	excessive memory allocation.
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2215
	Credit to OSS Fuzz

2017-06-12  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirread.c: fix regression of libtiff 4.0.8 in
	ChopUpSingleUncompressedStrip() regarding update of newly single-strip
	uncompressed files whose bytecount is 0. Before the change of 2016-12-03,
	the condition bytecount==0 used to trigger an early exit/disabling of
	strip chop. Re-introduce that in update mode. Otherwise this cause
	later incorrect setting for the value of StripByCounts/StripOffsets.
	( https://trac.osgeo.org/gdal/ticket/6924 )

2017-06-10  Even Rouault <even.rouault at spatialys.com>

	* .appveyor.yml, .travis.yml, build/travis-ci: apply patches
	0001-ci-Travis-script-improvements.patch and
	0002-ci-Invoke-helper-script-via-shell.patch by Roger Leigh
	(sent to mailing list)

2017-06-08  Even Rouault <even.rouault at spatialys.com>

	* .travis.yml, build/travis-ci: new files from
	0001-ci-Add-Travis-support-for-Linux-builds-with-Autoconf.patch by
	Roger Leigh (sent to mailing list on 2017-06-08)
	This patch adds support for the Travis-CI service.

	* .appveyor.yml: new file from
	0002-ci-Add-AppVeyor-support.patch by Roger Leigh (sent to mailing
	list on 2017-06-08)
	This patch adds a .appveyor.yml file to the top-level.  This allows
	one to opt in to having a branch built on Windows with Cygwin,
	MinGW and MSVC automatically when a branch is pushed to GitHub,
	GitLab, BitBucket or any other supported git hosting service.

	* CMakeLists.txt, test/CMakeLists.txt, test/TiffTestCommon.cmake: apply
	patch 0001-cmake-Improve-Cygwin-and-MingGW-test-support.patch from Roger
	Leigh (sent to mailing list on 2017-06-08)
	This patch makes the CMake build system support running the tests
	with MinGW or Cygwin.

2017-06-08  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_swab.c: if DISABLE_CHECK_TIFFSWABMACROS is defined, do not do
	the #ifdef TIFFSwabXXX checks. Make it easier for GDAL to rename the symbols
	of its internal libtiff copy.

2017-06-01  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirinfo.c, tif_dirread.c: add _TIFFCheckFieldIsValidForCodec(),
	and use it in TIFFReadDirectory() so as to ignore fields whose tag is a
	codec-specified tag but this codec is not enabled. This avoids TIFFGetField()
	to behave differently depending on whether the codec is enabled or not, and
	thus can avoid stack based buffer overflows in a number of TIFF utilities
	such as tiffsplit, tiffcmp, thumbnail, etc.
	Patch derived from 0063-Handle-properly-CODEC-specific-tags.patch
	(http://bugzilla.maptools.org/show_bug.cgi?id=2580) by Raphaël Hertzog.
	Fixes:
	http://bugzilla.maptools.org/show_bug.cgi?id=2580
	http://bugzilla.maptools.org/show_bug.cgi?id=2693
	http://bugzilla.maptools.org/show_bug.cgi?id=2625 (CVE-2016-10095)
	http://bugzilla.maptools.org/show_bug.cgi?id=2564 (CVE-2015-7554)
	http://bugzilla.maptools.org/show_bug.cgi?id=2561 (CVE-2016-5318)
	http://bugzilla.maptools.org/show_bug.cgi?id=2499 (CVE-2014-8128)
	http://bugzilla.maptools.org/show_bug.cgi?id=2441
	http://bugzilla.maptools.org/show_bug.cgi?id=2433

2017-05-29  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_getimage.c: initYCbCrConversion(): stricter validation for
	refBlackWhite coefficients values. To avoid invalid float->int32 conversion
	(when refBlackWhite[0] == 2147483648.f)
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1907
	Credit to OSS Fuzz

2017-05-29  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_color.c: TIFFYCbCrToRGBInit(): stricter clamping to avoid
	int32 overflow in TIFFYCbCrtoRGB().
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1844
	Credit to OSS Fuzz

2017-05-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* configure.ac: libtiff 4.0.8 released.

	* html/v4.0.8.html: Add description of changes targeting the 4.0.8
	release.

2017-05-20 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_getimage.c: initYCbCrConversion(): stricter validation for
	refBlackWhite coefficients values. To avoid invalid float->int32 conversion.
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1718
	Credit to OSS Fuzz

2017-05-18 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_getimage.c: initYCbCrConversion(): check luma[1] is not zero
	to avoid division by zero.
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1665
	Credit to OSS Fuzz

2017-05-17 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c: _TIFFVSetField(): fix outside range cast of double to
	float.
	Credit to Google Autofuzz project

2017-05-17 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_getimage.c: initYCbCrConversion(): add basic validation of
	luma and refBlackWhite coefficients (just check they are not NaN for now),
	to avoid potential float to int overflows.
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1663
	Credit to OSS Fuzz

2017-05-17 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_pixarlog.c: PixarLogDecode(): resync tif_rawcp with
	next_in and tif_rawcc with avail_in at beginning and end of function,
	similarly to what is done in LZWDecode(). Likely needed so that it
	works properly with latest chnges in tif_read.c in CHUNKY_STRIP_READ_SUPPORT
	mode. But untested...

2017-05-17 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_lzw.c: update dec_bitsleft at beginning of LZWDecode(),
	and update tif_rawcc at end of LZWDecode(). This is needed to properly
	work with the latest chnges in tif_read.c in CHUNKY_STRIP_READ_SUPPORT
	mode.

2017-05-14 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_luv.c: LogL16InitState(): avoid excessive memory
	allocation when RowsPerStrip tag is missing.
	Credit to OSS-Fuzz (locally run, on GDAL)

2017-05-14 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_packbits.c: fix out-of-buffer read in PackBitsDecode()
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1563
	Credit to OSS-Fuzz

2017-05-13 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_pixarlog.c, tif_luv.c: avoid potential int32
	overflows in multiply_ms() and add_ms().
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1558
	Credit to OSS-Fuzz

2017-05-13 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_color.c: avoid potential int32 overflow in
	TIFFYCbCrToRGBInit()
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1533
	Credit to OSS-Fuzz

2017-05-13 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c: update tif_rawcc in CHUNKY_STRIP_READ_SUPPORT
	mode with tif_rawdataloaded when calling TIFFStartStrip() or
	TIFFFillStripPartial(). This avoids reading beyond tif_rawdata
	when bytecount > tif_rawdatasize.
	Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1545.
	Credit to OSS-Fuzz

2017-05-12 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c: TIFFFillStripPartial():
	avoid excessive memory allocation in case of shorten files.
	Only effective on 64 bit builds.
	Credit to OSS-Fuzz (locally run, on GDAL)

2017-05-12 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c: TIFFFillStripPartial() / TIFFSeek(),
	avoid potential integer overflows with read_ahead in
	CHUNKY_STRIP_READ_SUPPORT mode. Should
	especially occur on 32 bit platforms.

2017-05-10 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c: TIFFFillStrip() and TIFFFillTile():
	avoid excessive memory allocation in case of shorten files.
	Only effective on 64 bit builds and non-mapped cases.
	Credit to OSS-Fuzz (locally run, on GDAL)

2017-05-10 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_zip.c, tif_pixarlog.c, tif_predict.c: fix memory
	leak when the underlying codec (ZIP, PixarLog) succeeds its
	setupdecode() method, but PredictorSetup fails.
	Credit to OSS-Fuzz (locally run, on GDAL)

2017-05-10 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c: TIFFFillStrip(): add limitation to the number
	of bytes read in case td_stripbytecount[strip] is bigger than
	reasonable, so as to avoid excessive memory allocation.

2017-04-28 Even Rouault <even.rouault at spatialys.com>

	* tools/tiff2bw.c: close TIFF handle in error code path.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2677

2017-04-27 Even Rouault <even.rouault at spatialys.com>

	* litiff/tif_fax3.c: avoid crash in Fax3Close() on empty file.
	Patch by Alan Coopersmith  + complement by myself.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2673
	* tools/fax2tiff.c: emit appropriate message if the input file is
	empty. Patch by Alan Coopersmith.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2672

2017-04-27 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_ojpeg.c: fix potential memory leak in
	OJPEGReadHeaderInfoSecTablesQTable, OJPEGReadHeaderInfoSecTablesDcTable
	and OJPEGReadHeaderInfoSecTablesAcTable
	Patch by Nicolás Peña.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2670

2017-04-27 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirread.c: fix memory leak in non DEFER_STRILE_LOAD
	mode (ie default) when there is both a StripOffsets and
	TileOffsets tag, or a StripByteCounts and TileByteCounts
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2689
	* tools/tiff2ps.c: call TIFFClose() in error code paths.

2017-02-25 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_fax3.c, tif_predict.c, tif_getimage.c: fix GCC 7
	-Wimplicit-fallthrough warnings.

2017-02-18 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_pixarlog.c: fix memory leak in error code path of
	PixarLogSetupDecode(). Patch by Nicolás Peña.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2665

2017-02-18 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_lzw.c: in LZWPostEncode(), increase, if necessary, the
	code bit-width after flushing the remaining code and before emitting
	the EOI code.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=1982

2017-01-31 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_jpeg.c: only run JPEGFixupTagsSubsampling() if the
	YCbCrSubsampling tag is not explicitly present. This helps a bit to reduce
	the I/O amount when te tag is present (especially on cloud hosted files).

2017-01-14 Even Rouault <even.rouault at spatialys.com>

	* tools/raw2tiff.c: avoid integer division by zero.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2631

2017-01-12 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_ojpeg.c: fix leak in OJPEGReadHeaderInfoSecTablesQTable,
	OJPEGReadHeaderInfoSecTablesDcTable and OJPEGReadHeaderInfoSecTablesAcTable
	when read fails.
	Patch by Nicolás Peña.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2659

2017-01-11 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_luv.c, tif_lzw.c, tif_packbits.c: return 0 in Encode
	functions instead of -1 when TIFFFlushData1() fails.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2130

2017-01-11 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcp.c: error out cleanly in cpContig2SeparateByRow and
	cpSeparate2ContigByRow if BitsPerSample != 8 to avoid heap based overflow.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2656 and
	http://bugzilla.maptools.org/show_bug.cgi?id=2657

2017-01-11 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tiffio.h, tif_unix.c, tif_win32.c, tif_vms.c: add _TIFFcalloc()

	* libtiff/tif_read.c: TIFFReadBufferSetup(): use _TIFFcalloc() to zero
	initialize tif_rawdata.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2651

2017-01-11 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_getimage.c: add explicit uint32 cast in putagreytile to
	avoid UndefinedBehaviorSanitizer warning.
	Patch by Nicolás Peña.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2658

2017-01-11 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c: avoid potential undefined behaviour on signed integer
	addition in TIFFReadRawStrip1() in isMapped() case.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2650

2017-01-11 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_jpeg.c: validate BitsPerSample in JPEGSetupEncode() to avoid
	undefined behaviour caused by invalid shift exponent.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2648

2017-01-11 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dir.c, tif_dirread.c, tif_dirwrite.c: implement various clampings
	of double to other data types to avoid undefined behaviour if the output range
	isn't big enough to hold the input value.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2643
	http://bugzilla.maptools.org/show_bug.cgi?id=2642
	http://bugzilla.maptools.org/show_bug.cgi?id=2646
	http://bugzilla.maptools.org/show_bug.cgi?id=2647

2017-01-11 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirread.c: avoid division by floating point 0 in
	TIFFReadDirEntryCheckedRational() and TIFFReadDirEntryCheckedSrational(),
	and return 0 in that case (instead of infinity as before presumably)
	Apparently some sanitizers do not like those divisions by zero.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2644

2017-01-11 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirwrite.c: in TIFFWriteDirectoryTagCheckedRational, replace
	assertion by runtime check to error out if passed value is strictly
	negative.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2535

	* tools/tiffcrop.c: remove extraneous TIFFClose() in error code path, that
	caused double free.
	Related to http://bugzilla.maptools.org/show_bug.cgi?id=2535

2017-01-11 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_jpeg.c: avoid integer division by zero in
	JPEGSetupEncode() when horizontal or vertical sampling is set to 0.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2653

2017-01-03 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_jpeg.c: increase libjpeg max memory usable to
	10 MB instead of libjpeg 1MB default. This helps when creating files
	with "big" tile, without using libjpeg temporary files.
	Related to https://trac.osgeo.org/gdal/ticket/6757

2016-12-20 Even Rouault <even.rouault at spatialys.com>

	* tools/tiff2pdf.c: avoid potential heap-based overflow in
	t2p_readwrite_pdf_image_tile().
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2640

2016-12-20 Even Rouault <even.rouault at spatialys.com>

	* tools/tiff2pdf.c: avoid potential invalid memory read in
	t2p_writeproc.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2639

2016-12-20 Even Rouault <even.rouault at spatialys.com>

	* tools/tiff2pdf.c: fix wrong usage of memcpy() that can trigger
	unspecified behaviour.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2638

2016-12-18 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_getimage.c: fix potential memory leaks in error code
	path of TIFFRGBAImageBegin().
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2627

2016-12-18 Even Rouault <even.rouault at spatialys.com>

	* tools/tiff2pdf.c: prevent heap-based buffer overflow in -j mode
	on a paletted image. Note: this fix errors out before the overflow
	happens. There could probably be a better fix.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2635

2016-12-17 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tiffio.h, libtiff/tif_getimage.c: add TIFFReadRGBAStripExt()
	and TIFFReadRGBATileExt() variants of the functions without ext, with
	an extra argument to control the stop_on_error behaviour.

2016-12-17 Even Rouault <even.rouault at spatialys.com>

	* tools/tiff2ps.c: fix 2 heap-based buffer overflows (in PSDataBW
	and PSDataColorContig). Reported by Agostino Sarubbo.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2633 and
	http://bugzilla.maptools.org/show_bug.cgi?id=2634.

2016-12-13 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_fax3.h: revert change done on 2016-01-09 that made
	Param member of TIFFFaxTabEnt structure a uint16 to reduce size of
	the binary. It happens that the Hylafax software uses the tables that
	follow this typedef (TIFFFaxMainTable, TIFFFaxWhiteTable,
	TIFFFaxBlackTable), although they are not in a public libtiff header.
	Raised by Lee Howard.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2636

2016-12-04 Even Rouault <even.rouault at spatialys.com>

	* html/man/Makefile.am: remove thumbnail.1.html and rgb2ycbcr.1.html
	from installed pages since the corresponding utilities are no longer
	installed. Reported by Havard Eidnes
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2606

2016-12-03 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_write.c: fix misleading indentation as warned by GCC.

2016-12-03 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcp.c: replace assert( (bps % 8) == 0 ) by a non assert check.
	Reported by Agostino Sarubbo.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2605

2016-12-03 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcp.c: fix uint32 underflow/overflow that can cause heap-based
	buffer overflow.
	Reported by Agostino Sarubbo.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2610

2016-12-03 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcp.c: avoid potential division by zero is BitsPerSamples tag is
	missing.
	Reported by Agostino Sarubbo.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2607

2016-12-03 Even Rouault <even.rouault at spatialys.com>

	* man/Makefile.am: remove thumbnail.1 and rgb2ycbcr.1 from installed man
	pages since the corresponding utilities are no longer installed.
	Reported by Havard Eidnes 
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2606

2016-12-03 Even Rouault <even.rouault at spatialys.com>

	* tools/tif_dir.c: when TIFFGetField(, TIFFTAG_NUMBEROFINKS, ) is called,
	limit the return number of inks to SamplesPerPixel, so that code that parses
	ink names doesn't go past the end of the buffer.
	Reported by Agostino Sarubbo.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2599

2016-12-03 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcp.c: avoid potential division by zero is BitsPerSamples tag is
	missing.
	Reported by Agostino Sarubbo.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2597

2016-12-03 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffinfo.c: fix null pointer dereference in -r mode when the image has
	no StripByteCount tag.
	Reported by Agostino Sarubbo.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2594

2016-12-03 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcrop.c: fix integer division by zero when BitsPerSample is missing.
	Reported by Agostino Sarubbo.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2619

2016-12-03 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcrop.c: add 3 extra bytes at end of strip buffer in
	readSeparateStripsIntoBuffer() to avoid read outside of heap allocated buffer.
	Reported by Agostino Sarubbo.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2621

2016-12-03 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcrop.c: fix readContigStripsIntoBuffer() in -i (ignore) mode so
	that the output buffer is correctly incremented to avoid write outside bounds.
	Reported by Agostino Sarubbo.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2620

2016-12-03 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_ojpeg.c: make OJPEGDecode() early exit in case of failure in
	OJPEGPreDecode(). This will avoid a divide by zero, and potential other issues.
	Reported by Agostino Sarubbo.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2611

2016-12-03 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirread.c: modify ChopUpSingleUncompressedStrip() to
	instanciate compute ntrips as TIFFhowmany_32(td->td_imagelength, rowsperstrip),
	instead of a logic based on the total size of data. Which is faulty is
	the total size of data is not sufficient to fill the whole image, and thus
	results in reading outside of the StripByCounts/StripOffsets arrays when
	using TIFFReadScanline().
	Reported by Agostino Sarubbo.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2608.

	* libtiff/tif_strip.c: revert the change in TIFFNumberOfStrips() done
	for http://bugzilla.maptools.org/show_bug.cgi?id=2587 / CVE-2016-9273 since
	the above change is a better fix that makes it unnecessary.

2016-12-03 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_pixarlog.c, libtiff/tif_luv.c: fix heap-based buffer
	overflow on generation of PixarLog / LUV compressed files, with
	ColorMap, TransferFunction attached and nasty plays with bitspersample.
	The fix for LUV has not been tested, but suffers from the same kind
	of issue of PixarLog.
	Reported by Agostino Sarubbo.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2604

2016-12-02 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcp.c: avoid uint32 underflow in cpDecodedStrips that 
	can cause various issues, such as buffer overflows in the library.
	Reported by Agostino Sarubbo.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2598

2016-12-02 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c, libtiff/tiffiop.h: fix uint32 overflow in
	TIFFReadEncodedStrip() that caused an integer division by zero.
	Reported by Agostino Sarubbo.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2596

2016-11-20 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_getimage.c, libtiff/tif_open.c: add parenthesis to
	fix cppcheck clarifyCalculation warnings
	* libtiff/tif_predict.c, libtiff/tif_print.c: fix printf unsigned
	vs signed formatting (cppcheck invalidPrintfArgType_uint warnings)

2016-11-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/fax2tiff.c (main): Applied patch by Jörg Ahrens to fix
	passing client data for Win32 builds using tif_win32.c
	(USE_WIN32_FILEIO defined) for file I/O.  Patch was provided via
	email on November 20, 2016.

2016-11-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff 4.0.7 released.

	* configure.ac: Update for 4.0.7 release.

	* tools/tiffdump.c (ReadDirectory): Remove uint32 cast to
	_TIFFmalloc() argument which resulted in Coverity report.  Added
	more mutiplication overflow checks.

2016-11-18 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcrop.c: Fix memory leak in (recent) error code path.
	Fixes Coverity 1394415.

2016-11-17  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_getimage.c: Fix some benign warnings which appear in
	64-bit compilation under Microsoft Visual Studio of the form
	"Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit
	value.  Results might not be an expected value.".  Problem was
	reported on November 16, 2016 on the tiff mailing list.

2016-11-16 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirread.c: in TIFFFetchNormalTag(), do not dereference
	NULL pointer when values of tags with TIFF_SETGET_C16_ASCII / TIFF_SETGET_C32_ASCII
	access are 0-byte arrays.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2593 (regression introduced
	by previous fix done on 2016-11-11 for CVE-2016-9297).
	Reported by Henri Salo. Assigned as CVE-2016-9448

2016-11-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiffinfo.c (TIFFReadContigTileData): Fix signed/unsigned
	comparison warning.
	(TIFFReadSeparateTileData): Fix signed/unsigned comparison
	warning.

	* tools/tiffcrop.c (readContigTilesIntoBuffer): Fix
	signed/unsigned comparison warning.

	* html/v4.0.7.html: Add a file to document the pending 4.0.7
	release.

2016-11-11 Even Rouault <even.rouault at spatialys.com>

	* tools/tiff2pdf.c: avoid undefined behaviour related to overlapping
	of source and destination buffer in memcpy() call in
	t2p_sample_rgbaa_to_rgb()
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2577

2016-11-11 Even Rouault <even.rouault at spatialys.com>

	* tools/tiff2pdf.c: fix potential integer overflows on 32 bit builds
	in t2p_read_tiff_size()
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2576

2016-11-11 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_aux.c: fix crash in TIFFVGetFieldDefaulted()
	when requesting Predictor tag and that the zip/lzw codec is not
	configured.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2591

2016-11-11 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirread.c: in TIFFFetchNormalTag(), make sure that
	values of tags with TIFF_SETGET_C16_ASCII / TIFF_SETGET_C32_ASCII
	access are null terminated, to avoid potential read outside buffer
	in _TIFFPrintField().
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2590 (CVE-2016-9297)

2016-11-11 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirread.c: reject images with OJPEG compression that
	have no TileOffsets/StripOffsets tag, when OJPEG compression is
	disabled. Prevent null pointer dereference in TIFFReadRawStrip1()
	and other functions that expect td_stripbytecount to be non NULL.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2585

2016-11-11 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcrop.c: fix multiple uint32 overflows in
	writeBufferToSeparateStrips(), writeBufferToContigTiles() and
	writeBufferToSeparateTiles() that could cause heap buffer overflows.
	Reported by Henri Salo from Nixu Corporation.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2592 (CVE-2016-9532)

2016-11-10 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_strip.c: make TIFFNumberOfStrips() return the td->td_nstrips
	value when it is non-zero, instead of recomputing it. This is needed in
	TIFF_STRIPCHOP mode where td_nstrips is modified. Fixes a read outsize of
	array in tiffsplit (or other utilities using TIFFNumberOfStrips()).
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2587 (CVE-2016-9273)

2016-11-04 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_predic.c: fix memory leaks in error code paths added in
	previous commit (fix for MSVR 35105)

2016-10-31 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_predict.h, libtiff/tif_predict.c:
	Replace assertions by runtime checks to avoid assertions in debug mode,
	or buffer overflows in release mode. Can happen when dealing with
	unusual tile size like YCbCr with subsampling. Reported as MSVR 35105
	by Axel Souchet	& Vishal Chauhan from the MSRC Vulnerabilities & Mitigations
	team.

2016-10-26 Even Rouault <even.rouault at spatialys.com>

	* tools/fax2tiff.c: fix segfault when specifying -r without
	argument. Patch by Yuriy M. Kaminskiy.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2572

2016-10-25 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dir.c: discard values of SMinSampleValue and
	SMaxSampleValue when they have been read and the value of
	SamplesPerPixel is changed afterwards (like when reading a
	OJPEG compressed image with a missing SamplesPerPixel tag,
	and whose photometric is RGB or YCbCr, forcing SamplesPerPixel
	being 3). Otherwise when rewriting the directory (for example
	with tiffset, we will expect 3 values whereas the array had been
	allocated with just one), thus causing a out of bound read access.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2500
	(CVE-2014-8127, duplicate: CVE-2016-3658)
	
	* libtiff/tif_dirwrite.c: avoid null pointer dereference on td_stripoffset
	when writing directory, if FIELD_STRIPOFFSETS was artificially set
	for a hack case	in OJPEG case.
	Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2500
	(CVE-2014-8127, duplicate: CVE-2016-3658)

2016-10-25 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffinfo.c: fix out-of-bound read on some tiled images.
	(http://bugzilla.maptools.org/show_bug.cgi?id=2517)

	* libtiff/tif_compress.c: make TIFFNoDecode() return 0 to indicate an
	error and make upper level read routines treat it accordingly.
	(linked to the test case of http://bugzilla.maptools.org/show_bug.cgi?id=2517)

2016-10-14 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcrop.c: fix out-of-bound read of up to 3 bytes in
	readContigTilesIntoBuffer(). Reported as MSVR 35092 by Axel Souchet
	& Vishal Chauhan from the MSRC Vulnerabilities & Mitigations team.

2016-10-09 Even Rouault <even.rouault at spatialys.com>

	* tools/tiff2pdf.c: fix write buffer overflow of 2 bytes on JPEG
	compressed images. Reported by Tyler Bohan of Cisco Talos as
	TALOS-CAN-0187 / CVE-2016-5652.
	Also prevents writing 2 extra uninitialized bytes to the file stream.

2016-10-08 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcp.c: fix out-of-bounds write on tiled images with odd
	tile width vs image width. Reported as MSVR 35103
	by Axel Souchet and Vishal Chauhan from the MSRC Vulnerabilities &
	Mitigations team.

2016-10-08 Even Rouault <even.rouault at spatialys.com>

	* tools/tiff2pdf.c: fix read -largely- outsize of buffer in
	t2p_readwrite_pdf_image_tile(), causing crash, when reading a
	JPEG compressed image with TIFFTAG_JPEGTABLES length being one.
	Reported as MSVR 35101 by Axel Souchet and Vishal Chauhan from
	the MSRC Vulnerabilities & Mitigations team. CVE-2016-9453

2016-10-08 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcp.c: fix read of undefined variable in case of missing
	required tags. Found on test case of MSVR 35100.
	* tools/tiffcrop.c: fix read of undefined buffer in
	readContigStripsIntoBuffer() due to uint16 overflow. Probably not a
	security issue but I can be wrong. Reported as MSVR 35100 by Axel
	Souchet from the MSRC Vulnerabilities & Mitigations team.

2016-09-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* html: Change as many remotesensing.org broken links to a working
	URL as possible.

2016-09-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_getimage.c (TIFFRGBAImageOK): Reject attempts to
	read floating point images.

	* libtiff/tif_predict.c (PredictorSetup): Enforce bits-per-sample
	requirements of floating point predictor (3).  Fixes CVE-2016-3622
	"Divide By Zero in the tiff2rgba tool."

2016-09-23 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcrop.c: fix various out-of-bounds write vulnerabilities
	in heap or stack allocated buffers. Reported as MSVR 35093,
	MSVR 35096 and MSVR 35097. Discovered by Axel Souchet and Vishal
	Chauhan from the MSRC Vulnerabilities & Mitigations team.
	* tools/tiff2pdf.c: fix out-of-bounds write vulnerabilities in
	heap allocate buffer in t2p_process_jpeg_strip(). Reported as MSVR
	35098. Discovered by Axel Souchet and Vishal Chauhan from the MSRC
	Vulnerabilities & Mitigations team.
	* libtiff/tif_pixarlog.c: fix out-of-bounds write vulnerabilities
	in heap allocated buffers. Reported as MSVR 35094. Discovered by
	Axel Souchet and Vishal Chauhan from the MSRC Vulnerabilities &
	Mitigations team.
	* libtiff/tif_write.c: fix issue in error code path of TIFFFlushData1()
	that didn't reset the tif_rawcc and tif_rawcp members. I'm not
	completely sure if that could happen in practice outside of the odd
	behaviour of t2p_seekproc() of tiff2pdf). The report points that a
	better fix could be to check the return value of TIFFFlushData1() in
	places where it isn't done currently, but it seems this patch is enough.
	Reported as MSVR 35095. Discovered by Axel Souchet & Vishal Chauhan &
	Suha Can from the MSRC Vulnerabilities & Mitigations team.

2016-09-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* html/man/index.html: Comment out links to documentation for
	abandoned utilities.

2016-09-17 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_lzma.c: typo fix in comment

2016-09-04 Even Rouault <even.rouault at spatialys.com>

	* libtiff/*.c: fix warnings raised by clang 3.9 -Wcomma

2016-09-03 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirwrite.c, libtiff/tif_color.c: fix warnings raised
	by GCC 5 / clang -Wfloat-conversion

2016-08-16 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcrop.c: fix C99'ism.

2016-08-15 Even Rouault <even.rouault at spatialys.com>

	* tools/tiff2bw.c: fix weight computation that could result of color
	value overflow (no security implication). Fix bugzilla #2550.
	Patch by Frank Freudenberg.

2016-08-15 Even Rouault <even.rouault at spatialys.com>

	* tools/rgb2ycbcr.c: validate values of -v and -h parameters to
	avoid potential divide by zero. Fixes CVE-2016-3623 (bugzilla #2569)

2016-08-15 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcrop.c: Fix out-of-bounds write in loadImage().
	From patch libtiff-CVE-2016-3991.patch from
	libtiff-4.0.3-25.el7_2.src.rpm by Nikola Forro (bugzilla #2543)

2016-08-15 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_pixarlog.c: Fix write buffer overflow in PixarLogEncode
	if more input samples are provided than expected by PixarLogSetupEncode.
	Idea based on libtiff-CVE-2016-3990.patch from
	libtiff-4.0.3-25.el7_2.src.rpm by Nikola Forro, but with different and
	simpler check. (bugzilla #2544)

2016-08-15 Even Rouault <even.rouault at spatialys.com>

	* tools/tiff2rgba.c: Fix integer overflow in size of allocated
	buffer, when -b mode is enabled, that could result in out-of-bounds
	write. Based initially on patch tiff-CVE-2016-3945.patch from
	libtiff-4.0.3-25.el7_2.src.rpm by Nikola Forro, with correction for
	invalid tests that rejected valid files. (bugzilla #2545)

2016-07-11 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffcrop.c: Avoid access outside of stack allocated array
	on a tiled separate TIFF with more than 8 samples per pixel.
	Reported by Kaixiang Zhang of the Cloud Security Team, Qihoo 360
	(CVE-2016-5321 / CVE-2016-5323 , bugzilla #2558 / #2559)

2016-07-10 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c: Fix out-of-bounds read on
	memory-mapped files in TIFFReadRawStrip1() and TIFFReadRawTile1()
	when stripoffset is beyond tmsize_t max value (reported by
	Mathias Svensson)

2016-07-10 Even Rouault <even.rouault at spatialys.com>

	* tools/tiffdump.c: fix a few misaligned 64-bit reads warned
	by -fsanitize

2016-07-03 Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c: make TIFFReadEncodedStrip() and
	TIFFReadEncodedTile() directly use user provided buffer when
	no compression (and other conditions) to save a memcpy().

	* libtiff/tif_write.c: make TIFFWriteEncodedStrip() and
	TIFFWriteEncodedTile() directly use user provided buffer when
	no compression to save a memcpy().

2016-07-01  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_luv.c: validate that for COMPRESSION_SGILOG and
	PHOTOMETRIC_LOGL, there is only one sample per pixel. Avoid
	potential invalid memory write on corrupted/unexpected images when
	using the TIFFRGBAImageBegin() interface (reported by
	Clay Wood)

2016-06-28  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_pixarlog.c: fix potential buffer write overrun in
	PixarLogDecode() on corrupted/unexpected images (reported by Mathias Svensson)
	(CVE-2016-5875)

2016-06-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/libtiff.def: Added _TIFFMultiply32 and _TIFFMultiply64
	to libtiff.def

2016-06-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/Makefile.am: The libtiff tools bmp2tiff, gif2tiff,
	ras2tiff, sgi2tiff, sgisv, and ycbcr are completely removed from
	the distribution.  The libtiff tools rgb2ycbcr and thumbnail are
	only built in the build tree for testing.  Old files are put in
	new 'archive' subdirectory of the source repository, but not in
	distribution archives.  These changes are made in order to lessen
	the maintenance burden.

2016-05-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_config.vc.h (HAVE_SNPRINTF): Add a '1' to the
	HAVE_SNPRINTF definition.'

2016-05-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_config.vc.h (HAVE_SNPRINTF): Applied patch by Edward
	Lam to define HAVE_SNPRINTF for Visual Studio 2015.

2016-04-27  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirread.c: when compiled with DEFER_STRILE_LOAD,
	fix regression, introduced on 2014-12-23, when reading a one-strip
	file without a StripByteCounts tag. GDAL #6490

2016-04-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* html/bugs.html: Replace Andrey Kiselev with Bob Friesenhahn for
	purposes of security issue reporting.

2016-01-23  Even Rouault <even.rouault at spatialys.com>

	* libtiff/*: upstream typo fixes (mostly contributed by Kurt Schwehr)
	coming from GDAL internal libtiff

2016-01-09  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_fax3.h: make Param member of TIFFFaxTabEnt structure
	a uint16 to reduce size of the binary.

2016-01-03  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_read.c, tif_dirread.c: fix indentation issues raised
	by GCC 6 -Wmisleading-indentation

2015-12-27  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_pixarlog.c: avoid zlib error messages to pass a NULL
	string to %s formatter, which is undefined behaviour in sprintf().

2015-12-27  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_next.c: fix potential out-of-bound write in NeXTDecode()
	triggered by http://lcamtuf.coredump.cx/afl/vulns/libtiff5.tif
	(bugzilla #2508)

2015-12-27  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_luv.c: fix potential out-of-bound writes in decode
	functions in non debug builds by replacing assert()s by regular if
	checks (bugzilla #2522).
	Fix potential out-of-bound reads in case of short input data.

2015-12-26  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_getimage.c: fix out-of-bound reads in TIFFRGBAImage
	interface in case of unsupported values of SamplesPerPixel/ExtraSamples
	for LogLUV / CIELab. Add explicit call to TIFFRGBAImageOK() in
	TIFFRGBAImageBegin(). Fix CVE-2015-8665 reported by limingxing and
	CVE-2015-8683 reported by zzf of Alibaba.

2015-12-21  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirread.c: workaround false positive warning of Clang Static
	Analyzer about null pointer dereference in TIFFCheckDirOffset().

2015-12-19  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_fax3.c: remove dead assignment in Fax3PutEOLgdal(). Found
	by Clang Static Analyzer

2015-12-18  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirwrite.c: fix truncation to 32 bit of file offsets in
	TIFFLinkDirectory() and TIFFWriteDirectorySec() when aligning directory
	offsets on a even offset (affects BigTIFF). This was a regression of the
	changeset of 2015-10-19.

2015-12-12  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_write.c: TIFFWriteEncodedStrip() and TIFFWriteEncodedTile()
	should return -1 in case of failure of tif_encodestrip() as documented
	* libtiff/tif_dumpmode.c: DumpModeEncode() should return 0 in case of
	failure so that the above mentionned functions detect the error.

2015-12-06  Even Rouault <even.rouault at spatialys.com>

	* libtiff/uvcode.h: const'ify uv_code array

2015-12-06  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirinfo.c: const'ify tiffFields, exifFields,
	tiffFieldArray and exifFieldArray arrays

2015-12-06  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_print.c: constify photoNames and orientNames arrays

2015-12-06  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_close.c, libtiff/tif_extension.c : rename link
	variable to avoid -Wshadow warnings

2015-11-22  Even Rouault <even.rouault at spatialys.com>

	* libtiff/*.c: fix typos in comments (patch by Kurt Schwehr)
 
2015-11-22  Even Rouault <even.rouault at spatialys.com>

	* libtiff/*.c: fix MSVC warnings related to cast shortening and
	assignment within conditional expression

2015-11-18  Even Rouault <even.rouault at spatialys.com>

	* libtiff/*.c: fix clang -Wshorten-64-to-32 warnings

2015-11-18  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirread.c: initialize double* data at line 3693 to NULL
	to please MSVC 2013

2015-11-17  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirread.c: prevent reading ColorMap or TransferFunction
	if BitsPerPixel > 24, so as to avoid huge memory allocation and file
	read attempts

2015-11-02  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dirread.c: remove duplicated assignment (reported by
	Clang static analyzer)

2015-10-28  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dir.c, libtiff/tif_dirinfo.c, libtiff/tif_compress.c,
	libtiff/tif_jpeg_12.c: suppress warnings about 'no previous
	declaration/prototype'

2015-10-19  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tiffiop.h, libtiff/tif_dirwrite.c: suffix constants by U to fix 
	'warning: negative integer implicitly converted to unsigned type' warning
	(part of -Wconversion)

2015-10-17  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_dir.c, libtiff/tif_dirread.c, libtiff/tif_getimage.c,
	  libtiff/tif_print.c: fix -Wshadow warnings (only in libtiff/)

2015-09-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff 4.0.6 released.

	* html/v4.0.6.html: Added release notes for 4.0.6.

2015-09-06  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiffgt.c: Silence glut API deprecation warnings on MacOS
	X.  Patch by Roger Leigh.

	* Makefile.am: Added a 'coverity' rule to assist with Coverity
	submissions.

	* tools/tiff2pdf.c: Fix compiler warning about unused function
	when JPEG is not available.

	* tools/fax2ps.c (main): Detect failure to write to temporary
	file.

2015-09-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_dirread.c (TIFFReadDirEntryCheckRangeSlongSlong8):
	Change implementation so that it does not sometimes overflow the
	range of a 32-bit int and to avoid a signed vs unsigned compare
	compiler warning.
	(TIFF_INT64_MAX): Avoid use of platform-specific large constants.
	(TIFF_UINT32_MAX): Avoid use of platform-specific large constants.

2015-09-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* Makefile.am (distcheck-hook), configure.ac: Applied patches by
	Roger Leigh (via tiff mailing list on 2015-09-01) to fix issue
	with BSD make and to make use of cmake in 'distcheck' target
	conditional on if cmake is available.

	* CMakeLists.txt, Makefile.am, configure.ac: Applied patches by
	Roger Leigh (via tiff mailing list on 2015-09-01).

	CMake build is now included in 'distcheck' target.

	Builds with CMake 2.8.9 and newer.

	Tar is now resquested to use POSIX PAX format.

2015-08-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* CMakeLists.txt, libtiff/test/Makefile.am: Applied patches by
	Roger Leigh (via tiff mailing list on 2015-08-31.

	CMake reads all version information directly from configure.ac to
	avoid duplication of values.  This basically greps over the file
	for the LIBTIFF_* variables, then translates them to the form
	needed for cmake. This includes the release version and libtool
	shared library version information.

	Make shared/static library building configurable.  Currently it
	always builds shared libraries, with static libs having a _static
	suffix (copying zlib, but it means it's got a non-standard name).
	CMake has a -DBUILD_SHARED_LIBS=ON|OFF option to select one or the
	other, which is now used instead.  There's now a single "tiff"
	target to build either shared or static as required, and all the
	tests and tools are linked with this. Note: the Windows tests fail
	when linked with a static libtiff (says: libtiff.dll not found).
	Not really a regression since this was not tested up to this
	point, and it's likely the unit tests haven't (ever?) been run on
	Windows with a static libtiff, so there's some additional
	portability issue here to address.  Works fine on UNIX systems,
	and fine on Windows with the default to build a DLL.

	Add a missing file which wasn't being distributed, causing unit
	tests to fail.  Note that "find . -name '*.cmake'" lists all the
	CMake files which need distributing in addition to all the
	CMakeLists.txt files (which now are distributed).

2015-08-31  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_predict.c: pedantic change to add explicit masking
	with 0xff before casting to uchar in floating-point horizontal
	differencing and accumulation routines.

2015-08-31  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_predict.c: fix generation of output with 16 bit
	or 32 bit integer, when byte swapping is needed, in
	horizontal predictor (#2521). Also fixes decoding when there is
	a single pixel to code (unlikely case...) and byte swapping is
	involved.

2015-08-30  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_lzw.c: make nextdata a unsigned type to avoid
	undefined behaviour with shifts (gcc -fsanitize=shift)

2015-08-30  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_fax3.c, libtiff/tif_lzw.c, libtiff/tif_predict.c:
	add explicit masking with 0xff before casting
	to unsigned char (make icc -check=conversions happy)

	* libtiff/tif_predict.c: operate on unsigned datatypes when
	computing/applying differences to avoid undefined behaviour of
	signed types (C standard compliance)

2015-08-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* configure.ac: libtiff 4.0.5 released.

2015-08-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* CMakeLists.txt: Applied patch by Roger Leigh (via tiff mailing
	list on 2015-08-29) to add ld-version-script option to cmake build
	to match autoconf.  Note: defaults to 'on' to be ABI-compatible by
	default with common Linux distribution builds.  Note that the
	autoconf configure script defaults to 'off'.

	* html/build.html: Applied patch by Roger Leigh (via tiff mailing
	list on 2015-08-29) to describe how to use CMake to build libtiff.

2015-08-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* html/v4.0.5.html: Added HTML file describing the changes which
	will appear in the 4.0.5 release.

2015-08-23  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tiffiop.h: For MinGW comiles, make sure that build
	supports necessary __MSVCRT_VERSION__ (at least at least 0x800).
	Otherwise large files can not be supported for POSIX-style I/O.

	* tools/fax2tiff.c (main): Eliminate a compiler warning in 64-bit
	builds about cast to thandle_t.

	* test/rewrite_tag.c (main): Does not require any arguments.

2015-08-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/CMakeLists.txt, port/snprintf.c: Patch by Roger Leigh to
	fix build issues when using Cmake due to Windows large file
	changes.

2015-08-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tiffiop.h: First cut at supporting large files under
	Microsoft Windows using tif_unix.c and the libtiff tools.  This
	only works if the Windows CDK is new enough to support the APIs
	used (Visual C++ 2005 or later).  Support for large files is not
	actually tested yet.

2015-08-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_jpeg.c: Applied patch by Räisä Olli to assure that
	client_data is initialized to a known value, and to report an
	error on two memory allocation failures.

2015-08-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* CMakeLists.txt: Applied patch by Roger Leigh to fix libtiffxx
	symbol versioning.  Patch was mailed to libtiff list on Thu, 13
	Aug 2015.

2015-07-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* cmake: Add d suffix to debug libraries with MSVC.  Patch #3 of 3
	by Roger Leigh posted to tiff list on Wed, 1 Jul 2015 15:58:20
	+0100.

	* cmake: Add extra warning flags.  Patch #2 of 3 by Roger Leigh
	posted to tiff list on Wed, 1 Jul 2015 15:58:20 +0100.

	* cmake: Correct snprintf fallback for VS2015.  Patch #1 of 3 by
	Roger Leigh posted to tiff list on Wed, 1 Jul 2015 15:58:20 +0100.

2015-06-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* CMakeLists.txt: Add CMake patchset by Roger Leigh as posted to
	libtiff mailing list on Mon, 22 Jun 2015 21:21:01 +0100. Several
	corrections to ensure that the autotools build still works were
	added by me.  I have not yet tested the build using 'cmake' or
	MSVC with 'nmake'.

2015-06-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* test/Makefile.am: tiff2rgba-quad-tile.jpg.sh depends on the JPEG
	library so only execute if JPEG is available.

	* libtiff 4.0.4 released.

	* configure.ac: Add a HAVE_FOO Automake conditional for each
	add-on library.

	* test/Makefile.am (JPEG_DEPENDENT_CHECK_PROG): raw_decode
	requires JPEG support to compile.  Use Automake conditional to
	only include it when JPEG support is available.

	* html/build.html: Try to improve the nmake-based VC++ build
	description.

	* libtiff/tiffconf.vc.h: Build fixes based on testing.

	* libtiff/tif_config.vc.h: Build fixes based on testing.

	* libtiff/libtiff.def: TIFFRasterScanline does not exist so remove
	export for it.

2015-06-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_config.vc.h: Make adjustments to match the new
	definitions that configure produces, including for WIN64.  Still
	needs to be tested.

	* configure.ac: For 64-bit MinGW, fix SSIZE_FORMAT formatting
	specifier.  64-bit MinGW supports 'long long' but support for
	'lld' is not assured by the run-time DLLs and so GCC warns.
	Add TIFF_SIZE_T and TIFF_SIZE_FORMAT to provide a type definition
	and printf format specifier to deal with printing values of
	'size_t' type.  In particular, this was necessary for WIN64.
	Added a configure test for if the system headers provide 'optarg'
	(normal case) and block out the many explicit 'extern' statements
	in the utilities.  This was found to be necessary under Windows
	when getopt is in a DLL and the symbols are already imported with
	dllimport via standard header files.

	* test/raw_decode.c (XMD_H): Avoid conflicting typedefs for INT32
	and boolean in MinGW build due to including jpeglib.h.

	* test/rewrite_tag.c (main): Fix problem with location of variable
	declaration.

	* libtiff/libtiff.def: Added exports for TIFFGetConfiguredCODECs,
	TIFFReadRGBAImageOriented, TIFFSetCompressionScheme,
	TIFFSwabArrayOfTriples, TIFFVGetFieldDefaulted, _TIFFCheckRealloc,
	TIFFRasterScanline, TIFFSetErrorHandlerExt,
	TIFFSetWarningHandlerExt, TIFFNumberOfDirectories,
	TIFFCreateCustomDirectory, TIFFCreateEXIFDirectory,
	TIFFWriteCustomDirectory, _TIFFRewriteField as recommended by
	Roger Leigh and justified by use in libtiff tests, documentation,
	and changelog notes.  Also sorted symbol list and removed
	duplicate entries.

2015-06-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_getimage.c: Fix four Coverity issues related to
	unintended sign extension.

2015-06-16  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_unix.c: fix compilation with MSVC (fix by Jeff McKenna)

2015-06-14  Lee Howard  <faxguy@howardsilvan.com>

	* libtiff/tif_unix.c: contribution from Vadim Zeitlin on
	Bugzilla Bug #2510 fixes several harmless but still annoying
	warnings

	* configure: contribution from Ludolf Holzheid on Bugzilla
	Bug #2498.  Adds an option to select the file I/O style on
	Windows hosts.

	* libtiff/tif_getimage.c: contribution from Gary Cramblitt
	on Bugzilla Bug #2409.  Correct reading of certain tiled TIFFs.

	* configure, configure.ac: contribution from Marcos H. Woehrmann
	on Bugzilla Bug #2405.  Correct shell equality operator.

	* tools/tiffgt.c (raster_draw): contribution from Jay Berkenbilt
	on Bugzilla Bug #2401.  Appropriately call glFlush().

	* tools/tiff2pdf.c: change ColorTransform from "0" to "1"
	following Bugzilla Bug #2150.

2015-06-13  Lee Howard  <faxguy@howardsilvan.com>

	* libtiff/tif_lzw.c: contribution from Andy Cave - decode
	files that contain consecutive CODE_CLEAR codes.

	* tools/tiff2pdf.c: contribution from Antti S. Lankila on
	Bugzilla Bug #2078. Suppress initial output of the header.

	* tools/tiff2pdf.c: contribution from Yuriy M. Kaminskiy -
	Take care in using the return value from snprintf().

	* tools/tiffcrop.c: contribution from Eduardo Robles Elvira -
	correctly copy the compression tag from the source TIFF.

	* tools/tiff2ps.c: contribution from Eduardo Robles Elvira -
	correct sizing and scaling problems with output document.

2015-06-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_jpeg.c (JPEGDecode): Split JPEGDecode() into two
	clean implementations in order to avoid pre-processor hell.  Only
	one of the implementations is used in a given build.

2015-06-08  Even Rouault <even.rouault at spatialys.com>

	* libtiff/tif_jpeg.c: Fix compilation in BITS_IN_JSAMPLE == 12
	case

2015-06-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_write.c (TIFFWriteEncodedStrip): Fix Coverity 715975
	"Division or modulo by zero".
	(TIFFWriteEncodedTile): Fix Coverity 715976 and 715977 "Division
	or modulo by zero".
	(TIFFWriteRawStrip): Fix Coverity 715978 "Division or modulo by
	zero".
	(TIFFWriteScanline): Fix Coverity 715979 "Division or modulo by
	zero".

	* libtiff/tif_read.c (TIFFStartTile): Fix Coverity 715973 and
	715974 "Division or modulo by zero".

2015-05-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_dir.c (TIFFNumberOfDirectories): Quiet Coverity
	1134470 "Logically dead code" by making the roll-over check
	explicit.

	* libtiff/tif_luv.c (LogLuvDecodeTile): Fix Coverity 991227
	"Division or modulo by zero".
	(LogLuvDecodeStrip): Fix Coverity 991239 "Division or modulo by
	zero".
	(LogLuvEncodeStrip): Fix Coverity 991240 "Division or modulo by
	zero".
	(LogLuvEncodeTile): Fix Coverity 991241 "Division or modulo by
	zero".

	* libtiff/tif_dirread.c (TIFFReadDirEntryDoubleArray): Fix
	Coverity 298626 "Logically dead code".
	(TIFFReadDirEntryFloatArray): Fix Coverity 298627 "Logically dead
	code".
	(TIFFReadDirEntryIfd8Array): Fix Coverity 298628 "Logically dead
	code".
	(TIFFReadDirEntrySlong8Array): Fix Coverity 298629 "Logically dead
	code"

	* libtiff/tif_dir.c (TIFFNumberOfDirectories): Don't depend on ++
	operator precedenc in evaluation.  Might quench Coverity 1134470
	"Logically dead code".

	* libtiff/tif_jpeg.c (JPEGDecode): Fix Coverity 602597 "Operands
	don't affect result".  This change uses ifdefs to include
	applicable code based on properties of libjpeg.  Still needs to be
	re-tested with 12-bit "6b" and "MK1".

2015-05-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_dirwrite.c (_TIFFRewriteField): Fix Coverity 1024310
	"Resource leak".

	* libtiff/tif_ojpeg.c (OJPEGReadHeaderInfoSecStreamDht): Fix
	Coverity 601720 "Resource leak".

	* libtiff/tif_jpeg.c (JPEGCleanup): Fix Coverity 298624
	"Dereference before null check".

	* libtiff/tif_ojpeg.c (OJPEGReadBufferFill): Fix Coverity 603400
	"Missing break in switch".

	* contrib/addtiffo/tif_overview.c (TIFF_DownSample): Check buffer
	size calculation for overflow.

	* contrib/addtiffo/addtiffo.c (main): Possibly address Coverity
	1024226 "Untrusted value as argument".

	* tools/gif2tiff.c (readgifimage): Fix Coverity 1024222 "Untrusted
	value as argument".
	(checksignature): Fix Coverity 1024894 "Ignoring number of bytes
	read".
	(readextension): Fix Coverity 1024893 "Ignoring number of bytes
	read".
	(readgifimage): Fix Coverity 1024890 "Ignoring number of bytes
	read".
	(readraster): Fix Coverity 1024891 "Ignoring number of bytes
	read".
	(readgifimage): Fix Coverity 1024892 "Ignoring number of bytes
	read".

	* tools/tiff2pdf.c (t2p_readwrite_pdf_image): Fix Coverity 1024181
	"Structurally dead code".

	* tools/raw2tiff.c (main): Fix Coverity 1024887 "Unchecked return
	value from library".
	(guessSize): Fix Coverity 1024888 "Unchecked return value from
	library".
	(guessSize): Fix Coverity 1214162 "Ignoring number of bytes read".
	(guessSize): Fix Coverity 1024889 "Unchecked return value from
	library".

	* tools/tiff2pdf.c (t2p_readwrite_pdf_image): Fix Coverity 298621
	"Resource leak".
	(t2p_readwrite_pdf_image): Fix Coverity 1024181 "Structurally dead
	code".
	(t2p_write_pdf): Fix Coverity 1227690 "Unused value".

2015-05-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* contrib/iptcutil/iptcutil.c (formatIPTC): Fix Coverity 1024468
	"Infinite loop".
	(formatIPTC): Fix Coverity 1024727 "Truncated stdio return value".
	(formatIPTC): Fix Coverity 1214240 "Untrusted loop bound".

2015-05-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* contrib/addtiffo/tif_ovrcache.c (TIFFCreateOvrCache): Fix
	Coverity 298615 "Resource leak".
	(TIFFGetOvrBlock): Fix Coverity 1024649 "Unintended sign
	extension".

	* tools/bmp2tiff.c (main): Fix Coverity 1024225 "Untrusted value
	as argument".
	(main): Fix Coverity 1024678 "Unchecked return value from
	library".
	(main): Fix Coverity 1024679 "Unchecked return value from
	library".
	(main): Fix Coverity 1214160 "Ignoring number of bytes read".

	* contrib/addtiffo/tif_ovrcache.c (TIFFCreateOvrCache): Fix
	Coverity 298615 "Resource leak".

	* tools/tiffcp.c: Fix Coverity 1024306, 1024307, 1024308, 1024309
	"Resource leak".

	* tools/tiffsplit.c (cpTiles): Fix Coverity 1024304 "Resource
	leak".
	(cpStrips): Fix Coverity 1024305 "Resource leak".

2015-05-27  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/ras2tiff.c: Fix Sun Raster header definition to be safe
	for 64-bit systems.  Add some header validations.  Should fix many
	Coverity issues.
	(main): Fix Coverity 1301206: "Integer handling issues  (BAD_SHIFT)".
	(main): Quiet Coverity 1024223 "Untrusted value as argument".

	* tools/tiffmedian.c (GetInputLine): Fix Coverity 1024795 "Nesting
	level does not match indentation".
	(get_histogram): Quiet Coverity 1024386 "Out-of-bounds read".
	This was a benign mis-diagnosis but added code to enforce against
	buffer overflow.

	* tools/tiffcrop.c (ROTATE_ANY): Fix Coverity 1294542 "Logical
	vs. bitwise operator".
	(readContigStripsIntoBuffer): Fix Coverity 1024545 "Division or
	modulo by zero".
	(readContigTilesIntoBuffer): Fix Coverity 1024586 "Logically dead
	code".
	(writeSingleSection): Fix Coverity 1024796 "Nesting level does not
	match indentation".
	(writeCroppedImage): Fix Coverity 1024797 "Nesting level does not
	match indentation".
	(loadImage): Fix Coverity 1299741 "Dereference before null check".
	(loadImage): Fix Coverity 1299740 "Out-of-bounds write".

2015-03-02  Even Rouault  <even.rouault@spatialys.com>

	* tools/tiffdither.c: check memory allocations to avoid writing to
	NULL pointer. Also check multiplication overflow. Fixes #2501,
	CVE-2014-8128. Derived from patch by Petr Gajdos.

2015-01-26  Even Rouault  <even.rouault@spatialys.com>

	* add html/v4.0.4beta.html under version control
	* HOWTO-RELEASE: write that cvs add html/vX.X.html must be used

2015-01-26  Even Rouault  <even.rouault@spatialys.com>

	* libtiff 4.0.4beta released

2015-01-26  Even Rouault  <even.rouault@spatialys.com>

	* automake: updated to 1.15
	* libtool: updated to 2.4.5

2015-01-22  Even Rouault  <even.rouault@spatialys.com>

	* tools/tiff2pdf.c: Fix two crashes (oCERT-2014-013)

2015-01-05  Frank Warmerdam  <warmerdam@pobox.com>

	* html/bugs.html: remove note about needing to email the tiff mailing
	list administrator about being approved for membership, this appears
	not to be true.

2015-01-05  Olivier Paquet  <olivier.paquet@gmail.com>

	* tools/tiff2pdf.c: Fixed unsigned integer addition overflow detection.

2015-01-03  Even Rouault  <even.rouault@spatialys.com>

	* libtiff/tif_dirread.c: in TIFFCheckDirOffset(), avoid uint16 overflow
	when reading more than 65535 directories, and effectively error out when
	reaching that limit.

2014-12-29  Even Rouault  <even.rouault@spatialys.com>

	* libtiff/tif_jpeg.c: in JPEGFixupTags(), recognize SOF2, SOF9 and SOF10
	markers to avoid emitting a warning (even if, according to the TechNote,
	there are admitedly unusual/not recommended or even forbidden variants, but
	they do work well with libjpeg for SOF2, and with libjpeg-turbo for SOF2,
	SOF9 and SOF10).
	Define in_color_space and input_components to the right values in
	JPEGSetupEncode(), before calling jpeg_set_defaults(), as specified by
	libjpeg API documentation, so as to be compatible with mozjpeg library.
	Note: the default settings of mozjpeg will produce progressive scans, which
	is forbidden by the TechNote.

2014-12-29  Even Rouault  <even.rouault@spatialys.com>

	* libtiff/tif_getimage.c: move test on vertical value of YCbCr subsampling.
	to avoid buffer leak (fix previous fix, found by Coverity scan)

2014-12-29  Even Rouault  <even.rouault@spatialys.com>

	* libtiff/tif_next.c: add new tests to check that we don't read outside of
	the compressed input stream buffer.

	* libtiff/tif_getimage.c: in OJPEG case, fix checks on strile width/height
    in the putcontig8bitYCbCr42tile, putcontig8bitYCbCr41tile and
    putcontig8bitYCbCr21tile cases.

2014-12-27  Even Rouault  <even.rouault@spatialys.com>

	* libtiff/tif_dir.c: in TIFFDefaultDirectory(), reset any already existing
	extented tags installed by user code through the extender mechaninm before
	calling the extender callback (GDAL #5054)

2014-12-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiffcrop.c: Fix warnings about variables set but not used.

	* contrib/iptcutil/iptcutil.c: Fix warnings about variables set
	but not used.

	* tools/tiffgt.c: Fix warnings about unused parameters.

	* libtiff/tif_stream.cxx: Fix warnings about unused parameters.

2014-12-25  Even Rouault  <even.rouault@spatialys.com>

	* libtiff/tif_getimage.c, libtiff/tif_ojpeg.c, libtiff/tif_zip.c: fix
	various typos found by Debian lintian tool (GDAL #5756)

2014-12-24  Even Rouault  <even.rouault@spatialys.com>

	* libtiff/tif_getimage.c: avoid divide by zero on invalid YCbCr subsampling.
	http://bugzilla.maptools.org/show_bug.cgi?id=2235

2014-12-24  Even Rouault  <even.rouault@spatialys.com>

	* tools/tiff2pdf.c: fix buffer overflow on some YCbCr JPEG compressed images.
	http://bugzilla.maptools.org/show_bug.cgi?id=2445

2014-12-24  Even Rouault  <even.rouault@spatialys.com>

	* tools/tiff2pdf.c: fix buffer overflow on YCbCr JPEG compressed image.
	Derived from patch by Petr Gajdos,
	http://bugzilla.maptools.org/show_bug.cgi?id=2443

2014-12-23  Even Rouault  <even.rouault@spatialys.com>

	* libtiff/tif_dirread.c: In EstimateStripByteCounts(), check return code
	of _TIFFFillStriles(). This solves crashing bug on corrupted
	images generated by afl.

2014-12-23  Even Rouault  <even.rouault@spatialys.com>

	* libtiff/tif_read.c: fix several invalid comparisons of a uint64 value with
	<= 0 by casting it to int64 first. This solves crashing bug on corrupted
	images generated by afl.

2014-12-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiffdump.c: Guard against arithmetic overflow when
	calculating allocation buffer sizes.

2014-12-21  Even Rouault  <even.rouault@spatialys.com>

	* tools/tiff2bw.c: when Photometric=RGB, the utility only works if
	SamplesPerPixel = 3. Enforce that
	http://bugzilla.maptools.org/show_bug.cgi?id=2485 (CVE-2014-8127)

2014-12-21  Even Rouault  <even.rouault@spatialys.com>

	* tools/pal2rgb.c, tools/thumbnail.c: fix crash by disabling TIFFTAG_INKNAMES
	copying. The right fix would be to properly copy it, but not worth the burden
	for those esoteric utilities.
	http://bugzilla.maptools.org/show_bug.cgi?id=2484 (CVE-2014-8127)

2014-12-21  Even Rouault  <even.rouault@spatialys.com>

	* tools/thumbnail.c: fix out-of-buffer write
	http://bugzilla.maptools.org/show_bug.cgi?id=2489 (CVE-2014-8128)

2014-12-21  Even Rouault  <even.rouault@spatialys.com>

	* tools/thumbnail.c, tools/tiffcmp.c: only read/write TIFFTAG_GROUP3OPTIONS
	or TIFFTAG_GROUP4OPTIONS if compression is COMPRESSION_CCITTFAX3 or
	COMPRESSION_CCITTFAX4
	http://bugzilla.maptools.org/show_bug.cgi?id=2493 (CVE-2014-8128)

2014-12-21  Even Rouault  <even.rouault@spatialys.com>

	* libtiff/tif_next.c: check that BitsPerSample = 2. Fixes
	http://bugzilla.maptools.org/show_bug.cgi?id=2487 (CVE-2014-8129)

2014-12-21  Even Rouault  <even.rouault@spatialys.com>

	* tools/tiff2pdf.c: check return code of TIFFGetField() when reading
	TIFFTAG_SAMPLESPERPIXEL

2014-12-21  Even Rouault  <even.rouault@spatialys.com>

	* tools/tiffcp.c: fix crash when converting YCbCr JPEG-compressed to none.
	Based on patch by Tomasz Buchert (http://bugzilla.maptools.org/show_bug.cgi?id=2480)
	Description: fix for Debian bug #741451
	tiffcp crashes when converting JPEG-encoded TIFF to a different
	encoding (like none or lzw). For example this will probably fail:
	tiffcp -c none jpeg_encoded_file.tif output.tif
	The reason is that when the input file contains JPEG data,
	the tiffcp code forces conversion to RGB space. However,
	the output normally inherits YCbCr subsampling parameters
	from the input, which leads to a smaller working buffer
	than necessary. The buffer is subsequently overrun inside
	cpStripToTile() (called from writeBufferToContigTiles).
	Note that the resulting TIFF file would be scrambled even
	if tiffcp wouldn't crash, since the output file would contain
	RGB data intepreted as subsampled YCbCr values.
	This patch fixes the problem by forcing RGB space on the output
	TIF if the input is JPEG-encoded and output is *not* JPEG-encoded.
	Author: Tomasz Buchert <tomasz.buchert@inria.fr>

2014-12-21  Even Rouault  <even.rouault@spatialys.com>

	Fix various crasher bugs on fuzzed images.
	* libtiff/tif_dir.c: TIFFSetField(): refuse to set negative values for
	TIFFTAG_XRESOLUTION and TIFFTAG_YRESOLUTION that cause asserts when writing
	the directory
	* libtiff/tif_dirread.c: TIFFReadDirectory(): refuse to read ColorMap or
	TransferFunction if BitsPerSample has not yet been read, otherwise reading
	it later will cause user code to crash if BitsPerSample > 1
	* libtiff/tif_getimage.c: TIFFRGBAImageOK(): return FALSE if LOGLUV with
	SamplesPerPixel != 3, or if CIELAB with SamplesPerPixel != 3 or BitsPerSample != 8
	* libtiff/tif_next.c: in the "run mode", use tilewidth for tiled images
	instead of imagewidth to avoid crash
	* tools/bmp2tiff.c: fix crash due to int overflow related to input BMP dimensions
	* tools/tiff2pdf.c: fix crash due to invalid tile count (should likely be checked by
	libtiff too). Detect invalid settings of BitsPerSample/SamplesPerPixel for CIELAB / ITULAB
	* tools/tiffcrop.c: fix crash due to invalid TileWidth/TileHeight
	* tools/tiffdump.c: fix crash due to overflow of entry count.

2014-12-15  Even Rouault  <even.rouault@spatialys.com>

	* libtiff/tif_jpeg.c: Fix regression introduced on 2010-05-07 that caused
	all tiles/strips to include quantization tables even when the jpegtablesmode
	had the JPEGTABLESMODE_QUANT bit set.
	Also add explicit removal of Huffman tables when jpegtablesmode has the
	JPEGTABLESMODE_HUFF bit set, which avoids Huffman tables to be emitted in the
	first tile/strip (only useful in update scenarios. create-only was
	fine)

2014-12-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiff2pdf.c: Assure that memory size calculations for
	_TIFFmalloc() do not overflow the range of tmsize_t.

2014-12-07  Even Rouault  <even.rouault@spatialys.com>

	* tools/thumbnail.c, tools/tiffcrop.c: "fix" heap read over-run found with
	Valgrind and Address Sanitizer on test suite

2014-12-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiff2pdf.c (t2p_read_tiff_init): TIFFTAG_TRANSFERFUNCTION
	tag can return one channel, with the other two channels set to
	NULL.  The tiff2pdf code was expecting that other two channels
	were duplicate pointers in the case where there is only one
	channel.  Detect this condition in order to avoid a crash, and
	presumably perform correctly with just one channel.

2014-12-06  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiffdump.c: Fix double-free bug.

2014-11-27  Even Rouault  <even.rouault@spatialys.com>

	* libtiff/tif_config.vc.h: no longer use "#define snprintf _snprintf" with
	Visual Studio 2015 aka VC 14 aka MSVC 1900

2014-11-20  Even Rouault  <even.rouault@spatialys.com>

	* libtiff/tif_lzw.c: prevent potential null dereference of
	sp->dec_codetab in LZWPreDecode (bug #2459)

	* libtiff/tif_read.c: in TIFFReadBufferSetup(), avoid passing -1 size
	to TIFFmalloc() if passed user buffer size is 0 (bug #2459)

	* libtiff/tif_ojpeg.c: make Coverity happier (not a bug, #2459)

	* libtiff/tif_dir.c: in _TIFFVGetField() and _TIFFVSetField(), make
	Coverity happier (not a bug, #2459)

	* libtiff/tif_dirread.c: in TIFFFetchNormalTag(), make Coverity happier
	(not a bug, #2459)

	* tools/tiff2pdf.c: close PDF file (bug #2479)

	* tools/fax2ps.c: check malloc()/realloc() result (bug #2470)

	* tools/tiffdump.c: detect cycle in TIFF directory chaining (bug #2463)
	and avoid passing a NULL pointer to read() if seek() failed before (bug #2459)

	* tools/tiffcrop.c: fix segfault if bad value passed to -Z option
	(bug #2459) and add missing va_end in dump_info (#2459)

	* tools/gif2tif.c: apply patch for CVE-2013-4243 (#2451)

2014-11-20  Even Rouault  <even.rouault@spatialys.com>
	* libtiff/tif_jpeg.c: fix segfault in JPEGFixupTagsSubsampling() on
	corrupted image where tif->tif_dir.td_stripoffset == NULL (bug #2471)

2014-11-20  Even Rouault  <even.rouault@spatialys.com>
	* automake: updated to 1.14.1
	* libtool: updated to 2.4.3
	* HOWTO-RELEASE: small update about autotools building order

2014-10-20  Olivier Paquet  <olivier.paquet@gmail.com>
	* tools/tiff2pdf.c: Preserve input file directory order when pages
	are tagged with the same page number.

2014-08-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_dirread.c (TIFFReadDirEntryOutputErr): Incorrect
	count for tag should be a warning rather than an error since
	errors terminate processing.

2014-06-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiff2rgba.c (]): Fixed tiff2rgba usage message in that zip
	was wrongly described.  Fix suggested by Miguel Medalha.

2014-05-06  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_dirinfo.c (TIFFField) : Fix data type for
	TIFFTAG_GLOBALPARAMETERSIFD tag.  Patch by Steve Underwood.
	Reviewed and forwarded by Lee Howard.

2013-11-30  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dir.c: fix last fix for TIFFNumberOfDirectories()

2013-10-21  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dir.c: generate error in case of directory count
	overflow.

2013-10-01  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tiff.h, libtiff/tif_dirinfo.c: add definitions for
	TIFF/EP CFARepeatPatternDim and CFAPattern tags (bug #2457)

2013-09-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_dir.c (TIFFAdvanceDirectory): If nextdir is found to
	be defective, then set it to zero before returning error in order
	to terminate processing of truncated TIFF.  Issue found and fix
	suggested by Richard Nolde.

2013-08-14  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/gif2tiff.c: fix possible OOB write (#2452, CVE-2013-4244)

2013-08-13  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/gif2tiff.c: Be more careful about corrupt or
	hostile input files (#2450, CVE-2013-4231)

	* tools/tiff2pdf.c: terminate after failure of allocating
	ycbcr buffer (bug #2449, CVE-2013-4232)

2013-07-09  Frank Warmerdam  <warmerdam@google.com>

	* tools/tiffinfo.c: Default various values fetched with
	TIFFGetField() to avoid being uninitialized.

2013-05-02  Tom Lane  <tgl@sss.pgh.pa.us>

	* tools/tiff2pdf.c: Rewrite JPEG marker parsing in
	t2p_process_jpeg_strip to be at least marginally competent.  The
	approach is still fundamentally flawed, but at least now it won't
	stomp all over memory when given bogus input.  Fixes CVE-2013-1960.

2013-05-02  Tom Lane  <tgl@sss.pgh.pa.us>

	* contrib/dbs/xtiff/xtiff.c, libtiff/tif_codec.c,
 	libtiff/tif_dirinfo.c, tools/rgb2ycbcr.c, tools/tiff2bw.c,
 	tools/tiff2pdf.c, tools/tiff2ps.c, tools/tiffcrop.c,
 	tools/tiffdither.c: Enlarge some fixed-size buffers that weren't
 	large enough, and eliminate substantially all uses of sprintf(buf,
 	...)  in favor of using snprintf(buf, sizeof(buf), ...), so as to
 	protect against overflow of fixed-size buffers.  This responds in
 	particular to CVE-2013-1961 concerning overflow in tiff2pdf.c's
 	t2p_write_pdf_page(), but in general it seems like a good idea to
 	deprecate use of sprintf().

2013-03-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* configure.ac: Applied patch by Brad Smith to improve pkg-config
	static linking by adding -lm to Libs.private when needed.

2013-03-05  Tom Lane  <tgl@sss.pgh.pa.us>

	* html/man/tiff2ps.1.html, html/man/tiffcp.1.html,
 	html/man/tiffdither.1.html, man/tiff2ps.1, man/tiffcp.1,
 	man/tiffdither.1, tools/tiff2ps.c, tools/tiffcp.c,
 	tools/tiffdither.c: Sync tool usage printouts and man pages with
 	reality (quite a few options had escaped being documented in one
 	or both places).  Per an old report from Miroslav Vadkerti.

2013-01-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiff2ps.c:Fix bug in auto rotate option code. Once a
	rotation angle was set by the auto rotate check, it was retained
	for all pages that followed instead ofa being retested for each
	page.  Patch by Richard Nolde.

2013-01-18  Frank Warmerdam  <warmerdam@google.com>

	* libtiff/tif_write.c: tmsize_t related casting warning fixed for
	64bit linux.

	* libtiff/tif_read.c: uint64/tmsize_t change for MSVC warnings.
	http://bugzilla.maptools.org/show_bug.cgi?id=2427

2012-12-20  Tom Lane  <tgl@sss.pgh.pa.us>

	* test/raw_decode.c: Relax raw_decode's pixel-value checks so that
	it will pass with more versions of libjpeg.  (There are at least
	three in active use now, and JPEG_LIB_VERSION doesn't tell us
	enough to uniquely identify expected results.)

2012-12-12  Tom Lane  <tgl@sss.pgh.pa.us>

	* libtiff/tif_print.c: Fix TIFFPrintDirectory's handling of
	field_passcount fields: it had the TIFF_VARIABLE and
	TIFF_VARIABLE2 cases backwards.

2012-12-10  Tom Lane  <tgl@sss.pgh.pa.us>

	* tools/ppm2tiff.c: Improve previous patch for CVE-2012-4564:
 	check the linebytes calculation too, get the max() calculation
 	straight, avoid redundant error messages, check for malloc
 	failure.

2012-12-10  Tom Lane  <tgl@sss.pgh.pa.us>

	* libtiff/tif_pixarlog.c: Improve previous patch for CVE-2012-4447
 	(to enlarge tbuf for possible partial stride at end) so that
 	overflow in the integer addition is detected.  Per gripe from
 	Huzaifa Sidhpurwala.

2012-12-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiffset.c: tiffset now supports a -u option to unset a
	tag.  Patch by Zach Baker. See
	http://bugzilla.maptools.org/show_bug.cgi?id=2419

2012-11-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* automake: Update Automake to 1.12.5 release.

	* libtiff/tif_{unix,vms,win32}.c (_TIFFmalloc): ANSI C does not
	require malloc() to return NULL pointer if requested allocation
	size is zero.  Assure that _TIFFmalloc does.

2012-11-01  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/ppm2tiff.c: avoid zero size buffer vulnerability.
	CVE-2012-4564 - Thanks to Huzaifa Sidhpurwala of the
	Red Hat Security Response team for the fix.

2012-10-18  Frank Warmerdam  <warmerdam@google.com>

	* tif_zip.c: Avoid crash on NULL error messages.

2012-09-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff 4.0.3 released.

2012-09-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* Makefile.am: Update to Automake 1.12.4

2012-08-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* Makefile.in: Update to Automake 1.12.3

	* libtiff{tiff.h, tif_print.c, tif_dirinfo.c, tif_dirread.c}: Add
	some TIFF/FX support in libtiff.  Add the tag definitions to
	tiff.h.  Add the related TIFF field definitions to tif_dirinfo.c,
	and also fixes an error in a comment.  Adds the photometric values
	to tif_print.c, and fixes a bug.  These changes are by Steve
	Underwood.

2012-08-13  Frank Warmerdam  <warmerdam@google.com>

	* libtiff/tif_write.c: Fix bug rewriting image tiles in a
	compressed file: http://trac.osgeo.org/gdal/ticket/4771

2012-08-02  Frank Warmerdam  <warmerdam@google.com>

	* libtiff/tif_dirread.c: report error in case of mismatch value
	counts for tags (ie. DotRange).

2012-07-26  Tom Lane  <tgl@sss.pgh.pa.us>

	* libtiff/{tiffio.h, tif_dirinfo.c, libtiff.def}: Add six new
 	functions TIFFFieldTag(), TIFFFieldName(), TIFFFieldDataType(),
	TIFFFieldPassCount(), TIFFFieldReadCount(), TIFFFieldWriteCount()
	as external accessors for the opaque type TIFFField.

	* tools/tiffset.c: Make tiffset use the above functions instead of
	relying on library private headers.

2012-07-19  Tom Lane  <tgl@sss.pgh.pa.us>

	* tools/tiff2pdf.c: Fix two places where t2p_error didn't get set
	after a malloc failure.  No crash risk AFAICS, but the program
	might not report exit code 1 as desired.  h/t mancha@mac.hush.com

2012-07-18  Tom Lane  <tgl@sss.pgh.pa.us>

	* tools/tiff2pdf.c: Fail when TIFFSetDirectory() fails.  This
	prevents core dumps or perhaps even arbitrary code execution when
	processing a corrupt input file (CVE-2012-3401).

2012-07-06  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* test/raw_decode.c (main): Test fixes to work with IJG JPEG 7+.
	IJG JPEG 7+ uses a different upsampling algorithm which produces
	different numeric results.

	* libtiff/tif_jpeg.c (JPEGPreDecode): Patch from Even Rouault to
	work with IJG JPEG 7+.

2012-07-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* test/raw_decode.c: Add changes so that test can run with build
	directory outside of source directory.

2012-07-02  Frank Warmerdam  <warmerdam@google.com>

	* libtiff/tif_jpeg.c: Fix handling when writing RGBA jpeg compressed
	imagery (http://trac.osgeo.org/gdal/ticket/4732)

2012-06-20  Frank Warmerdam  <warmerdam@google.com>

	* libtiff/tif_fax3.c: fix memory initialization of runs, only
	partly done.

	* libtiff/tif_pixarlog.c: Make sure tbuf is large enough for one
	full "stride" past the end.

2012-06-19  Frank Warmerdam  <warmerdam@google.com>

	* libtiff/tif_packbits.c: fix read past end of data buffer.

2012-06-15  Frank Warmerdam  <warmerdam@google.com>

	*  libtiff 4.0.2 released.

	* tools/tif2pdf.c, tools/tifdump.c: avoid unitialized variable
	warnings with clang.

2012-06-15  Tom Lane  <tgl@sss.pgh.pa.us>

	* tools/tiff2pdf.c: Defend against integer overflows while
	calculating required buffer sizes (CVE-2012-2113).

2012-06-12  Frank Warmerdam  <warmerdam@google.com>

	* libtiff/tif_print.c: Be careful about printing corrupt inknames.

	* libtiff/tif_fax3.c: Ensure runs array is initialized to zeros.

2012-06-07  Frank Warmerdam  <warmerdam@google.com>

	* libtiff/tif_print.c: avoid pretty printing other fields when
	we don't have the proper amount and type of data or if the field
	is actually autodefined.

2012-06-05  Frank Warmerdam  <warmerdam@google.com>

	* libtiff/tif_tile.c, libtiff/tif_strip.c: Ensure that illegal
	ycbcrsubsampling values result in a runtime error, not just an
	assertion.

	* tests/custom_dir.c: Add testing of EXIF and custom directory
	reading and writing.

	* libtiff/tif_dir.c, libtiff/tiffio.h: Add TIFFCreateCustomDirectory()
	and TIFFCreateEXIFDirectory() functions.

	* libtiff/tif_dir.c, tif_print.c : Remove FIELD_CUSTOM handling for
	PAGENUMBER, HALFTONEHINTS, and YCBCRSUBSAMPLING.  Implement DOTRANGE
	differently.  This is to avoid using special TIFFGetField/TIFFSetField
	rules for these fields in non-image directories (like EXIF).

2012-06-04  Frank Warmerdam  <warmerdam@google.com>

	* libtiff/tif_jpeg.c: Remove code for fixing up h_sampling and v_sampling
	in JPEGPreDecode().  If a fixup will be done it needs to be done sooner
	in JPEGFixupTagsSubsampling() or else buffer sized may be wrong.

2012-06-01  Frank Warmerdam  <warmerdam@google.com>

	* tools/tiffinfo.c: Do not try to read image data in EXIF directories.

	* libtiff/tif_getimage.c: added support for _SEPARATED CMYK images.
	http://bugzilla.maptools.org/show_bug.cgi?id=2379

	* libtiff/tif_unix.c: use strerror() to return a more specific error message
	on failed open.
	http://bugzilla.maptools.org/show_bug.cgi?id=2341

	* libtiff/tif_jpeg.c: Fix JPEGDecodeRaw() bugs.
	http://bugzilla.maptools.org/show_bug.cgi?id=2386

	* tests/decode_raw.c, tests/images/quad-tile.jpg.tiff: add limited support
	for testing jpeg in tiff image decoding including the "raw" decode interface.

2012-05-31  Frank Warmerdam  <warmerdam@google.com>

	* libtiff/tif_jpeg.c: avoid overrunning the end of the output buffer in
	JPEGDecodeRaw() - mostly likely to occur when there is confusion about
	sampling values.

	* libtiff/tif_read.c: Make sure tif_rawdatasize is cleared when tif_rawdata is freed.

	* libtiff/tif_getimage.c: Add support for greyscale+alpha c/o Jérémie Laval.
	http://bugzilla.maptools.org/show_bug.cgi?id=2398

2012-05-29  Frank Warmerdam  <warmerdam@google.com>

	* libtiff/tif_dir.c: avoid using specific set/get logic to process fields in custom directories,
	like EXIF directories.  This fixes problems like a tag "320" existing in a custom directory getting
	processed as if it were a colormap when it isn't really.  Damn the wide variety of argument formulations
	to get/set functions for different tags!

	* libtiff/tif_dir.c: Ensure that we keep track of when tif_rawdata
	is a pointer into an mmap()ed file via TIFF_BUFFERMMAP flag.

2012-05-24  Frank Warmerdam  <warmerdam@google.com>

	* libtiff/tif_pixarlog.c: Allocate working buffer one word larger since we "forward
	accumulate" and overwrite the end by one word in at least some cases.

2012-05-23  Frank Warmerdam  <warmerdam@google.com>

	* libtiff/tif_pixarlog.c: avoid accessing out of the lookup arrays for out of range inputs.

	* tools/tiffinfo.c: initialize h=0 to avoid undefined variable for degenerate files.

	* libtiff/tif_ojpeg.c: if OJPEGWriteHeader() fails once do not bother trying again on
	the same image.

	* libtiff/tif_ojpeg.c: make things more resilient in the face of files without
	stripbytecounts or stripoffsets or where loading these fails.

	* libtiff/tif_print.c: be careful about whether min/max values are singular
	or one per sample.

	* libtiff/tif_print.c: Avoid confusion about count size when printing custom fields.
	May affect things like ISOSpeedRatings.

	* libtiff/tif_dir.c: avoid one byte past end of ink names reading
	in some cases.

2012-05-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* man/TIFFGetField.3tiff: Correct the 'count' field type in the
	example for how to retreive the value of unsupported tags.

2012-03-30  Frank Warmerdam  <warmerdam@google.com>

	* tif_getimage.c: Fix size overflow (zdi-can-1221,CVE-2012-1173)
	care of Tom Lane @ Red Hat.

2012-02-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff 4.0.1 released.

	* Update automake used to 1.11.3.

	* libtiff/tiffio.h: Use double-underbar syntax in GCC printf
	attribute specification to lessen the risk of accidental macro
	substitution.  Patch from Vincent Torri.

2012-01-31  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dir.c, libtiff/tif_dirread.c: Extra caution around
	assumption tag fetching is always successful.

	* libtiff/tif_jpeg.c: Extra caution for case where sp is NULL.

2012-01-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* configure.ac: Add support for using library symbol versioning on
	ELF systems with the GNU linker.  Support is enabled via
	--enable-ld-version-script.  Disabled by default for now until
	there is a decision for how to deploy a libtiff with versioned
	symbols after libtiff 4.0.0 was already released.

2011-12-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_win32.c: Eliminate some minor 64-bit warnings in

	tif_win32.c.  Patch by Edward Lam.

	* configure.ac: Add libtiff private dependency on -llzma for
	pkg-config.  Patch by Mark Brand.
	Updated Automake to 1.11.2.

2011-12-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff 4.0.0 released.

2011-12-08  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirread.c, libtiff/tif_read.c: more cautious checking
	of _TIFFFillStriles() results (#gdal 4372)

2011-12-07  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirread.c: fixes to deal with invalid files where
	_TIFFFillStriles() fails, and we try to chop up strips (gdal #4372)

	* libtiff/tif_dirread.c: fix error reporting when there is no
	tag information struct and name (gdal #4373)

2011-10-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* Update GNU libtool to 2.4.2.

	* tools/tiffsplit.c (tiffcp): TIFFGetField count field should be
	uint32 type for TIFFTAG_JPEGTABLES.  Patch by Christophe
	Deroulers.

2011-06-21  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/libtiff.def: Restore TIFFMergeFieldInfo.

2011-05-31  Jim Meyering  <meyering@redhat.com>

	* libtiff/tif_dirread.c (TIFFFetchStripThing): Free "data" also
	upon failure to allocate "resizeddata".
	* tools/tiff2ps.c (PSDataBW): Zero buffer *after* checking for
	allocation failure, not before.
	* libtiff/tif_ojpeg.c: plug leaks on OJPEG read failure path
	* tools/rgb2ycbcr.c (cvtRaster): unchecked malloc
	* libtiff/tif_jpeg.c, tools/tiff2pdf.c, tools/tiff2ps.c: mark
	NULL-deref and possible overflow
	* tools/tiff2pdf.c: remove decl+set of set-but-not-used local, "written"
	* libtiff/tif_jpeg.c (JPEGInitializeLibJPEG): Remove declaration
	and set of otherwise unused local, data_is_empty.
	* libtiff/tif_jpeg.c (JPEGDecodeRaw) [JPEG_LIB_MK1_OR_12BIT]:
	Diagnose out-of-memory failure and return 0 rather than
	dereferencing NULL.

2011-05-24  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirread.c: produce special error message for zero tag
	directories instead of error out on the malloc(0) failure.

2011-05-16  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirinfo.c: Restore TIFFMergeFieldInfo() and
	related declarations as they are in active use by libraries
	such as libgeotiff, and work just fine.  (#2315)

2011-04-20  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirinfo.c,tiffio.h: Remove the obsolete
	TIFFMergeFieldInfo/TIFFFindFieldInfo/TIFFFindFieldInfoByName API.
	http://bugzilla.maptools.org/show_bug.cgi?id=2315

	* libtiff/libtiff.def: add some missing (64bit) APIs.
	http://bugzilla.maptools.org/show_bug.cgi?id=2316

2011-04-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff 4.0.0beta7 released.

2011-04-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* configure.ac: Should use AC_CANONICAL_HOST since host specifies
	the run-time target whereas target is used to specify the final
	output target if the package is a build tool (like a compiler),
	which libtiff is not.  Resolves libtiff bug 2307 "Use
	AC_CANONICAL_HOST macro".

2011-04-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* configure.ac: Support configuring TIFF_INT64_FORMAT and
	TIFF_UINT64_FORMAT appropriately for MinGW32.

	* tools/tiffdump.c (ReadDirectory): MinGW32 needs to use WIN32
	printf conventions for 64-bit types because it uses the WIN32 CRT.

	* libtiff/{tif_dumpmode.c,tif_luv.c,tif_lzw.c,tif_print.c,
	tif_read.c,tif_strip.c,tif_thunder.c}: MinGW32 needs to use WIN32
	printf conventions for 64-bit types because it uses the WIN32 CRT.

	* tools/tiff2pdf.c (t2p_write_pdf_string): Fix printf syntax not
	understood by WIN32 CRT.

	* libtiff/tif_ojpeg.c: Fixes to compile with MinGW32 GCC.

	* tools/fax2ps.c (main): Use tmpfile() rather than mkstemp() since
	it is much more portable.  Tmpfile is included in ISO/IEC
	9899:1990 and the WIN32 CRT.

2011-03-26  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/tiffset.c: add -d and -sd switches to allow operation on
	a particular directory, not just the first (jef).

2011-03-21  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_thunder.c: Correct potential buffer overflow with
	thunder encoded files with wrong bitspersample set.  The libtiff
	development team would like to thank Marin Barbella and TippingPoint's
	Zero Day Initiative for reporting this vulnerability (ZDI-CAN-1004,
	CVE-2011-1167).
	http://bugzilla.maptools.org/show_bug.cgi?id=2300

2011-03-10  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_fax3.h: Fix to last change allowing zero length
	runs at the start of a scanline - needed for legal cases.

2011-03-02  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_fax3.h: Protect against a fax VL(n) codeword commanding
	a move left.  Without this, a malicious input file can generate an
	indefinitely large series of runs without a0 ever reaching the right
	margin, thus overrunning our buffer of run lengths.  Per CVE-2011-0192.
	This is a modified version of a patch proposed by Drew Yao of Apple
	Product Security.  It adds an unexpected() report, and disallows the
	equality case, since emitting a run without increasing a0 still allows
	buffer overrun.

2011-02-23  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_jpeg.c: avoid divide by zero in degenerate case (#2296)

	* tools/tiff2rgba.c: close source file on error to make leak
	detection easier.

	* libtiff/tif_getimage.c: avoid leaks if TIFFRGBAImageBegin() fails.

	http://bugzilla.maptools.org/show_bug.cgi?id=2295

2011-02-22  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_lzma.c: Maintain tif_rawcc/tif_rawcp (CHUNKY_STRING_READ
	_SUPPORT)

2011-02-18  Frank Warmerdam  <warmerdam@pobox.com>

	* configure.ac, configure: Added support for --enable-chunky-strip-read
	configure option to enable the experimental feature from a couple
	months ago for reading big strips in chunks.

	* configure.ac, tif_read.c, tif_readdir.c, tif_dir.h, tiffiop.h,
	tif_write.c, tif_print.c, tif_jpeg.c, tif_dirwrite.c, tif_write.c:
	Implement optional support for deferring the load of strip/tile
	offset and size tags for optimized scanning of directories.  Enabled
	with the --enable-defer-strile-load configure option (DEFER_STRILE_LOAD
	#define in tif_config.h).

2011-02-11  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_print.c: remove unused variable.

2011-02-09  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_win32.c: avoid error/warning buffer overrun problem
	with non-console (popup message) builds on win32.

	http://bugzilla.maptools.org/show_bug.cgi?id=2293

2011-01-24  Olivier Paquet  <olivier.paquet@gmail.com>

	* libtiff/{tif_dir.{h,c}, tif_dirinfo.c, tif_dirread.c, tif_dirwrite.c,
	tif_print.c, tiff.h, tiffiop.h} : Added support for
	TIFFTAG_SMINSAMPLEVALUE and TIFFTAG_SMAXSAMPLEVALUE to have different
	values for each sample. Presents the min/max of all samples by default for
	compatibility. TIFFSetField/TIFFGetField can be made to handle those tags
	as arrays by changing the new TIFFTAG_PERSAMPLE pseudo tag.
	http://www.asmail.be/msg0055458208.html

2011-01-06  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_pixarlog.c: Note that tif_rawcc/tif_rawcp are not
	maintained.

	* libtiff/tif_zip.c: Maintain tif_rawcc/tif_rawcp when decoding
	for CHUNKY_STRIP_READ_SUPPORT.

	* libtiff/tif_jpeg.c: ensure that rawcc and rawcp are maintained
	during JPEGPreDecode and JPEGDecode calls.
	* libtiff/tif_read.c: larger read ahead for CHUNKY_STRIP_READ_SUPPORT,
	as compression formats like JPEG keep 16 lines interleaved in a sense
	and might need to touch	quite a bit of data.

	http://trac.osgeo.org/gdal/ticket/3894

2011-01-03  Lee Howard <faxguy@howardsilvan.com>

	* libtiff/tif_jpeg.c: Fix regressions with 2 and 3 band images
	caused by commit on 2010-12-14.  Submitted by e-mail from
	Even Rouault <even.rouault@mines-paris.org>

2010-12-31  Olivier Paquet  <olivier.paquet@gmail.com>

	* libtiff/tif_dirwrite.c: Fixed writing of TIFFTAG_REFERENCEBLACKWHITE.
	http://bugzilla.maptools.org/show_bug.cgi?id=2266

2010-12-23  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffcp.c, man/tiffcp.1: Added support for specifying the
	compression level parameter (preset) for Deflate and LZMA encoders,
	e.g "-c lzma:p1" or "-c zip:p9".

	* libtiff/tif_lzma.c: Properly set the LZMA2 compression level
	(preset) in LZMAVSetField().

2010-12-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/Makefile.am (libtiff_la_SOURCES): Added tif_lzma.c to
	Makefile.

2010-12-14  Andrey Kiselev  <dron@ak4719.spb.edu>

	* configure.ac, libtiff/{tif_codec.c, tif_config.h.in, tiff.h,
	tiffiop.h, tif_lzma.c}, tools/tiffcp.c, man/tiffcp.1: Implement a new
	TIFF compression scheme LZMA reserving a new value 34925 for
	Compression tag. As per
	bug http://bugzilla.maptools.org/show_bug.cgi?id=2221

2010-12-14  Lee Howard <faxguy@howardsilvan.com>

	* libtiff/tif_dirread.c: tolerate some cases where
	FIELD_COLORMAP is missing
	http://bugzilla.maptools.org/show_bug.cgi?id=2189

2010-12-14  Lee Howard <faxguy@howardsilvan.com>

	* libtiff/tif_read.c: change read_ahead to tmsize_t
	http://bugzilla.maptools.org/show_bug.cgi?id=2222

2010-12-14  Lee Howard <faxguy@howardsilvan.com>

	* configure.ac, libtiff/Makefile.am: Build tif_win32.c on
	Windows except on Cygwin
	http://bugzilla.maptools.org/show_bug.cgi?id=2224

2010-12-14  Lee Howard <faxguy@howardsilvan.com>

	* tools/gif2tiff.c: fix buffer overrun
	http://bugzilla.maptools.org/show_bug.cgi?id=2270

2010-12-14  Lee Howard <faxguy@howardsilvan.com>

	* libtiff/tif_jpeg.c: reduce usage of JCS_UNKNOWN in order
	to improve compatibility with various viewers
	submitted by e-mail from Dwight Kelly <dkelly@apago.com>

2010-12-13  Lee Howard <faxguy@howardsilvan.com>

	* tools/fax2ps.c: be consistent with page-numbering
	http://bugzilla.maptools.org/show_bug.cgi?id=2225

2010-12-13  Lee Howard <faxguy@howardsilvan.com>

	* libtiff/tif_color.c: prevent crash in handling bad TIFFs
	resolves CVE-2010-2595
	http://bugzilla.maptools.org/show_bug.cgi?id=2208

2010-12-13  Lee Howard <faxguy@howardsilvan.com>

	* tools/tiffcrop.c: new release by Richard Nolde
	http://bugzilla.maptools.org/show_bug.cgi?id=2004

2010-12-12  Lee Howard <faxguy@howardsilvan.com>

	* tools/tiff2pdf.c: fix colors for images with RGBA
	interleaved data
	http://bugzilla.maptools.org/show_bug.cgi?id=2250

2010-12-12  Lee Howard <faxguy@howardsilvan.com>

	* libtiff/tif_dirread.c: fix for Zeiss LSM and Canon CR2 files
	http://bugzilla.maptools.org/show_bug.cgi?id=2164

2010-12-11  Lee Howard <faxguy@howardsilvan.com>

	* tools/tiff2pdf.c: remove invalid duplication for Lab
	http://bugzilla.maptools.org/show_bug.cgi?id=2162

2010-12-11  Lee Howard <faxguy@howardsilvan.com>

	* libtiff/tif_jpeg.c: fix use of clumplines calculation
	http://bugzilla.maptools.org/show_bug.cgi?id=2149

2010-12-11  Lee Howard <faxguy@howardsilvan.com>

	* tools/fax2ps.c: replace unsafe tmpfile() with mkstemp()
	http://bugzilla.maptools.org/show_bug.cgi?id=2118

2010-12-11  Lee Howard <faxguy@howardsilvan.com>

	* libtiff/tif_ojpeg.c, libtiff/tif_pixarlog.c,
	  libtiff/tif_zip.c: fix build errors for VC6
	http://bugzilla.maptools.org/show_bug.cgi?id=2105

2010-12-11  Lee Howard <faxguy@howardsilvan.com>

	* libtiff/tif_stream.cxx: warnings cleanup
	http://bugzilla.maptools.org/show_bug.cgi?id=2091
	* libtiff/tif_dirread.c: warnings cleanup
	http://bugzilla.maptools.org/show_bug.cgi?id=2092

2010-12-11  Lee Howard <faxguy@howardsilvan.com>

	* tools/tiff2pdf.c: add fill-page option
	http://bugzilla.maptools.org/show_bug.cgi?id=2051

2010-12-11  Lee Howard <faxguy@howardsilvan.com>

	* libtiff/tif_dirread.c: modify warnings
	http://bugzilla.maptools.org/show_bug.cgi?id=2016

2010-12-11  Lee Howard <faxguy@howardsilvan.com>

	* libtiff/tif_ojpeg.c: fix buffer overflow on problem data
        http://bugzilla.maptools.org/show_bug.cgi?id=1999

2010-12-11  Lee Howard <faxguy@howardsilvan.com>

	* tools/tiffinfoce.c: strip byte counts are uint64* now

2010-12-11  Lee Howard <faxguy@howardsilvan.com>

        * libtiff/tif_ojpeg.c: fix crash when reading a TIFF with a zero
        or missing byte-count tag
        * tools/tiffsplit.c: abort when reading a TIFF without a byte-count
        per http://bugzilla.maptools.org/show_bug.cgi?id=1996

2010-12-08  Lee Howard <faxguy@howardsilvan.com>

        * libtiff/tif_dirread.c: fix crash when reading a badly-constructed
        TIFF per http://bugzilla.maptools.org/show_bug.cgi?id=1994

2010-12-06  Lee Howard <faxguy@howardsilvan.com>

        * libtiff/tif_open.c: Fix mode check before opening a file.
        http://bugzilla.maptools.org/show_bug.cgi?id=1906

2010-11-27  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff-4.pc.in: Added libtiff pkg-config .pc file support.
	Patch by Vincent Torri.

2010-10-21  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/tiffinfo.c: avoid direct reference to _TIFFerrorHandler.

	* libtiff/tif_config.vc.h: define snprintf to _snprintf for tiff2pdf.

	* libtiff/libtiff.def: export _TIFFCheckMalloc for tools.

2010-09-25  Lee Howard <faxguy@howardsilvan.com>

	* tools/tiff2ps.c: improvements and enhancements from Richard Nolde
	with additional command line options for Document Title,
	Document Creator, and Page Orientation

2010-07-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiffcrop.c: Patch from Richard Nolde to avoid a
	potentially unterminated buffer due to using an exceptionally long
	file name.

2010-07-08  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2pdf.c: Fixed ID buffer filling in
	t2p_write_pdf_trailer(), thanks to Dmitry V. Levin.

2010-07-07  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirread.c: Really reset the tag count in CheckDirCount()
	to expected value as the warning message suggests. As per bug
	http://bugzilla.maptools.org/show_bug.cgi?id=1963

2010-07-06  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffset.c: Properly handle TIFFTAG_PAGENUMBER,
	TIFFTAG_HALFTONEHINTS, TIFFTAG_YCBCRSUBSAMPLING, TIFFTAG_DOTRANGE
	which should be set by value.

	* libtiff/tif_dirinfo.c: Don't use assertions in _TIFFFieldWithTag()
	and _TIFFFieldWithName() if the tag is not found in the tag table.
	This should be normal situation and returned NULL value should be
	properly handled by the caller.

2010-07-02  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_getimage.c: Avoid wrong math du to the signed/unsigned
	integer type conversions. As per bug
	http://bugzilla.maptools.org/show_bug.cgi?id=2207

	* tools/{tiff2bw.c, thumbnail.c, pal2rgb.c}: Fix the count for
	WhitePoint tag as per bug
	http://bugzilla.maptools.org/show_bug.cgi?id=2042

	* libtiff/tif_getimage.c: Check the number of samples per pixel when
	working with YCbCr image in PickContigCase(). As per bug
	http://bugzilla.maptools.org/show_bug.cgi?id=2216

	* libtiff/tif_dir.c: Set the bogus post-decoding hook when processing
	TIFFTAG_BITSPERSAMPLE in _TIFFVSetField() for the case of 8 bit when
	we don't need any post-processing. That helps to reset the hook if we
	previously set this field to some other value and the hook was
	initialized accordingly. As per bug
	http://bugzilla.maptools.org/show_bug.cgi?id=2035

2010-07-01  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffgt.c: Properly check the raster buffer allocations for
	integer overflows. As per bug
	http://bugzilla.maptools.org/show_bug.cgi?id=2108

	* m4/acinclude.m4: Update GL/GLU/GLUt/Pthread macros from the
	upstream.

	* libtiff/{tif_aux.c, tif_strip.c, tif_tile.c, tiffiop.h}: Move
	multiply_32() and multiply_64() functions into tif_aux.c file and
	rename them into _TIFFMultiply32() and _TIFFMultiply64() respectively.

2010-06-30  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2pdf.c: Better generation of ID field in
	t2p_write_pdf_trailer(). Get rid of GCC aliasing warnings.

	* tools/tiff2pdf.c: Fixed computation of the tile buffer size when
	converting JPEG encoded tiles.

	* tools/tiff2pdf.c: Better handling of string fields, use static
	string buffers instead of dynamically allocated, use strncpy() instead
	of strcpy(), control the string lengths.

2010-06-25  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffcp.c: Initialize buffer arrays with zero to avoid
	referencing to uninitialized memory in some cases (e.g. when tile size
	set bigger than the image size).

2010-06-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiffcrop.c: Patch from Richard Nolde. Reject YCbCr
	subsampled data since tiffcrop currently doesn't support it.  Fix
	JPEG support.

2010-06-13  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirinfo.c: Fix invocation of tag compare function (#2201)

	* tools/tiff2pdf.c: Fix assorted bugs in tiff2pdf: missing "return"
	in t2p_read_tiff_size() causes t2p->tiff_datasize to be set entirely
	wrong for COMPRESSION_JPEG case, resulting in memory stomp if actual
	size is larger.  Also, there are a bunch of places that try to
	memset() a malloc'd buffer before checking for malloc failure, which
	would result in core dump if there actually were a failure. (#2211)

2010-06-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tiffiop.h (TIFFSafeMultiply): Need more castings to
	avoid compiler warnings if parameter types are not sign
	consistent.

	* libtiff 4.0.0alpha6 released.

	* tools/tiffcrop.c: Applied patch from Richard Nolde: Corrected
	European page size dimensions.  Added an option to allow the user
	to specify a custom page size on the command line.  Fix the case
	where a page size specified with a fractional part was being
	coerced to an integer by retyping the variables that define the
	paper size.

	* html/index.html: Update for the 3.9.3 release.

	* tools/tiffcp.c (tiffcp): Applied Tom Lane's patch to reject
	YCbCr subsampled data since tiffcp currently doesn't support it.
	http://bugzilla.maptools.org/show_bug.cgi?id=2097

	* Update libtool to version 2.2.10.

2010-06-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tiffiop.h (TIFFSafeMultiply): Work properly if
	multiplier is zero.

2010-06-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_fax3.c (Fax3SetupState): Yesterday's fix for
	CVE-2010-1411 was not complete.

	* libtiff/tiffiop.h (TIFFSafeMultiply): New macro to safely
	multiply two integers.  Returns zero if there is an integer
	overflow.

	* tools/tiffcp.c (main): tiffcp should not leak memory if an error
	is reported when reading the input file.

2010-06-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* Update libtool to version 2.2.8.

	* libtiff/tif_fax3.c (Fax3SetupState): Avoid under-allocation of
	buffer due to integer overflow in TIFFroundup() and several other
	potential overflows.  In conjunction with the fix to TIFFhowmany(),
	fixes CVE-2010-1411.

	* libtiff/tiffiop.h (TIFFhowmany): Return zero if parameters would
	result in an integer overflow. This causes TIFFroundup() to also
	return zero if there would be an integer overflow.

	* contrib: Add an emacs formatting mode footer to all source files
	so that emacs can be effectively used.

2010-06-03  Oliver Chen Feng <scip8183@gmail.com>

	* libtiff/tools/tiffcp.c: add a new option -x to force merged tiff
	file PAGENUMBER value in sequence for users who care the page
	sequence, this will also prevent tiff2pdf from creating pdf file from
	the merged tiff file with wrong page sequence.

2010-05-08  Olivier Paquet  <olivier.paquet@gmail.com>

	* libtiff/tif_dirread.c: Restored TIFFReadDirEntryFloat function in order
	to add missing TIFF_SETGET_FLOAT case to TIFFFetchNormalTag.
	* libtiff/tif_dirinfo.c: Use correct set_field_type for
	TIFFTAG_PIXAR_FOVCOT so it is readable again (regression from 3.9.2).
	http://bugzilla.maptools.org/show_bug.cgi?id=2192

2010-05-07  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_jpeg.c: Ensure that quality is always set in
	JPEGPreEncode(), not just when we want to output local tables.
	Otherwise the quality used during compression may not be right and
	might not match the tables in the tables tag.   This bug only occurs
	when seeking between directories in the midst of writing blocks.
	http://trac.osgeo.org/gdal/ticket/3539

2010-05-06  Andrey Kiselev  <dron@ak4719.spb.edu>

	* html/man/TIFFGetField.3tiff.html, html/man/TIFFSetField.3tiff.html:
	Regenerated from the source.

2010-05-05  Olivier Paquet  <olivier.paquet@gmail.com>

	* libtiff/tif_print.c: Fixed printing of TIFFTAG_REFERENCEBLACKWHITE which
	had stopped working. Also made it always print 6 floats instead of
	2*SamplesPerPixel.
	http://bugzilla.maptools.org/show_bug.cgi?id=2191
	http://bugzilla.maptools.org/show_bug.cgi?id=2186
	* man/TIFFGetField.3tiff, man/TIFFSetField.3tiff: Fixed doc to reflect the
	fact that libtiff considers TIFFTAG_REFERENCEBLACKWHITE to be 6 floats.

2010-05-05  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_jpeg.c: Fix to use memcmp(), not memcpy() when checking
	if the jpeg table was written.  This is a fix for the last fix on 04-21.

2010-04-21  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_jpeg.c: avoid preparing jpeg tables everytime
	JPEGSetupEncode() is called if the tables already seem to be
	established.  This prevents spurious updates and rewriting of
	directories with jpegtables when doing updates to existing images.
	http://trac.osgeo.org/gdal/ticket/3539

2010-04-20  Olivier Paquet  <olivier.paquet@gmail.com>

	* libtiff/tif_dirinfo.c: Use correct set_field_type for
	TIFFTAG_PIXAR_IMAGEFULLWIDTH, TIFFTAG_PIXAR_IMAGEFULLLENGTH,
	TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN and TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA.
	They were unreadable with TIFF_SETGET_UNDEFINED, a regression from 3.9.2.
	http://bugzilla.maptools.org/show_bug.cgi?id=2139

2010-04-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_dir.c (_TIFFVSetField): Add a special error case for
	when the tag count value is zero.  Error handling is still a
	regression since in 3.9.2, empty tags are skipped (with a warning)
	rather than returning a hard error and refusing to read the file.

	* tools/ppm2tiff.c (main): While case for parsing comment line
	requires extra parenthesis to work as expected.  Reported by
	Thomas Sinclair.

2010-04-02  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_read.c (primarily): Add support for
	CHUNKY_STRIP_READ_SUPPORT where large strips are
	read in chunks for applications using TIFFReadScanline().
	This is intended to make it more practical work with very
	large compressed one-strip files.   Feature is off by default.
	Enable by defining CHUNK_STRIP_READ_SUPPORT as a macro.
	http://trac.osgeo.org/gdal/ticket/3514

2010-03-31  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_flush.c: Use TIFFRewriteDirectory() when flushing
	directories so previously placed directories will be migrated to
	the end of file if needed.

2010-03-30  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_lzw.c: change type of dec_bitsleft field to uint64
	to support operating on strips/tiles of more than 256MB.
	http://trac.osgeo.org/gdal/ticket/3512

2010-03-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_aux.c (_TIFFCheckRealloc): Improve error message so
	that it is clearly a memory allocation error message, and also
	includes the size of the allocation request.

2010-02-22  Lee Howard  <faxguy@howardsilvan.com>

	* libtiff/tif_jpeg.c: Do not generate a JPEGTables tag when creating
	the JPEG TIFF as is is not required in order to prevent it from
	being unused and filled with invalid data.  (Leave it to be
	generated by later activity.)
	http://bugzilla.maptools.org/show_bug.cgi?id=2135
	* tools/tiff2pdf.c: Write the JPEG SOI headers into the TIFF strip
	data rather than skipping them.  This fixes the ability to view in
	Acrobat Reader, Evince, and Ghostscript.
	http://bugzilla.maptools.org/show_bug.cgi?id=2135
	* libtiff/tif_fax3.c: Don't return error on badly-terminated MMR
	strips.
	http://bugzilla.maptools.org/show_bug.cgi?id=2029

2009-12-03  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_jpeg.c: Made JPEGDecodeRaw() check for buffer overruns.
	Made so that when working with downsampled images a stub function
	reporting an error is used for tif_decoderow.  We cannot meaningfully
	support reading scanlines in this situation.  (#1936)

	* libtiff/tif_jpeg.c: Ensure that tif_scanlinesize is computed after
	resetting of the upsampling values (gdal:#3259).
	http://bugzilla.maptools.org/show_bug.cgi?id=1936

2009-11-30  Frank Warmerdam  <warmerdam@pobox.com>

	* contrib/dbs/tiff-grayscale.c, contrib/tif-palette.c,
	tools/ras2tiff.c: Fix resource leaks on error.
	http://bugzilla.maptools.org/show_bug.cgi?id=2121

	* libtiff/tif_{aux.c,dir.c,dir.h,dirinfo.c}: Return to handling
	TIFFTAG_REFERENCEBLACKWHITE as a field in the TIFF directory instead
	of as a custom(generic) field to avoid a potential reentrancy problem.
	http://bugzilla.maptools.org/show_bug.cgi?id=2125

	* libtiff/tif_color.c, libtiff/tif_getimage.c, libtiff/tiffio.h,
	man/TIFFcolor.3tiff: Make TIFFDisplay argument in TIFFCIELabToRGBInit
	const, and display_sRGB static and const.
	http://bugzilla.maptools.org/show_bug.cgi?id=2124

2009-11-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff 4.0.0alpha5 released.

2009-11-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiffcrop.c: Updated tiffcrop from Richard Nolde.  This
	version has undergone substantial testing with arbitrary sample
	bit depths.  Also eliminates GCC compilation warnings.

2009-11-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* port/libport.h: Add extern declarations for getopt standard
	globals.

2009-10-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_lzw.c (LZWDecode, LZWDecodeCompat): Fix warnings
	noticed in 64-bit build of libtiff with Visual Studio 2005.
	Resolves "Bug 2067 - Visual Studio 2005 64-bit warnings in
	tif_lzw.c", http://bugzilla.maptools.org/show_bug.cgi?id=2067

	* libtiff/tif_pixarlog.c (PixarLogEncode): Fix non-important
	warning noticed in Visual Studio 2005 build. Resolves "Bug 2068 -
	Visual Studio 2005 64-bit warning in tif_pixarlog.c",
	http://bugzilla.maptools.org/show_bug.cgi?id=2068

2009-10-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_dirread.c: Eliminate GCC "dereferencing type-punned
	pointer" warnings.

2009-10-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* html/tools.html: Add manual page links, and a summary
	description of tiffcrop.

2009-10-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* configure.ac: x86_64 should use the same fill order as i386.

2009-09-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiffcrop.c, man/tiffcrop.1: New tiffcrop from Richard
	Nolde.  Major updates to add significant functionality for reading
	and writing tile based images with bit depths not a multiple of 8
	which cannot be handled by tiffcp.

2009-09-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_ojpeg.c (OJPEGWriteHeaderInfo): IJG JPEG 7 needs
	do_fancy_upsampling=FALSE in order to read raw data.  Resolves
	"Bug 2090 - OJPEG crash with libjpeg v7".
	http://bugzilla.maptools.org/show_bug.cgi?id=2090

2009-09-03  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_getimage.c: Fixed error recognition handling in RGBA
	interface when stoponerror is set.
	http://bugzilla.maptools.org/show_bug.cgi?id=2071

2009-08-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/{tiffcrop.c,tiffgt.c}: Applied patch from Oden Eriksson to
	fix build with gcc when using the "-Wformat
	-Werror=format-security" flags.

2009-08-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* test/{bmp2tiff_palette.sh, bmp2tiff_rgb.sh, gif2tiff.sh,
	ppm2tiff_pbm.sh, ppm2tiff_pgm.sh, ppm2tiff_ppm.sh}: Additional
	utilities tests.

2009-08-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiffinfo.c: tiffinfo should return error status to the
	caller.  Register a private error callback to accomplish that.

	* test/Makefile.am (TIFFIMAGES): Add test images in BMP, GIF, and
	PNM formats so that we will be able to test more of the tools.
	While adding these test images I notice that bmp2tiff and gif2tiff
	only support ancient versions of their respective formats.

2009-08-27  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff 4.0.0alpha4 released.

	* HOWTO-RELEASE: Improved release instructions.

2009-08-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* man/{TIFFClose.3tiff,raw2tiff.1,tiffcmp.1,tiffsplit.1}: Applied
	fixes for "Bug 2023 - nroff errors in manual pages".
	http://bugzilla.maptools.org/show_bug.cgi?id=2023

	* tools/{rgb2ycbcr.c, tiff2rgba.c}: Applied fixes for "Bug 2079 -
	CVE-2009-2347 libtiff: integer overflows in various inter-color
	space conversion tools".
	http://bugzilla.maptools.org/show_bug.cgi?id=2079

	* libtiff/tif_print.c (TIFFPrintDirectory): Apply fix from Jay
	Berkenbilt for "Bug 2024 - possible null pointer dereference with
	one-line fix".
	http://bugzilla.maptools.org/show_bug.cgi?id=2024

	* libtiff/tif_dirread.c (TIFFReadCustomDirectory): Apply patch
	from Jay Berkenbilt for "Bug 1895 - logic error in tif_dirread.c:
	segfault after setting tdir_tag = IGNORE".
	http://bugzilla.maptools.org/show_bug.cgi?id=1895

2009-08-23  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* test/Makefile.am, test/tiffcrop*.sh: Split previously existing
	tiffcrop.sh into a collection of many specific tests.  Re-wrote
	all of the existing tests to be based on some simple shell
	functions.  Make distcheck works again.

	Export certain variables (MAKE, MAKEFLAGS, MEMCHECK) to tests and
	added 'memcheck' and 'ptrcheck' targets to make it easy to run the
	tests under valgrind.

2009-08-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* test/tiffcp-logluv.sh: Fix test so that it works with a VPATH
	build.

	* test/Makefile.am (AUTOMAKE_OPTIONS): Colorized tests was not
	actually activated since it needed to be enabled in this
	Makefile.am.  Also activated parallel-tests mode since it offers
	useful features such as per-test .log files and a summary test
	report .log file.

2009-08-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* configure.ac: Updated autotools.  Autoconf 2.64, Automake 1.11,
	libtool 2.2.6.  Enabled support for silent build rules
	(--enable-silent-rules or 'make V=0') and colorized tests.

	* html/{index.html, v3.9.0.html}: Update for 3.9.0 release.

2009-06-30  Frank Warmerdam  <warmerdam@pobox.com>

	* tests/tiffcp-logluv.sh: minimal testing of sgilog compression.

	* tools/tiffcp.c: add -c sgilog support.

	* libtiff/tif_luv.c: correct return codes from encoderow to be
	1 on success instead of zero.
	http://bugzilla.maptools.org/show_bug.cgi?id=2069

	* libtiff/tif_lzw.c: back out patch from #2065 and apply patch from
	#1085 for a better underflow fix that errors properly.
	http://bugzilla.maptools.org/show_bug.cgi?id=2065
	http://bugzilla.maptools.org/show_bug.cgi?id=1985

2009-06-26  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_strip.c: Remove an inappropriate assertion that often
	fails on oddly sized 12bit jpeg compressed ycbcr images.

2009-06-22  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_lzw.c: Fix buffer underflow bug.
	http://bugzilla.maptools.org/show_bug.cgi?id=2065

2009-06-21  Frank Warmerdam  <warmerdam@pobox.com>

	* configure.ac, libtiff/tif_jpeg.c, libtiff/tif_jpeg_12.c: add support
	for dual mode 8/12 bit jpeg support.

2009-06-03  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_write.c: do not override the planar configuration to be
	contig for one sample files if planar configuration is already set.
	http://bugzilla.maptools.org/show_bug.cgi?id=2057

2009-06-02  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/libtiff.def: Add TIFFUnsetField.

2009-05-03  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/{tif_jpeg.c,tif_ojpeg.c,tif_getimage.c}: Fixed various
	error reports to use "%s" as format string.
	http://trac.osgeo.org/gdal/ticket/2976

2009-03-12  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/{tif_fax3.c,tif_jpeg.c,tif_ojpeg.c}: Fix printdir chaining
	for some codecs (#2020).

2009-02-12  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_luv.c: Fix handling of tiled logluv images.
	http://bugzilla.maptools.org/show_bug.cgi?id=2005

2009-02-09  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirread.c: Improve allocation safety when allocated
	buffer for large tags.  (#1998)  Related to (#1993)

2009-02-06  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/tiffcrop.c: Don't default image->res_unit to INCH.  Now the
	test suite should pass.

2009-02-05  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirread.c: Re-incorporated a sanity check on tag size,
	but at the 2GB boundary to avoid overflow on 32bit systems.
	http://bugzilla.maptools.org/show_bug.cgi?id=1993

	* libtiff/tif_dirread.c: Remove some assertions that blow due to
	corrupt files rather than in response to library internal
	inconsistencies.
	http://bugzilla.maptools.org/show_bug.cgi?id=1995
	http://bugzilla.maptools.org/show_bug.cgi?id=1991

	* libtiff/tif_dirread.c: Fixed testing for failed result from
	TIFFReadDirectoryFindFieldInfo().
	http://bugzilla.maptools.org/show_bug.cgi?id=1992

2009-01-23  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_predict.c: Add support for 32bit integer horz. predictors.
	http://bugzilla.maptools.org/show_bug.cgi?id=1911

	* libtiff/tif_dirwrite.c: Fix byte swapping of next directory offset.

	http://bugzilla.maptools.org/show_bug.cgi?id=1924

	* tools/tiffcrop.c: initialize xres/yres values.

	* test/*.sh - default ${srcdir} to local directory.

	* test/common.sh - start verbose mode after common settings.

	* libtiff/tif_dirinfo.c: Replace lfind() with local equivelent to
	avoid type mismatches on different platforms.
	http://bugzilla.maptools.org/show_bug.cgi?id=1889

2009-01-22  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/{fax2tiff.c,thumbnail.c,tiff2pdf.c,tiff2ps.c,tiffdump.c,
	tiffsplit.c}: avoid warnings, mostly 32bit/64bit casting issues.

	* port,tools: Introduce libport.h, and include in tools if NEED_LIBPORT
	defined, primarily to reduce prototype warnings on windows.

	* libtiff/tif_dirinfo.c,tif_dirread.c: Avoid warnings
	about unused parameters, and uninitialized variables.

2009-01-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* test/common.sh: Execute tests like 'make VERBOSE=TRUE check' in
	order to trace full execution detail while executing the test suite.

2009-01-20  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/tiffsplit.c: fix sampleformat to be shortv instead of longv.

2009-01-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* test/Makefile.am (CLEANFILES): Make sure that test output files
	are removed by 'make clean'

	* Update autotools for 4.0.0 beta3

	* 4.0.0 beta3 produced.

2009-01-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* test/tiffcrop.sh: New test script for tiffcrop from Richard
	Nolde.

	* tools/tiff2ps.c: Remove spurious message to stderr.

2009-01-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiff2ps.c: Incorporated significant functionality update
	from Richard Nolde.  In particular, support for rotating the image
	by 90, 180, 270, and 'auto' has been added.

	* man/tiffcrop.1: Incorporated documentation updates from Richard
	Nolde.

	* tools/tiffcrop.c: Incorporated significant functionality update
	from Richard Nolde.

2008-12-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tiffio.h: GCC will now validate format specifications
	for TIFFError(), TIFFErrorExt(), TIFFWarning(), and
	TIFFWarningExt() in order to reveal bugs.

	* Many fixes throughout to work better as a 64-bit build.

2008-12-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/{tiff2pdf.c, tiff2ps.c, tiffinfo.c}: Offset and length
	tags now require 64-bit parameter rather than 32-bit.

	* libtiff/tif_dirread.c: Fixed issues with unaligned access to
	64-bit values.

	* tools/thumbnail.c: Eliminate crash noticed while running test
	suite.

2008-12-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_ojpeg.c (OJPEGLibjpegJpegSourceMgrFillInputBuffer):
	Initialize stack variables to avoid compiler warning.

	* tools/tiffinfoce.c (main): Use toff_t for offset type when
	retrieving offset of EXIF IFD.

	* libtiff/tiffio.h: Undeprecate toff_t and restore its use in the
	TIFFClientOpen() callback and other external function definitions.

	* tools/tiffinfo.c (main): Offset to EXIF IFD requires a 64-bit
	type now.  Fixes crash when dumping files containing an EXIF IFD.

	* m4/libtool.m4: Update to libtool 2.2.6.

2008-12-21  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dir.c, tiffio.h: Introduce TIFFUnsetField() function.

	* libtiff/tif_jpeg.c: Avoid errors if the application writes a full
	strip for the last partial strip in a jpeg compressed file.
	http://bugzilla.maptools.org/show_bug.cgi?id=1981

2008-10-29  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_flush.c: Make sure that BEENWRITING is cleared when
	we take the shortcut to only update the strip/tile offsets in place.
	http://trac.osgeo.org/gdal/ticket/2621

2008-10-21  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_jbig.c: Support the JBIG-KIT 2.0 (compatibility with
	the older versions retained).

2008-10-09  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_jpeg.c: Add #ifdefs for changes needed if using
	IPP enabled version of libjpeg from Intel.
	http://bugzilla.maptools.org/show_bug.cgi?id=1951

2008-09-05  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffsplit.c: Use byte counts of proper size (uint64).
	Required for libtiff 4.0.

	* tools/tiffsplit.c: Use dynamically allocated array instead of static
	when constructing output file names.

2008-09-03  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffsplit.c: Get rid of unsafe strcpy()/strcat() calls when
	doing the filename/path construction.

	* tools/tiff2pdf.c: More appropriate format string in
	t2p_write_pdf_string(); avoid signed/unsigned mismatch.

	* libtiff/tif_lzw.c: Properly zero out the codetable. As per bug

	http://bugzilla.maptools.org/show_bug.cgi?id=1929

	* libtiff/tif_lzw.c: Properly zero out the string table. Fixes
	CVE-2008-2327 security issue.

2008-09-01  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirread.c: Avoid unused TIFFReadDirEntryFloat() function.

	* libtiff/tif_dirwrite.c: modified to write IFDs as either IFD8 or IFD
	depending on whether the file is bigtiff or classic tiff.
	http://bugzilla.maptools.org/show_bug.cgi?id=1917

2008-08-12  Edward Lam  <edward@sidefx.com>

	* tools/tiffdump.c: When compiling for Microsoft Windows, apply
	consistent (__int64) casting when testing if _lseeki64 has
	successfully seeked as requested.  This is necessary for large
	file support to work since off_t is only 32-bit.

2008-07-29  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_strip.c: Replace assertions related to samplesperpixel != 3 or
	the subsampling values not being 1, 2 or 4 (for jpeg compressed images)
	with control logic to return runtime errors (c/o Even Rouault) (#1927).

2008-06-17  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/tiffcrop.c: Fix some portability problems.

	* libtiff/tif_ojpeg.c: Use same jpeg/win32 boolean/FAR hacks as are
	used in tif_jpeg.c.

	* libtiff/tif_win32.c: Ensure TIFFOpenW() uses same FILE_SHARE flags
	as TIFFOpen().

2008-06-01  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirwrite.c: Fix alignment problems affecting architectures
	like Sparc/Solaris.
	http://bugzilla.maptools.org/show_bug.cgi?id=1892

2008-05-27  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff.def: Add TIFFFindField
	http://bugzilla.maptools.org/show_bug.cgi?id=1891

2008-05-26  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_config.*.h, tiffconf.*.h: Remove SIZEOF_LONG definition, unused.

	* li2008-04-15  Andrey Kiselev  <dron@ak4719.spb.edu>

btiff/tif_win32.c: Replace custom Win32 memory api with generic
	POSIX one.  No apparent value to use of GlobalAlloc() in the modern
	age.  http://bugzilla.maptools.org/show_bug.cgi?id=1885

	* libtiff/tiffconf.vc.h: Added JBIG_SUPPORT and MDI_SUPPORT items
	in windows version (care of Edward Lam).

2008-05-24  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_codec.c: Avoid NULL pointer dereferencing for exotic
	compression codec codes.

	* tif_dirwrite.c: fix potential memory leak.

	* tif_dirread.c: Fix unchecked malloc result.

2008-05-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* test {tiff2pdf.sh tiff2ps-EPS1.sh tiff2ps-PS1.sh tiff2ps-PS2.sh
	tiff2ps-PS3.sh tiffcp-g3-1d-fill.sh tiffcp-g3-1d.sh
	tiffcp-g3-2d-fill.sh tiffcp-g3-2d.sh tiffcp-g3.sh tiffcp-g4.sh
	tiffcp-split-join.sh tiffcp-split.sh tiffcp-thumbnail.sh
	tiffdump.sh tiffinfo.sh}: Added more test scripts based on
	suggestions from Lee Howard posted to the tiff list on 13 Sep
	2007.

2008-05-23  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_fax3.c: Add an assert in an effort to detect a
	possible runtime problem reported by coverity.

	* contrib/iptcutil/iptcutil.c: Fixed memory leak of str.

	* tools/tiffcrop.c, man/tiffcrop.1: Major update from Richard Nolde.
	http://bugzilla.maptools.org/show_bug.cgi?id=1888

	* tools/tiffdither.c: remove dead onestrip code.  avoid memory leak.

	* tools/rgb2ycbcr.c: fix memory leak of raster buffer.

	* tools/tiffcp.c: Simplify inknames code to avoid pointless test.
	Cleanup scanline allocation to avoid coverity warning.

	* tools/thumbnail.c: Check for TIFFOpen() failure.

2008-05-18  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirinfo.c: Use TIFF_SETGET_ASCII for PIXAR_TEXTUREFORMAT
	and PIXAR_WRAPMODES instead of TIFF_SETGET_UNDEFINED.  Not exactly clear
	why this is needed.

2008-05-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* Makefile.am (ACLOCAL_AMFLAGS): Libtool 2.2.4 does not like
	"ACLOCAL_AMFLAGS=-I ./m4".  It wants "ACLOCAL_AMFLAGS=-I m4".

2008-04-15  Andrey Kiselev  <dron@ak4719.spb.edu>

	* test/: Test suite updated. Everything is passed now.

	* libtiff/tif_dirinfo.c: Fixed description of the
	TIFFTAG_NUMBEROFINKS tag.

2008-04-14  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_dirread.c, tif_dirwrite.c, tiffiop.h}:
	Get rid of some of "dereferencing type-punned" warnings by converting
	tdir_offset field of TIFFDirEntry structure into union.

2008-04-10  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_flush.c, tif_dirwrite.c, tiffio.h, tiffiop.h}:
	TIFFRewriteField() renamed into _TIFFRewriteField() and moved out
	from the public interface. Type of its 'count' parameter changed
	from uint32 to tmsize_t.

	* /libtiff/tiffiop.h: Make tif_nfields and tif_nfieldscompat fields
	of the tiff structure have the size_t type instead of uint32.

2008-04-09  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffdump.c: Added support for MSVS 6.0.

	* libtiff/tif_dirread.c: Use custom functions _TIFFUInt64ToFloat()
	and _TIFFUInt64ToDouble() to convert 64-bit integers into floating
	point values on MSVS 6.0 platform.

2008-03-14  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_dirread.c: Removed sanity checks on tags larger than 4MB in
	TIFFReadDirEntryArray() since they are interfering with seemingly
	legitimate files.  http://trac.osgeo.org/gdal/ticket/2005

2008-02-09  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* tif_dirread.c: Added handling for the case of number of values for
	PageNumber tag different from 2 (previously resulted in an assert
	indicating lack of handling and was forgotten about)

2008-02-01  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_jpeg.c: Do not try to fixup subsampling tags based on
	the actual jpeg data stream if the first strip/tile has zero size.
	This is the case when GDAL creates a new file with zero sizes, closes
	and reopens it.

2008-01-07  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/tiff2ps.c: fix up 64bit issues (from Edward Lam).

2008-01-01  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirwrite.c: #ifdef out lots of unused functions.

	* Makefile.vc, libtiff/Makefile.vc, tools/Makefile.vc: Improve clean
	targets.

	* tools/tiffinfo.c, tools/tiffcmp.c, tools/gif2tiff.c, tools/bmp2tiff.c
	tools/tiff2pdf.c: Fix 64-bit warnings when compiling under MSVC 2005
	(x64).

	* tools/tiffset.c: Changes to reflect the fact that TIFFFieldWithTag()
	and TIFFFieldWithName() now return TIFFField pointers instead of
	TIFFFieldInfo pointers.

	* tools/tiffdump.c: Added ssize_t typedef on Windows since it doesn't
	exist. This makes it compile again on Windows

	* tif_aux.c, tif_getimage.c, tif_next.c, tif_predict.c, tif_win32.c,
	tiffconf.vc.h: Various 64bit fixes from Edward Lam identified on win64.

	* test/rewrite_tag.c: New test for TIFFRewriteField().

2007-12-31  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_dirwrite.c: Added TIFFRewriteField().  This new function
	rewrites one field "on disk" updating an existing directory
	entry.  Lots of limitations still...

	* tiffiop.h, tif_write.c, tif_dirread.c, tif_flush.c: Keep track of
	TIFF_DIRTYSTRIP separately from TIFF_DIRTYDIRECT to indicate that
	the strip offset/size values are dirty but nothing else about the
	directory is dirty.  In flush handle "just stripmaps dirty" as a
	special case that just rewrites these values without otherwise
	modifying the directory on disk using TIFFRewriteField().

	We also modify logic so that in update mode the directory is not
	marked dirty on read, but only when something is changed.  This
	means we need to keep track of updates to the stripmap stuff in
	TIFFAppendToStrip().

2007-12-10  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_jpeg.c: Improve ability to switch between encoding and decoding
	in the jpeg code (gdal bug #2033).

2007-11-23  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_dir.c, tif_dirread.c, tif_dirwrite.c, tif_read.c, tif_write.c,
	tiffiop.h: Added TIFF_BUF4WRITE flag to indicate if contents of the
	rawcp/rawcc buffer are for writing and thus may require flushing.
	Necessary to distinguish whether they need to be written to disk when
	in mixed read/write mode and doing a mixture of writing followed by
	reading.  http://trac.osgeo.org/gdal/ticket/1758

2007-11-23  Andrey Kiselev  <dron@ak4719.spb.edu>

	* configure.com, libtiff/tif_vms.c: Better OpenVMS support. Patches
	from Alexey Chupahin.

2007-11-02  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_write.c: Rip out the fancy logic in TIFFAppendToStrip() for
	establishing if an existing tile can be rewritten to the same location
	by comparing the current size to all the other blocks in the same
	directory.  This is dangerous in many situations and can easily
	corrupt a file.  (observed in esoteric GDAL situation that's hard to
	document).  This change involves leaving the stripbytecount[] values
	unaltered till TIFFAppendToStrip().  Now we only write a block back
	to the same location it used to be at if the new data is the same
	size or smaller - otherwise we move it to the end of file.

	* tif_dirwrite.c: Try to avoid writing out a full readbuffer of tile
	data when writing the directory just because we have BEENWRITING at
	some point in the past.  This was causing odd junk to be written out
	in a tile of data when a single tile had an interleaving of reading
	and writing with reading last.  (highlighted by gdal
	autotest/gcore/tif_write.py test 7.

	* tif_predict.c: use working buffer in PredictorEncodeTile to avoid
	modifying callers buffer.
	http://trac.osgeo.org/gdal/ticket/1965

	* tif_predict.c/h: more fixes related to last item, keeping a
	distinct pfunc for encode and decode cases as these were getting
	mixed up sometimes.
	http://trac.osgeo.org/gdal/ticket/1948

2007-11-01  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_predict.c/h, tif_lzw.c, tif_zip.c: Improvements so that
	predictor based encoding and decoding works in read-write update
	mode properly.
	http://trac.osgeo.org/gdal/ticket/1948

2007-10-24  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* tif_dirread.c: Fixed problem with bogus file triggering
	assert(td->td_planarconfig == PLANARCONFIG_CONTIG) in
	ChopUpSingleUncompressedStrip

2007-10-22  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* tif_jpeg.c: Resolved buffer incrementation bug that lead to faulty images
	at best, access violation at worst, when subsampled JPEG compressed imagery
	is decoded without the JPEG_COLORMODE feature

2007-10-11  Frank Warmerdam  <warmerdam@pobox.com>

	* html/index.html: Update "people responsible" section.

2007-10-05  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/tiff2pdf.c: Fix problem with alpha setting in some cases
	as reported on the mailing list.

2007-10-01  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* changed some more incorrect %lud printf flags to %lu

2007-09-29  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* tif_dirread.c: Strip chopping interfered badly with uncompressed
	subsampled images because it tried to divide subsampled rowblocks,
	leading to all sorts of errors throughout the library for these
	images. Fixed by making strip chopping divide in row counts that
	are a multiple of vertical subsampling value.

2007-09-28  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* tif_dirread.c: Logical cast working around compiler warning

	* tif_read.c: Correction of some error flags and parameter lists

2007-09-27  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* tif_dirread.c: Made calculation of td_maxsamplevalue more robust
	when dealing with large bitspersample values, shutting up purification
	tools that warn about truncation, though it remains incorrect and
	indicates a conceptual problem there.

	* tif_open.c: Moved early exit in case of 'h' flag (to disable reading
	of first IFD) to proper place because it badly interfered with memory
	mapping, resulting in mapping flag even with dummy mapping functions
	that returned 0 whilst at the same time the mapping tif_size wasn't
	set, thus resulting in continuous incorrect beyond-eof errors.

2007-09-24  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* tif_dirinfo.c: Fixed (MSVC) compiler reports about
	inconsistent use of const in tiffFields and exifFields definition

2007-09-20  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_dirwrite.c: Always write tile/strip offsets and sizes
	using LONG8 type when output format is BigTIFF.  The
	TIFFWriteDirectoryTagLongLong8Array() function was restructured
	accordingly.

	* tif_dirread.c: Improvements to error reporting text in
	TIFFFetchDirectory().

2007-09-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* test/images: Added a small collection of test images for use by
	test programs and scripts.
	* test/tiffinfo.sh: A trivial example test script.
	* test/common.sh: Added small script for setting the environment
	used by script-based tests.

2007-08-24  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_dirwrite.c: Write the tif_nextdiroff value instead of a fixed
	zero when writing directory contents to preserve the ability to
	rewrite directories in place, even in the middle of a directory
	chain.

	* tif_dirinfo.c:  _TIFFMergeFields() now only merges in field
	definitions that are missing.  Existing definitions are silently
	ignored.

	* tif_dirread.c: Add runtime error for fields for which no definition
	is found (in addition to an assert for developers) in
	TIFFFetchNormalTag().  Not sure if this is needed, but it seems
	prudent.

2007-08-10  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* libtiff/tif_getimage.c: removed SubsamplingHor and SubsamplingVer
	from _TIFFRGBAImage structure to revert unwanted ABI change.

2007-08-10  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* libtiff/tif_win32.c: use SetFilePointer instead of
	SetFilePointerEx, as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1580

2007-07-19  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_stream.cxx: Put all callback functions declarations
	inside extern "C" block.

	* libtiff/{tif_lzw.c, tif_luv.c, tif_dumpmode.c, tif_print.c,
	tif_read.c, tif_strip.c, tif_thunder.c}: Use "%I64d" printf()
	formatter instead of "%lld" with MSVC compiler.

	* libtiff/{tiffiop.h, tif_aux.c}:  Added _TIFFUInt64ToFloat() and
	_TIFFUInt64ToDouble() functions.

2007-07-18  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirread.c: Handle the case of MSVC 6 when using 64-bit
	integer constants.

	* libtiff/{Makefile.am, Makefile.v}: Do not distribute tiffconf.h,
	remove tif_config.h/tiffconf.h during cleaning. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1573

	* libtiff/tif_unix.c: Do not use O_LARGEFILE. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1577

2007-07-13  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff 4.0.0alpha released.

2007-07-12  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2pdf.c: Added missed extern optind as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1567

	* libtiff/{tif_close.c, tif_dirinfo.c, tiffiop.c, tif_dirread.c,
	tif_dir.h, tif_dir.c, tiffio.h}: Transition to the new-style tag
	extending scheme completed.

2007-07-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_stream.cxx: Adapt to use toff_t again.  Update to
	use standard C++ library size types and attempt to detect overflow
	cases.

2007-07-08  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_jpeg.c, tif_dir.h, tif_dir.c, tif_dirinfo.c, tiffio.h,
	tif_ojpeg.c, tif_print.c, tif_fax3.c, tif_dirread.c}: More work on new
	tag extending scheme. Use the new scheme everywhere.

	* libtiff/{tif_zip.c, tif_predict.c, tif_pixarlog.c, tif_luv.c,
	tif_fax3.c, tif_dirread.c, tif_dirwrite.c, tif_close.c, tif_ojpeg.c,
	tif_jpeg.c, tif_dirinfo.c, tif_dir.h, tiffio.h, tiffiop.h}:
	TIFFFIeldInfo structure replaced with TIFFField structure.
	TIFFFieldInfo retained for the backward compatibility.

2007-07-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiff2pdf.c: Fix a compile problem when JPEG_SUPPORT is not
	defined.

2007-07-04  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_dir.c, tiff.h, tiffio.h, libtiff.def}: Unused
	TIFFReassignTagToIgnore() function and TIFFIgnoreSense enumeration
	removed.

	* libtiff/{tif_dirinfo.c, tif_fax3.c, tif_jbig.c, tif_jpeg.c}: Move
	tags TIFFTAG_FAXRECVPARAMS, TIFFTAG_FAXSUBADDRESS,
	TIFFTAG_FAXRECVTIME and TIFFTAG_FAXDCS to the common tag directory.
	These tags are not codec-specific and relate to image content, so
	process them as other normal tags.

	* libtiff/{tiffio.h, tif_dir.h}: TIFFTagValue structure moved from the
	public tiffio.h to private tif_dir.h.

	* contrib/{acorn, mac-cw, mac-mpw}: Removed as unmaintained and
	outdated.

2007-07-03  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff{tif_acorn.c, tif_apple.c, tif_atari.c, tif_msdos.c,
	tif_win3.c}: Obsoleted portability stuff removed.

	* tools/tiff2ps.c:  Added support 16-bit images as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1566

	Patch from William Bader.

	* tools/tiff2pdf.c: Fix for TIFFTAG_JPEGTABLES tag fetching and
	significant upgrade of the whole utility as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1560

	Now we don't need tiffiop.h in tiff2pdf anymore and will open output
	PDF file using TIFFClientOpen() machinery as it is implemented
	by Leon Bottou.

2007-06-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* configure.ac: Fix typo when substituting value for unsigned 8 bit type.
	Added support for a TIFF_PTRDIFF_T type to use when doing pointer arithmetic.
	Added support for a TIFF_SSIZE_T in order to return memory sizes but still
	allow returning -1 for errors.
	* libtiff/tiffconf.vc.h: Add porting type defintions for WIN32.

2007-06-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* port/strtoull.c: New porting function in case strtoull() is not
	available on the target system.
	* configure.ac: Add configure support for determining sized types
	in a portable way and performing necessary substitutions in
	tif_config.h and tiffconf.h.  Updated tiff.h to use the new
	definitions.

2007-04-27  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2pdf.c: Check the tmpfile() return status as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=154

2007-04-07  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_dir.h, tif_dirread.c, tif_dirinfo.c, tif_jpeg.c,
	tif_fax3.c, tif_jbig.c, tif_luv.c, tif_ojpeg.c, tif_pixarlog.c,
	tif_predict.c, tif_zip.c}: Finally fix bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1274

	by introducing _TIFFMergeFieldInfo() returning integer error status
	instead of void in case of problems with field merging (e.g., if the
	field with such a tag already registered). TIFFMergeFieldInfo() in
	public API remains void. Use _TIFFMergeFieldInfo() everywhere and
	check returned value.

2007-04-07  Frank Warmerdam  <warmerdam@pobox.com>

	* contrib/addtiffo/tif_overview.c: Fix problems with odd sized output
	blocks in TIFF_DownSample_Subsampled() (bug 1542).

2007-04-06  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_jpeg.c: Changed JPEGInitializeLibJPEG() so that it
	will convert from decompressor to compressor or compress to decompress
	if required by the force arguments.  This works around a problem in
	where the JPEGFixupTestSubsampling() may cause a decompressor to
	be setup on a directory when later a compressor is required with the
	force flag set.  Occurs with the addtiffo program for instance.

2007-04-06  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffcrop.c, man/tiffcrop.1: Significant update in
	functionality from Richard Nolde. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1525

2007-03-28  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_fax3.c: "inline static" -> "static inline" for IRIC CC.

2007-03-17  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* start of BigTIFF upgrade - CVS HEAD unstable until further notice

2007-03-07  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* libtiff/tif_getimage.c: workaround for 'Fractional scanline' error reading
	OJPEG images with rowsperstrip that is not a multiple of vertical subsampling
	factor. This bug is mentioned in:
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1390
	http://www.asmail.be/msg0054766825.html

2007-03-07  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* libtiff/tif_win32.c: made inclusion of windows.h unconditional

	* libtiff/tif_win32.c: replaced preprocessor indication for consiously
	unused arguments by standard C indication for the same

2007-02-27  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirread.c: Use uint32 type instead of tsize_t in byte
	counters in TIFFFetchData(). Should finally fix the issue

	http://bugzilla.remotesensing.org/show_bug.cgi?id=890

2007-02-24  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffset.c: Properly handle tags with TIFF_VARIABLE writecount.
	As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1350

	* libtiff/tif_dirread.c: Added special function to handle
	SubjectDistance EXIF tag as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1362

	* tools/tiff2pdf.c: Do not assume inches when the resolution units
	do not specified. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1366

	* tools/{tiffcp.c, tiffcrop.c}: Do not change RowsPerStrip value if
	it was set as infinite. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1368

	* tools/tiffcrop.c, man/tiffcrop.1: New tiffcrop utility contributed
	by Richard Nolde. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1383

2007-02-22  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dir.c: Workaround for incorrect TIFFs with
	ExtraSamples == 999 produced by Corel Draw. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1490

	* libtiff/{tif_dirread.c, tif_read.c}: Type of the byte counters
	changed from tsize_t to uint32 to be able to work with data arrays
	larger than 2GB. Fixes bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=890

	Idea submitted by Matt Hancher.

2007-01-31  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tif2rgba.c: This utility does not work properly on big-endian
	architectures. It was fixed including the bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1149

2007-01-15  Mateusz Loskot <mateusz@loskot.net>

	* Submitted libtiff port for Windows CE platform
	* libtiff/tif_config.wince.h: Added configuration header for WinCE.
	* libtiff/tiffconf.wince.h: Ported old configuration header for WinCE.
	* libtiff/tif_wince.c: Added WinCE-specific implementation of some
	functons from tif_win32.c.
	* libtiff/tif_win32.c: Disabled some functions already reimplemented in tif_wince.c.
	* libtiff/tiffiop.h, port/lfind.c: Added conditional include of some
	standard header files for Windows CE build.
	* tools/tiffinfoce.c: Ported tiffinfo utility for Windows CE.

2006-11-19  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_write.c: TIFFAppendToStrip() - clear sorted flag if
	we move a strip.
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1359

2006-10-13  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dir.c: More fixes for vulnerabilities, reported
	in Gentoo bug ():

	http://bugs.gentoo.org/show_bug.cgi?id=142383

	* libtiff/contrib/dbs/xtiff/xtiff.c: Make xtiff utility compilable.
	Though it is still far from the state of being working and useful.

2006-10-12  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_fax3.c: Save the state of printdir codec dependent
	method.

	* libtiff/tif_jpeg.c: Save the state of printdir codec dependent method
	as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1273

	* libtiff/tif_win32.c: Fixed problem with offset value manipulation
	as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1322

	* libtiff/{tif_read.c, tif_jpeg.c, tif_dir.c}: More fixes for
	vulnerabilities, reported in Gentoo bug ():

	http://bugs.gentoo.org/show_bug.cgi?id=142383

2006-09-28  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_fax3.c, tif_next.c, tif_pixarlog.c}: Fixed multiple
	vulnerabilities, as per	Gentoo bug ():

	http://bugs.gentoo.org/show_bug.cgi?id=142383

2006-09-27  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_lzw.c, libtiff/tif_zip.c: Fixed problems with mixing
	encoding and decoding on the same read-write TIFF handle.  The LZW
	code can now maintain encode and decode state at the same time. The
	ZIP code will switch back and forth as needed.
	http://bugzilla.remotesensing.org/show_bug.cgi?id=757

2006-09-20  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff: Rename config.h.vc and tif_config.h.vc to config.vc.h and
	tif_config.vc.h for easier identification by folks using an IDE.

2006-07-25  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_msdos.c: Avoid handle leak for failed opens.  c/o Thierry Pierron

2006-07-19  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_dirwrite.c: take care not to flush out buffer of strip/tile
	data in _TIFFWriteDirectory if TIFF_BEENWRITING not set.  Relates
	to bug report by Peng Gao with black strip at bottom of images.

2006-07-12  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_dirwrite.c: make sure to use uint32 for wordcount in
	TIFFWriteNormanTag if writecount is VARIABLE2 for ASCII fields.
	It already seems to have been done for other field types.  Needed
	for "tiffset" on files with geotiff ascii text.

2006-07-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* {configure.ac, libtiff/tif_config.h.vc, libtiff/tif_jbig.c}
	(JBIGDecode): jbg_newlen is not available in older JBIG-KIT and
	its use does not appear to be required, so use it only when it is
	available.

2006-06-24  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirinfo.c: Added missed EXIF tag ColorSpace (40961).

	* libtiff/tif_dirread.c: Move IFD fetching code in the separate
	function TIFFFetchDirectory() avoiding code duplication in
	TIFFReadDirectory() and TIFFReadCustomDirectory().

2006-06-19  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/tiff2pdf.c: Fix handling of -q values.
	http://bugzilla.remotesensing.org/show_bug.cgi?id=587

2006-06-17  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_readdir.c: Added case in EstimateStripByteCounts() for tiled
	files.  Modified TIFFReadDirectory() to not invoke
	EstimateStripByteCounts() for case where entry 0 and 1 are unequal
	but one of them is zero.
	  http://bugzilla.remotesensing.org/show_bug.cgi?id=1204

2006-06-08  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_open.c, tif_dirread.c, tiffiop.h}: Move IFD looping
	checking code in the separate function TIFFCheckDirOffset().

	* libtiff/tif_aux.c: Added _TIFFCheckRealloc() function.

	* tools/tiffcmp.c: Fixed floating point comparison logic as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1191

	* libtiff/tif_fax3.c: Fixed problems in fax decoder as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1194

	* tools/tiff2pdf.c: Fixed buffer overflow condition in
	t2p_write_pdf_string() as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1196

2006-06-07  Andrey Kiselev  <dron@ak4719.spb.edu>

	* {configure, configure.ac, libtiff/tif_jbig.c, tools/tiffcp.c}: Added
	support for JBIG compression scheme (34661 code) contributed by Lee
	Howard. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=896

	* configure, configure.ac: OJPEG support enabled by default.

	* contrib/ojpeg/: Removed. New OJPEG support does not need this patch.

2006-06-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/{tif_dirinfo.c, tif_print.c} : Fix crash in
	TIFFPrintDirectory().  Joris Van Damme authored the fix.

2006-04-21  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2pdf.c: Unified line ending characters (always use '\n')
	as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1163

	* README.vms, Makefile.am, configure.com, libtiff/{Makefile.am,
	tif_config.h-vms, tif_stream.cxx, tif_vms.c, tiffconf.h-vms}:
	Added support for OpenVMS by Alexey Chupahin, elvis_75@mail.ru.

2006-04-20  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/{fax2ps.c, fax2tiff.c, ppm2tiff.c, ras2tiff.c, tiff2pdf.c}:
	Properly set the binary mode for stdin stream as per bug
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1141

	* man/{bmp2tiff.1, fax2ps.1, fax2tiff.1, gif2tiff.1, ras2tiff.1,
	raw2tiff.1, rgb2ycbcr.1, sgi2tiff.1, tiff2bw.1, tiff2pdf.1, tiff2ps.1,
	tiff2rgba.1, tiffcmp.1, tiffcp.1, tiffdither.1,	tiffdump.1, tiffgt.1,
	tiffset.1}: Improvements in page formatting as per bug
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1140

	* html/tools.html, html/man/Makefile.am, tools/tiff2pdf.c: Fixed
	typos as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1139

2006-04-18  Frank Warmerdam  <warmerdam@pobox.com>

	* nmake.opt: use /EHsc for VS2005 compatibility.  Also define
	_CRT_SECURE_NO_DEPRECATE to avoid noise on VS2005.

2006-04-12  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* libtiff/tif_getimage.c: Added support for planarconfig separate
	non-subsampled YCbCr (i.e. separate YCbCr with subsampling [1,1])

2006-04-11  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* libtiff/tif_getimage.c: Revision of all RGB(A) put routines
	- Conversion of unassociated alpha to associated alpha now done with
	  more performant LUT, and calculation more correct
	- Conversion of 16bit data to 8bit data now done with
	  more performant LUT, and calculation more correct
	- Bugfix of handling of 16bit RGB with unassociated alpha

2006-04-11  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* libtiff/tif_getimage.c:
	- When there is no alpha, gtTileSeparate and gtStripSeparate allocated
	  buffer for alpha strile and filled it, only to never read it back.
	  Removed allocation and fill.
	- Minor rename of vars in gtTileSeparate and gtStripSeparate
	  anticipating planned functionality extension

2006-04-08  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* libtiff/tif_getimage.c: renamed pickTileContigCase to PickContigCase
	and pickTileSeparateCase to PickSeparateCase as both work on strips as
	well

	* libtiff/tif_getimage.c: moved img->get selection from
	TIFFRGBAImageBegin into PickContigCase and PickSeparateCase to create
	logical hook for planned functionality extension

2006-04-08  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* libtiff/tif_ojpeg.c: resolved memory leak that was a consequence
	of inappropriate use of jpeg_abort instead of jpeg_destroy

2006-04-07  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* libtiff/tif_getimage.c: replaced usage of TIFFScanlineSize in
	gtStripContig with TIFFNewScanlineSize so as to fix buggy behaviour
	on subsampled images - this ought to get sorted when we feel brave
	enough to replace TIFFScanlineSize alltogether

	* libtiff/tif_ojpeg.c: fixed bug in OJPEGReadSkip

2006-04-04  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* libtiff/tiffio.h: added new type tstrile_t

	* libtiff/tif_dir.h: changed types of td_stripsperimage and td_nstrips
	to new tstrile_t, types of td_stripoffset and td_stripbytecount to
	toff_t*

	* libtiff/tif_ojpeg.c: totally new implementation

	* libtiff/tif_dirread.c: added several hacks to suit new support of
	OJPEG

	* libtiff/tif_getimage.c: removed TIFFTAG_JPEGCOLORMODE handling
	of OJPEG images in favor of tif_getimage.c native handling of
	YCbCr and desubsampling

2006-03-29  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_jpeg.c: JPEGVSetField() so that altering the photometric
	interpretation causes the "upsampled" flag to be recomputed.  Fixes
	peculiar bug where photometric flag had to be set before jpegcolormode
	flag.

2006-03-25  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* libtiff/tif_jpeg.c: strip size related bugfix in encode raw

	* libtiff/tif_strip.c: temporarilly added two new versions of
	TIFFScanlineSize
	  - TIFFNewScanlineSize: proposed new version, after all related
	    issues and side-effects are sorted out
	  - TIFFOldScanlineSize: old version, from prior to 2006-03-21 change
	This needs further sorting out.

2006-03-25  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* contrib/addtiffo/tif_ovrcache.c: bugfix to correctly pass size
	of last truncated strip data to TIFFWriteEncodedStrip

2006-03-25  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* libtiff/{tif_jpeg.c, tif_strip.c}: bugfix of tif_jpeg decode raw

2006-03-25  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* libtiff/tif_getimage.c: bugfix/rewrite of putcontig8bitYCbCr22tile

	* libtiff/tif_getimage.c: added putcontig8bitYCbCr12tile

	* libtiff/tif_read.c: added support for new TIFF_NOREADRAW flag to
	prepare	the path for new tif_ojpeg.c

2006-03-23  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff 3.8.2 released.

	* tools/Makefile.am: Use runtime paths linker flags when rpath
	option enabled.

2006-03-21  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/libtiff.def: Added missed exports as per bug
	http://bugzilla.remotesensing.org/attachment.cgi?id=337

	* contrib/addtiffo/Makefile.vc, libtiff/Makefile.vc, port/Makefile.vc,
	tools/Makefile.vc: Makefiles improvements as per bug
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1128

	* nmake.opt libtiff/{tif_config.h.vc, tif_unix.c, tiffio.h},
	tools/{fax2ps.c, fax2tiff.c, tiff2pdf.c}: Fixed win32 I/O functions
	usage as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1127

	* libtiff/tif_strip.c: Take subsampling in account when calculating
	TIFFScanlineSize().

	* tools/tiffcp.c: Do not set RowsPerStrip bigger than image length.

2006-03-17  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/fax2tiff.c: Fixed wrong TIFFerror() invocations as per bug
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1125

	* tools/fax2ps.c: Fixed reading the input stream from stdin as per bug
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1124

2006-03-16  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tiffiop.h: Added decalration for
	_TIFFSetDefaultCompressionState().

	* libtiff/{tif_jpeg.c, tif_fax3.c, tif_zip.c, tif_pixarlog.c,
	tif_lzw.c, tif_luv.c}: Use _TIFFSetDefaultCompressionState() in all
	codec cleanup methods. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1120

2006-03-15  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_jpeg.c: Do not cleanup codec state in TIFFInitJPEG(). As
	per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1119

	* tools/raw2tiff.c: Do not set RowsPerStrip larger than ImageLength.
	As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1110

	* libtiff/tiffiop.h: dblparam_t typedef removed; GLOBALDATA macro
	removed; move here the STRIP_SIZE_DEFAULT macro definition.

	* libtiff/{tif_dirread.c, tif_strip.c}: Removed STRIP_SIZE_DEFAULT
	macro definition.

	* libtiff/tif_dir.c: Use double type instead of dblparam_t.

2006-03-14  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirread.c: Do not check the PlanarConfig tag presence
	in TIFFReadDirectory, because it is always set at the start of
	function and we allow TIFFs without that tag set.

2005-03-13  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff 3.8.1 released.

2006-03-07  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirread.c: Fixed error reporting in TIFFFetchAnyArray()
	function as per bug
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1102

	* libtiff/tif_dirread.c: More wise check for integer overflow
	condition as per bug
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1102

	* libtiff/{tif_jpeg.c, tif_pixarlog.c, tif_fax3.c, tif_zip.c}:
	Properly restore setfield/getfield methods in cleanup functions. As
	per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1102

2006-03-03  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_predict.c, tif_predict.h}: Added new function
	TIFFPredictorCleanup() to restore parent decode/encode/field methods.

	* libtiff/{tif_lzw.c, tif_pixarlog.c, tif_zip.c}: Use
	TIFFPredictorCleanup() in codec cleanup methods. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1102

	* libtiff/tif_dirread.c: Fixed integer overflow condition in
	TIFFFetchData() function. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1102

2006-03-01  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_ojpeg.c: Set the ReferenceBlackWhite with the
	TIFFSetField() method, not directly. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1043

	* tools/ppm2tiff.c: Added support for PBM files as per bug
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1044

2006-02-27  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_write.c: Small code rearrangement in TIFFWriteScanline()
	to avoid crash as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1081.

2006-02-26  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2pdf.c: Functions t2p_sample_rgbaa_to_rgb() and
	t2p_sample_rgba_to_rgb() was used in place of each other, that was
	resulted in problems with RGBA images with associated alpha.
	As per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1097

2006-02-23  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirwrite.c: Properly write TIFFTAG_DOTRANGE tag as per
	bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1088.

	* libtiff/tif_print.c: Properly read TIFFTAG_PAGENUMBER,
	TIFFTAG_HALFTONEHINTS, TIFFTAG_YCBCRSUBSAMPLING and TIFFTAG_DOTRANGE
	tags as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1088.

	* tools/tiff2ps.c: Properly scale all the pages when converting
	multipage TIFF with /width/height/center options set. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1080

2006-02-15  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2pdf.c: Do not create output file until all option checks
	will be done. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1072

	* tools/bmp2tiff.c: Added ability to create multipage TIFFs from the
	list of input files as per bug:

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1077

2006-02-09  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_tile.c: Fix error reporting in TIFFCheckTile() as per
	bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1063.

	* tools/tiffgt.c: Avoid crashing in case of image unsupported by
	TIFFRGBAImage interface.

	* libtiff/tif_color.c: Avoid overflow in case of wrong input as per
	bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1065.

2006-02-07  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/tiff2pdf.c: Fixed support for non-YCbCr encoded JPEG
	compressed TIFF files, per submission from Dan Cobra.

2006-02-07  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_dirread.c, tif_packbits.c, tif_win32.c}: Properly
	cast values to avoid warnings. As per bug
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1033.

	* libtiff/tif_dirinfo.c: Use TIFF_NOTYPE instead of 0 when
	appropriate. As per bug
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1033.

	* libtiff/tif_aux.c: Fixed type of temporary variable in
	_TIFFCheckMalloc() as per bug
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1033.

2006-02-06  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_aux.c: Return static array when fetching default
	YCbCrCoefficients (another problem, reported a the
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1029 entry).

2006-02-03  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dir.c: Special handling for PageNumber, HalftoneHints,
	YCbCrSubsampling and DotRange tags as per bugs

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1029
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1034

	* libtiff/tif_dirread.c: Use _TIFFGetExifFieldInfo() instead of
	_TIFFGetFieldInfo() in TIFFReadEXIFDirectory() call as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1026.

2006-01-23  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtool related stuff updated from the 2.1a branch.

2006-01-11  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/bmp2tiff,pal2rgb,ppm2tiff,ras2tiff,raw2tiff,sgi2tiff,
	tiff2bw,tiffcp: Fixed jpeg option processing so -c jpeg:r:50 works
	properly as per bug:
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1025

2006-01-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* configure.ac: Fix with_default_strip_size comparison as reported
	by Norihiko Murase.

2006-01-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* test/Makefile.am (LIBTIFF): Due to linking against libtiff
	incorrectly, tests were not actually testing the uninstalled
	libtiff.  Now they are.

2006-01-04  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirinfo.c: Change definitions for TIFFTAG_ICCPROFILE,
	TIFFTAG_PHOTOSHOP, TIFFTAG_RICHTIFFIPTC, TIFFTAG_XMLPACKET: readcount
	should be uint32 value.

2006-01-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* html/man/Makefile.am (htmldoc): Fix htmldoc rule so that it can
	be used if build directory is not the same as source directory.
	* man/{TIFFGetField.3tiff, TIFFSetField.3tiff}: Documented
	TIFFTAG_PHOTOSHOP, TIFFTAG_RICHTIFFIPTC, and TIFFTAG_XMLPACKET,
	and re-sorted tag names in alphabetical order.

2005-12-29  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff 3.8.0 released.

2005-12-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/bmp2tiff.c (main): Fixed warning regarding returning
	inconsistent types from a condition.
	* tools/tiffcmp.c (CheckLongTag): Eliminate warning due to printf
	format.
	* tools/bmp2tiff.c: Reduce compilation warnings on big-endian CPUs.

2005-12-28  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* html/{index.html, support.hml, libtiff.html}: Cleaned up HTML

2005-12-27  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tiffio.h: Added VC_EXTRALEAN definition before including
	windows.h, to reduce the compile time.

2005-12-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_jpeg.c: Improve compilation under MinGW.

2005-12-26  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_dir.c, tif_dir.h, tif_dirread.c, tif_dirinfo.c}:
	tiffFieldInfo and exifFieldInfo arrays definitions moved back to
	tif_dirinfo.c; added _TIFFGetFieldInfo() and _TIFFGetExifFieldInfo()
	private functions to retrieve FieldInfo arrays.

2005-12-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* html/build.html: Added some additional instructions for when
	building using MSVC under Windows.  Also fixed two HTML syntax
	errors and used HTML Tidy to tidy up the HTML syntax and
	formatting.

2005-12-24  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_aux.c, tif_dir.c, tif_dir.h, tif_dirwrite.c,
	tif_print.c, tif_getimage.c}: Make InkSet, NumberOfInks, DotRange and
	StoNits tags custom.

2005-12-23  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_aux.c, tif_dir.c, tif_dir.h, tif_print.c}: Make
	WhitePoint tag custom.

	* libtiff/{tif_dir.h, tiff.h}: More EXIF tags added.

2005-12-23  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* libtiff/tiffio.h: fixed typo that potentially resulted in
	redefininition of USE_WIN32_FILEIO

	* libtiff/*: Added more 'dual-mode' error handling: Done TIFFWarning
	calls in core LibTiff.

2005-12-21  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_dir.c, tif_dir.h, tif_print.c}: Make RichTIFFIPTC,
	Photoshop and ICCProfile tags custom.

2005-12-21  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* libtiff/*, contrib/*: Added 'dual-mode' error handling, enabling
	newer code to get context indicator in error handler and still
	remain compatible with older code: Done TIFFError calls everywhere
	except in tools

2005-12-20  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffcp.c: Added many error reporting messages; fixed integer
	overflow as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=789

2005-12-16  Frank Warmerdam  <warmerdam@pobox.com>

	* contrib/addtiffo/*: Major upgrade by Joris to support subsampled
	YCbCr images in jpeg compressed TIFF files.

2005-12-14  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffcp.c: Return non-zero status when reading fails (again).

2005-12-13  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffcp.c: Return non-zero status when reading fails.

2005-12-12  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_dir.h, tiff.h}: Added more EXIF tags.

2005-12-09  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_dir.c, tif_dir.h, tif_print.c}: Make XMLPacket tag
	custom.

	* tools/tiffinfo.c: Print EXIF directory contents if exist.

	* libtiff/tiff.h: Few EXIF tag numbers added.

	* libtiff/{tif_dirinfo.c, tif_dirread.c, tif_dir.h, tif_dir.c,
	tiffio.h}: Preliminary support to read custom directories. New
	functions: TIFFReadCustomDirectory() and TIFFReadEXIFDirectory().

2005-12-07  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_dirinfo.c, tif_dirread.c, tif_dir.h, tif_dir.c}:
	More work to implement custom directory read support.

	* libtiff/{tif_aux.c, tif_dirinfo.c, tif_dirread.c, tif_dir.h,
	tif_dir.c, tif_print.c}: Make YCbCrCoefficients and ReferenceBlackWhite
	tags custom.

2005-12-05  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirread.c: One more workaround for broken
	StripByteCounts tag. Handle the case when StripByteCounts array filled
	with completely wrong values.

2005-11-30  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirinfo.c: Release file descriptor in case of failure
	in the TIFFOpenW() function as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1003

	* libtiff/tif_dirinfo.c: Correctly yse bsearch() and lfind()
	functions as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=1008

2005-11-20  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_open.c, tiff.h, tiffdump.c: Incorporate preliminary support
	for MS MDI format.
	http://bugzilla.remotesensing.org/show_bug.cgi?id=1002

	* .cvsignore: many files added, and a few update according
	to suggestion of Brad HArds on tiff mailing list.

2005-11-03  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/libtiff.def, tiffiop.h, tiffio.h: Made TIFFFreeDirectory
	public.

2005-10-31  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/fax2tiff.c: Properly calculate sizes of temporary arrays
	as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=943

	* tools/fax2tiff.c: Added option '-r' to set RowsPerStrip parameter
	as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=944

	* tools/tiffdump.c: Fixed typeshift and typemask arrays initialization
	problem as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=946

	* tools/bmp2tiff.c: Fixed possible integer overflow error as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=965

	* libtiff/tif_dirinfo.c: Make XResolution, YResolution and
	ResolutionUnit tags modifiable during write process. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=977

	* tools/tiffsplit.c: Copy fax related fields over splitted parts
	as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=983

2005-10-21  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_dirread.c: Don't try and split single strips into "0" strips
	in ChopUpSingleUncompressedStrip.  This happens in some degenerate
	cases (like 1x1 files with stripbytecounts==0 (gtsmall.jp2 embed tiff)

2005-10-20  Joris Van Damme  <joris.at.lebbeke@skynet.be>

	* tif_fax3.c: changed 'at scanline ...' style warning/errors
	with incorrect use of tif_row, to 'at line ... of
	strip/tile ...' style

2005-10-15  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_write.c: fixed setting of planarconfig as per bug report
	on the mailing list from Joris.

2005-10-07  Andrey Kiselev  <dron@ak4719.spb.edu>

	* configure.ac, configure, nmake.opt, libtiff/{tif_config.h,
	tif_dirread.c}: Make the default strip size configurable via the
	--with-default-strip-size and STRIP_SIZE_DEFAULT options.

2005-09-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* html/support.html: Fixed link to documentation on Greg Ward's
	LogLuv TIFF format.

2005-09-28  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffdump.c: Fixed crash when reading malformed tags.

2005-09-20  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2pdf.c: Added missed 'break' statement as per bug
	http://bugzilla.remotesensing.org/show_bug.cgi?id=932

2005-09-12  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff 3.7.4 released.

	* {configure, configure.ac, Makefile.am, autogen.sh}: Applied patch
	from Patrick Welche (all scripts moved in the 'config' and 'm4'
	directories).

2005-09-12  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_open.c: reintroduce seek to avoid problem on solaris.

2005-09-05  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dir.c: When prefreeing tv->value in TIFFSetFieldV
	also set it to NULL to avoid double free when re-setting custom
	string fields as per:

	http://bugzilla.remotesensing.org/show_bug.cgi?id=922

2005-08-12  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_print.c: avoid signed/unsigned warning.

	* libtiff/tif_dirread.c: removed unused variable.

2005-07-30  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dir.c: Fixed up support for swapping "double complex"
	values (128 bits as 2 64 bits doubles).  GDAL gcore tests now
	pass on bigendian (macosx) system.

2005-07-28  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_aux.c, tif_dirread.c, tif_fax3.c, tiffiop.h}: Rename
	CheckMalloc() function to _TIFFCheckMalloc() and make it available
	globally as an internal helper routine.

2005-07-27  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dir.c: More improvements in the "pass by value" part of
	the custom tags handling code.

2005-07-26  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_dirread.c, tif_dirinfo.c}: Do not upcast BYTEs to
	SHORTs in the TIFFFetchByteArray(). Remove TIFFFetchExtraSamples()
	function, use TIFFFetchNormalTag() instead as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=831

	Remove TIFFFetchExtraSamples() function, use TIFFFetchNormalTag()
	instead.

	* libtiff/tiffconf.h.in: One more attempt to fix the AIX bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=39

2005-07-25  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_print.c: Fixed printing of the BYTE and SBYTE arrays.

	* tools/tiffdump.c: Added support for TIFF_IFD datatype.

2005-07-21  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_write.c: Do not check the PlanarConfiguration field in
	the TIFFWriteCheck() function in case of single band images (as per
	TIFF spec).

2005-07-12  Andrey Kiselev  <dron@ak4719.spb.edu>

	* SConstruct, libtiff/SConstruct: Added the first very preliminary
	support for SCons software building tool (http://www.scons.org/).
	This is experimental infrastructure and it will exist along with the
	autotools mechanics.

2005-07-07  Andrey Kiselev  <dron@ak4719.spb.edu>

	* port/{getopt.c, strcasecmp.c, strtoul.c}: Update modules from
	the NetBSD source tree (the old	4-clause BSD license changed to
	the new 3-clause one).

	* configure.ac, port/lfind.c, libtiff/tiffiop.h: Added lfind()
	replacement module.

	* port/dummy.c: Make the dummy function static.

2005-07-06  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffcp.c: Fixed WhitePoint tag copying.

	* libtiff/{tif_dir.c, tif_dir.h, tif_dirinfo.c, tif_print.c}:
	Make FieldOfViewCotangent, MatrixWorldToScreen, MatrixWorldToCamera,
	ImageFullWidth, ImageFullLength and PrimaryChromaticities tags custom.

2005-07-04  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff 3.7.3 released.

	* configure, configure.ac: Do not use empty -R option when linking
	with --enable-rpath.

2005-07-01  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tiffiop.h, tif_open.c}: Added open option 'h' to avoid
	reading the first IFD when needed. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=875

	* libtiff/tif_color.c: Better use of TIFFmin() macro to avoid side
	effects.

2005-06-23  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2pdf.c: Print two characters per loop in the
	t2p_write_pdf_trailer(). As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=594

	* tools/tiffgt.c: Use MacOS X OpenGL framework when appropriate. As
	per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=844

	* acinclude.m4: Updated to latest OpenGL test macros versions.

	* libtiff/tiff.h: Use correct int size on Sparc 64bit/Sun compiler
	platform. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=855

2005-06-14  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirinfo.c: Added support for ClipPath, XClipPathUnits
	and YClipPathUnits tags.

2005-06-07  Andrey Kiselev  <dron@ak4719.spb.edu>

	* contrib/addtiffo/tif_ovrcache.c: Properly extract tile/strip size;
	use pixel sized shift in contigous case.

2005-06-06  Andrey Kiselev  <dron@ak4719.spb.edu>

	* contrib/addtiffo/{tif_overview.c, tif_ovrcache.c, tif_ovrcache.h}:
	Make overviews working for contiguos images.

2005-06-03  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_open.c: Replace runtime endianess check with the compile
	time one.

	* libtiff/tif_predict.c: Floating point predictor now works on
	big-endian hosts.

2005-06-01  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dir.c: Use _TIFFsetString() function when read custom
	ASCII values.

	* libtiff/{tif_dirinfo.c, tif_dir.h, tif_dir.c, tif_print.c}: Make
	DocumentName, Artist, HostComputer, ImageDescription, Make, Model,
	Copyright, DateTime, PageName, TextureFormat, TextureWrapModes and
	TargetPrinter tags custom.

	* libtiff/tif_jpeg.c: Cleanup the codec state depending on
	TIFF_CODERSETUP flag (to fix memry leaks).

	* libtiff/tif_jpeg.c: Initialize JPEGTables array with zero after
	allocating.

2005-05-26  Andrey Kiselev  <dron@ak4719.spb.edu>

	* configure.ac, libtiff/Makefile.am: Added workaround for
	OpenBSD/MirOS soname problem as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=838

	* libtiff/tif_dirwrite.c: Use tdir_count when calling
	TIFFCvtNativeToIEEEDouble() in the TIFFWriteDoubleArray() function as
	per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=845

2005-05-25  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/ppm2tiff.c: Fixed format string when read PPM file header with
	the fscanf() function. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=861

	* libtiff/{tif_dirinfo.c, tif_print.c}: TIFFFetchByteArray() returns
	uint16 array when fetching the BYTE and SBYTE filds, so we should
	consider result as pointer to uint16 array and not as array of chars.
	As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=831

	* libtiff/tif_dir.c: More efficient custom tags retrieval as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=830

	* libtiff/tif_win32.c: Use FILE_SHARE_READ | FILE_SHARE_WRITE share
	mode in CreateFile() call as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=829

	* libtiff/Makefile.am: Fixed parallel compilation of the libtiff and
	libtiffxx libraries as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=826

	* contrib/addtiffo/{tif_overview.c, tif_ovrcache.h}: Sinchronized with
	GDAL.

2005-05-23  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_jpeg.c: Substantial fix for addtiffo problems with
	JPEG encoded TIFF files.  Pre-allocate lots of space for jpegtables
	in directory.

2005-05-22  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirread.c: Changed the code that computes
	stripbytecount[0] if it appears bogus to ignore if stripoffset[0] is
	zero. This is a common case with GDAL indicating a "null" tile/strip.

2005-05-17  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffsplit.c: Check for JPEGTables tag presence before copying.

2005-05-06  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirread.c: Applied similar change to
	TIFFFetchPerSampleLongs and TIFFFetchPerSampleAnys.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=843

	* libtiff/tif_jpeg.c: added LIB_JPEG_MK1 support in JPEGDecodeRaw().

2005-05-06  Andrey Kiselev  <dron@ak4719.spb.edu>
	* tools/tiff2pdfr.c, man/tiff2pdf.1: Calculate the tile width properly;
	added new option '-b' to use interpolation in output PDF files (Bruno
	Ledoux).

2005-05-05  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirread.c: Ensure that broken files with too many
	values in PerSampleShorts work ok instead of crashing.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=843

2005-04-27  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffdither.c: Copy the PhotometricInterpretation tag from the
	input file.

2005-04-15  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_predict.c: Added ability to encode floating point
	predictor, as per TIFF Technical Note 3.

2005-04-14  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_predict.h, tif_predict.c}: Added ability to decode
	floating point predictor, as per TIFF Technical Note 3.

2005-04-13  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tiffio.h, tiffiop.h, tif_dir.c, tif_read.c, tif_swab.c}:
	Added _TIFFSwab24BitData() and TIFFSwabArrayOfLong() functions used to
	swap 24-bit floating point values.

	* libtiff/tiff.h: Added predictor constants.

2005-04-08  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tiffiop.h, tif_dir.c}: Use uint32 type for appropriate
	values in _TIFFVSetField() function. Inspired by the bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=816

	* man/TIFFSetField.3tiff: Fixed definition of the TIFFTAG_INKNAMES tag
	as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=816

2005-03-30  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_open.c: Do not read header in case the output file
	should be truncated (Ron).

	* libtiff/{tif_dirinfo.c, tif_config.h.vc}: Use lfind() instead
	of bsearch() in _TIFFFindFieldInfoByName() function (Ron).

	* libtiff/{tiff.h, tif_dirinfo.c}: Fixes in EXIF tag ordering (Ron).

2005-03-22  Andrey Kiselev  <dron@ak4719.spb.edu>

	* configure.ac, libtiff/Makefile.am: Use libtool machinery to pass
	rpath option.

2005-03-21  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_dir.c, tif_print.c}: Handle all data types in custom
	tags.

2005-03-18  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/dirinfo.c: Added DNG tags.

	* libtiff/{tif_dir.c, tif_print.c}: More improvements in custom tag
	handling code.

	* libtiff/tiff.h: More comments; added missed DNG tag (LensInfo);
	added DNG 1.1.0.0 tags.

	* tools/tif2pdf.c: Fixed problem with alpha channel handling as per
	bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=794

	* man/TIFFGetField.3tiff: Add a note about autoregistered tags.

2005-03-17  Andrey Kiselev  <dron@ak4719.spb.edu>

	* nmake.opt: Build with Win32 CRT library by default.

	* tools/tiff2ps.c: Fixed typo in page size handling code.

	* libtiff/{tif_dir.c, tif_print.c}: Support for custom tags, passed
	by value.

	* libtiff/{tiff.h, tif_dirinfo.c, tiffiop.h}: Added EXIF related tags.

2005-03-15  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff 3.7.2 released.

2005-03-09  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffcmp.c: Added ability to compare the 32-bit integer and
	floating point data; complain on unsupported bit depths.

2005-03-05  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tif_stream.cxx: Use ios namespace instead of ios_base to support
	GCC 2.95.

	* libtiff/{tiff.h, tif_fax3.tif, tif_jpeg.c}: Applied correct patch from
	Lee Howard for HylaFax DCS tag
	(see http://bugzilla.remotesensing.org/show_bug.cgi?id=771)

2005-03-04  Andrey Kiselev  <dron@ak4719.spb.edu>

	* configure, configure.ac: Use -rpath option instead of -R as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=732

	* libtiff/{tiff.h, tif_fax3.tif, tif_jpeg.c}: Applied patch from Lee
	Howard to support a new tag TIFFTAG_FAXDCS (34911) used in HylaFax
	software. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=771

	* nmake.opt, html/build.html: Add more comments, change the config
	file organization a bit as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=764

	* tools/tiffcmp.c: Use properly sized buffer in short arrays comparison
	as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=785

2005-03-03  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirread.c: More logic to guess missed strip size as per
	bug http://bugzilla.remotesensing.org/show_bug.cgi?id=705

	* tools/fax2ps.c: Replace insecure mktemp() function with the
	tmpfile() as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=786

2005-02-04  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tiff.h: Changed the int8 definition to be always signed char
	as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=727

	* libtiff/tiffio.h: Move TIFFOpenW() function into the extern "C"{}
	block as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=763

2005-02-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiffgt.c: Fix problem on big-endian CPUs so that images
	display more correctly.  Images display brighter than they should
	on a Sun workstation.

2005-02-03  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirread.c: Estimate strip size in case of wrong or
	suspicious values in the tags. As per bugs

	http://bugzilla.remotesensing.org/show_bug.cgi?id=705

	and

	http://bugzilla.remotesensing.org/show_bug.cgi?id=320

	* tools/tiff2ps.c: Fixed problem with page sizes as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=742

2005-01-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tiff.h (TIFFTAG_TILEWIDTH): Corrected description.
	(TIFFTAG_TILELENGTH): Corrected description.

2005-01-30  Andrey Kiselev  <dron@ak4719.spb.edu>

	* configure.ac: Fixes for --with-docdir option as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=759

	* libtiff/tif_open.c: Remove unnesessary TIFFSeekFile() call as per
	bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=756

	* libtiff/tif_stream.cxx: Fixes for C++ stream interface from
	Michael Rinne and Edward Lam.

2005-01-15  Andrey Kiselev  <dron@ak4719.spb.edu>

	* configure.ac: Make the documentation directory location configurable
	via the --with-docdir option (as suggested by Jeremy C. Reed).

	* libtiff/tif_color.c: Use double as the second argument of pow()
	function in TIFFCIELabToRGBInit(). As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=741

	* libtiff/tif_pixarlog.c: Avoid warnings when converting float to
	integer as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=740

	* libtiff/tif_getimage.c: Always fill the error message buffer in
	TIFFRGBAImageBegin() as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=739

2005-01-12  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_jpeg.c: Added ability to read/write the fax specific
	TIFFTAG_FAXRECVPARAMS, TIFFTAG_FAXSUBADDRESS and TIFFTAG_FAXRECVTIME
	tags as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=736

	* libtiff/tif_win32.c: Fixed message formatting in functions
	Win32WarningHandler() and Win32ErrorHandler() as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=735

	* tools/tiff2ps.c: Interpret the -w and -h options independently. As
	per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=689

2005-01-11  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tiffio.h: Move the color conversion routines in the 'extern
	"C"' section as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=727

	* libtiff/tiff.h: Restore back the workaround for AIX Visual Age C
	compiler to avoid double definition of BSD types as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=39

	* libtiff/Makefile.am: Place the C++ stream API in the separate
	library called libtiffxx to avoid unneeded dependencies. Probably
	there will be more C++ API in the future. As per bugs

	http://bugzilla.remotesensing.org/show_bug.cgi?id=733

	and

	http://bugzilla.remotesensing.org/show_bug.cgi?id=730

2005-01-05  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffdump.c: Fixed problem when read broken TIFFs with the
	wrong tag counts (Dmitry V. Levin, Martin Pitt).

	* configure.ac: Replace --disable-c++ with the --disable-cxx option as
	per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=730

2004-12-25  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_getimage.c: More fixes for multiple-alpha-channelled
	RGB-images as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=713


	* tools/tiffset.c: Convert character option to integer value as per
	bug http://bugzilla.remotesensing.org/show_bug.cgi?id=725

2004-12-20  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff 3.7.1 released.

	* html/tiffset.1.html: Add missed manual page as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=678

	* libtiff/tiff.h: Revert back libtiff data type definitions as per
	bug http://bugzilla.remotesensing.org/show_bug.cgi?id=687

2004-12-19  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirread.c: Do not forget about TIFF_VARIABLE2 when
	checking for tag count in TIFFReadDirectory() function. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=713

	* libtiff/{tif_dirread.c, tif_fax3.c}: More argument checking in
	CheckMallock() function.

	* libtiff/tif_getimage.c: Support for multiple-alpha-channelled
	RGB-images as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=718

2004-12-15  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_getimage.c: #define A1 bracketing for clean build on
	SunPro compiler.

2004-12-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* autogen.sh: aclocal and autoheader should be executed after
	libtoolize.  Also add '-I .' to aclocal invocation to check
	current directory for macros.

2004-12-10  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirwrite.c: Always write TIFFTAG_SUBIFD using LONG type
	as per bugs

	http://bugzilla.remotesensing.org/show_bug.cgi?id=703

	and

	http://bugzilla.remotesensing.org/show_bug.cgi?id=704

2004-12-04  Andrey Kiselev  <dron@ak4719.spb.edu>

	* nmake.opt: Link with the user32.lib in windowed mode. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=697

	* libtiff/tif_win32.c: Use char* strings instead of TCHAR in windowed
	mode as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=697

	* libtiff/tif_config.in.vc: Removed unneded definitions for
	read/open/close/lseek functions to fix the

	http://bugzilla.remotesensing.org/show_bug.cgi?id=680

2004-12-03  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_dir.c, tif_dirread.c}: Remove TIFFReassignTagToIgnore()
	call from the TIFFReadDirectory() function. TIFFReassignTagToIgnore
	must be removed in the future, as it was never used properly. As per
	bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=692

2004-11-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_jpeg.c: Added a work-around in order to allow
	compilation with the heavily modified version of libjpeg delivered
	with Cygwin.

2004-11-29  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dir.c: Properly handle tags, which have the uint32
	counts. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=693

	* tools/fax2ps.c: Be able to extract the first page (#0). As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=690

2004-11-28  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_unix.c: Make UNIX module compilable (and usable)
	on Windows.

	* nmake.opt: Add missed DLLNAME variable.

2004-11-26  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/makefile.vc: make it easier to rename the libtiff DLL.

2004-11-24  Andrey Kiselev  <dron@ak4719.spb.edu>

	* man/libtiff.3tiff: Improvements in the "LIST OF ROUTINES" table as
	per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=545

	* man/tiffset.1: Added manual page for tiffset tool written by Jay
	Berkenbilt. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=678

2004-11-23  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_error.c: fixed TIFFerror call to be TIFFError.

2004-11-21  Frank Warmerdam  <warmerdam@pobox.com>

	* html/document.html: Updated Adobe web links as per email from Joris.

2004-11-21  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tiffio.hxx, tiffio.h}: C++ stream interface moved to new
	file tiffio.hxx. We don't have any C++ in tiffio.h, those who want to
	use C++ streams should #include <tiffio.hxx>.

2004-11-13  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tiff.h: Added Adobe DNG tags.

	* libtiff/tif_win32.c: Typo fixed.

	* libtiff/{tif_stream.cxx, tiffio.h}: C++ stream interface updated to
	be compliant with the latest standard. Appropriate additions in
	makefiles now completed.

2004-11-11  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffset.c, libtiff/tif_dirinfo.c: Properly handle the
	different tag types. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=600

2004-11-10  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_aux.c: Set the appropriate ReferenceBlackWhite array for
	YCbCr image which lacks that tag (noted by Hans Petter Selasky).

2004-11-09  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_color.c: Division by zero fixed (Hans Petter Selasky).

2004-11-07  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_stream.cxx, tiffio.h}: Added C++ stream interface
	contributed by Edward Lam (see
	http://bugzilla.remotesensing.org/show_bug.cgi?id=654 for details).
	Though no changes in any makefiles yet.

2004-11-05  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_open.c: Removed close() in TIFFClientOpen() if file
	is bad. This is the callers responsibility.
	http://bugzilla.remotesensing.org/show_bug.cgi?id=651

2004-11-05  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tiffio.h, tif_win32.c, libtiff.def}: Added TIFFOpenW()
	function to work with the double byte strings (used to represent
	filenames in some locales). As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=625

	* libtiff/tif_dirread.c: Fixed problem when fetching BitsPerSample and
	Compression tags of type LONG from broken TIFFS as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=662

	* libtiff/tif_dirinfo.c: Fixed definition for TIFFTAG_RICHTIFFIPTC,
	the writecount should have uint32 type. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=662

	* libtiff/tif_write.c: Fixed wrong if() statement in
	TIFFAppendToStrip() function as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=660

2004-11-04  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirinfo.c: Change definition for TIFFTAG_EXTRASAMPLES
	field. The caller should supply a count when setting this field. As
	per bug

	 http://bugzilla.remotesensing.org/show_bug.cgi?id=648

	* libtiff/{tif_jpeg.c, tif_ojpeg.c}: TIFFTAG_JPEGTABLES should have
	uint32 count. Use this type everywhere.

2004-11-03  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_next.c: avoid use of u_long and u_char types.  Bug 653.

2004-11-02  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/tiff2rgba.c: removed extra newlines in usage message.

2004-10-30  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirwrite.c: Improvements in tag writing code.

	* tools/tiff2ps.c: Fixed wrong variable data type when read Position
	tags (Tristan Hill).

2004-10-30  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tiffiop.h: added fallback definition of assert() if we
	don't have assert.h.

2004-10-29  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_fax3.c: Fixed case with the wrong decode routines
	choosing when the incorrect Group4Options tag set. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=323

	* libtiff/tif_dirwrite.c: Fixed problem with passing count variable of
	wrong type when writing the TIFF_BYTE/TIFF_SBYTE tags in
	TIFFWriteNormalTag().

2004-10-28  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2ps.c: Fixed wrong variable data type when read Resolution
	tags (Peter Fales).

	* tools/{bmp2tiff.c, raw2tiff.c}: Get rid of stream I/O functions.

2004-10-28  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/tiff2pdf.c: added casts to avoid warnings.

	* libtiff/libtiff.def: Added several more entry points required
	to link fax2tiff.c against the DLL on windows.

2004-10-27  Andrey Kiselev  <dron@ak4719.spb.edu>

	* configure, configure.ac: Added --enable-rpath option to embed linker
	paths into library binary.

2004-10-26  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffset.c: Check the malloc return value (Dmitry V. Levin).

	* libtiff/{tif_strip.c, tif_tile.c}: Zero division problem fixed
	(Vladimir Nadvornik, Dmitry V. Levin).

2004-10-16  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff 3.7.0 released.

2004-10-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tif_jpeg.c: There seems to be no need to include stdio.h
	in this file so its inclusion is removed.  Including stdio.h
	sometimes incurs an INT32 typedef conflict between MinGW's
	basetsd.h and libjpeg's jmorecfg.h.

2004-10-15  Andrey Kiselev  <dron@ak4719.spb.edu>

	* man/bmp2tiff.1: Added manual page for bmp2tiff utility.

2004-10-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiffcmp.c (leof): Renamed from 'eof' in order to avoid
	conflict noticed under MinGW.
	* ltmain.sh: Fix for MinGW compilation.

2004-10-13  Frank Warmerdam  <warmerdam@pobox.com>

	* man/tiffsplit.1: Fixed to indicate using aaa-zzz, not aa-zz.
	http://bugzilla.remotesensing.org/show_bug.cgi?id=635

2004-10-12  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_dirread.c, tif_jpeg.c, tif_luv.c, tif_ojpeg.c,
	tif_pixarlog.c, tif_write.c}: Handle the zero strip/tile sizes
	properly (Dmitry V. Levin, Marcus Meissner).

2004-10-11  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirinfo.c: Type of the TIFFTAG_SUBIFD field changed
	to TIFF_IFD.

2004-10-10  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/bmp2tif.c: Check the space allocation results.

2004-10-09  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dir.c: Initialize td_tilewidth and td_tilelength fields
	of the TIFFDirectory structure with the 0 instead of -1 to avoid
	confusing integer overflows in TIFFTileRowSize() for striped images.

	* tools/tiff2pdf.c: Fixed TransferFunction tag handling reported
	by Ross A. Finlayson.

	* libtiff/tif_dir.c: Fixed custom tags handling as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=629

2004-10-08  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirinfo.c: Fix bug with tif_foundfield and reallocation
	of tif_fieldinfo.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=630

2004-10-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* contrib/iptcutil/README: Added the missing README which goes
	along with iptcutil.

2004-10-03  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_compress.c: Improved error reporting in
	TIFFGetConfiguredCODECs() (Dmitry V. Levin).

2004-10-02  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff 3.7.0beta2 released.

	* libtiff/{tif_aux.c, tif_compress.c, tif_dirinfo.c, tif_dirwrite.c,
	tif_extension.c, tif_fax3.c, tif_luv.c, tif_packbits.c,
	tif_pixarlog.c, tif_write.c}: Added checks for failed memory
	allocations and	integer overflows (Dmitry V. Levin).

	* libtiff/tiff.h: Missed TIFF_BIGTIFF_VERSION constant added.

2004-10-01  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_open.c: added a more informative message if a BigTIFF
	file is opened.

2004-09-30  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirinfo.c: changed type of XMLPacket (tag 700) to
	TIFFTAG_BYTE instead of TIFFTAG_UNDEFINED to comply with the info
	in the Adobe XMP Specification.

2004-09-29  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_jpeg.c, tif_pixarlog.c}: Use _TIFFmemset() instead of
	memset().

	* libtiff/{tif_dirread.c, tif_strip.c, tif_tile.c}: Applied patches
	from Dmitry V. Levin to fix possible integer overflow problems.

2004-09-28  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_getimage.c: Check for allocated buffers before clearing
	(Dmitry V. Levin).

2004-09-26  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_dir.h, tif_dir.c, tif_dirread.c, tif_write.c}:
	Optimize checking for the strip bounds.

	* libtiff/{tif_dirread.c, tif_strip.c}: TIFFScanlineSize() and
	TIFFRasterScanlineSize() functions report zero in the case of integer
	overflow now. Properly handle this case in TIFFReadDirectory()
	(patches from Dmitry V. Levin).

2004-09-25  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_dirinfo.c, tif_strip.c, tif_tile.c}: Use TIFFhowmany8()
	macro where appropriate.

	* tools/tiff2bw.c: Write ImageWidth/Height tags to output file, as
	noted by Gennady Khokhorin.

	* libtiff/tif_dirread.c: Always check the return values, returned
	by the _TIFFmalloc() (Dmitry V. Levin).

	* libtiff/tif_dir.c: Fixed possible integer overflow _TIFFset*Array()
	functions (Dmitry V. Levin).

	* libtiff/{tif_dirread.c, tif_dir.c, tif_write.c}:
	Potential memory leak fixed in TIFFReadDirectory(), _TIFFVSetField(),
	TIFFGrowStrips() (found by Dmitry V. Levin).

2004-09-24  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tiffio.h, tif_compress.c}: Added TIFFGetConfiguredCODECs()
	to get the list of configured codecs.

	* libtiff/{tiffiop.h, tif_dirread.c}: More overflow fixes from
	Dmitry V. Levin.

2004-09-23  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirread.c: Applied patch from Dmitry V. Levin to fix
	possible integer overflow in CheckMalloc() function.

2004-09-22  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tiffiop.h, tif_strip.c}: Use TIFFhowmany8() macro instead
	of plain TIFFhowmany() where appropriate.

2004-09-21  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_getimage.c: Initialize arrays after space allocation.

2004-09-19  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff 3.7.0beta released.

	* libtiff/{tif_luv.c, tif_next.c, tif_thunder.c}: Several buffer
	overruns fixed, as noted by Chris Evans.

2004-09-14  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* commit: Added a script to make it more convenient to commit
	updates.  The CVS commit message is extracted from this ChangeLog
	file.

2004-09-14  Andrey Kiselev  <dron@ak4719.spb.edu>

	* configure.ac, configure, aclocal.m4, libtiff/{mkspans.c, tif_fax3.c,
	tif_getimage.c, tif_luv.c, tif_lzw.c, tif_ojpeg.c, tif_packbits.c,
	tif_predict.c, tif_read.c, tif_swab.c, tif_thunder.c, tif_write.c,
	tif_dir.c, tif_dirread.c, tif_dirwrite.c, tif_jpeg.c, tif_dirinfo.c,
	tif_vms.c, tif_print.c, tif_strip.c, tif_tile.c, tif_dir.h,
	tif_config.h.in, tiffiop.h}:
	Get rid of BSD data types (u_char, u_short, u_int, u_long).

2004-09-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* libtiff/tiff.h: Fix column tagging. Reference current Adobe XMP
	specification. Reference libtiff bug tracking system to submit
	private tag additions.

2004-09-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* tools/tiffgt.c: Include "tif_config.h".

	* configure.ac: Use AM_PROG_CC_C_O since it is now needed to build
	tiffgt.  This results in the 'compile' script being added to the
	project.

	* tools/Makefile.am (tiffgt_CFLAGS): Add extra build options
	required to find OpenGL headers necessary to build tiffgt.  Also
	ensure that the libtiff that we built is used rather than some other
	libtiff installed on the system.

2004-09-12  Andrey Kiselev  <dron@ak4719.spb.edu>

	* configure.ac, acinclude.m4, aclocal.m4: New macros to detect GLUT
	libraries.

2004-09-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* configure.ac: Pass library configuration defines via
	tif_config.h rather than extending CPPFLAGS. Configure a
	libtiff/tiffconf.h in order to satisfy application requirements
	(not used by library build). Do not define _POSIX_C_SOURCE=2 since
	this causes failure to build on systems which properly respect
	this request.

	* libtiff/tiffconf.h.in: New file to act as the template for the
	configured tiffconf.h

	* libtiff/files.lst (HDRS): Install the configured tiffconf.h.

2004-09-10  Frank Warmerdam  <warmerdam@pobox.com>

	* html/internals.html: Split off a discussion of adding new tags
	into addingtags.html.

2004-09-10  Andrey Kiselev  <dron@ak4719.spb.edu>

	* test/{ascii_tag.c, long_tag.c}: Preliminary test suite added.

	* tools/tiff2pdf.c: Fixed reading TransferFunction tag as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=590

	* libtiff/tif_print.c: Fixes in InkNames and NumberOfInks reporting.

	* libtiff/tif_dirread.c: Don't reject to read tags of the
	SamplesPerPixel size when the tag count is greater than number of
	samples as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=576

	* libtiff/tiff.h: Use _TIFF_DATA_TYPEDEFS_ guardian to switch off
	defining int8/uint8/... etc. types. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=607

2004-09-09  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/tiff2ps.c, tools/tiffmedian.c: fiddle with include files
	to avoid compile warnings about getopt() and a few other things.

2004-09-02  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirread.c: Use memcpy() function instead of pointer
	assigning magic in TIFFFetchFloat().

2004-09-01  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tiffio.h, tif_open.c}: Applied patches from Joris Van Damme
	to avoid requirement for tiffiop.h inclusion in some applications. See
	here

	http://www.asmail.be/msg0054799560.html

	for details.

	* tools/fax2tiff.c: Use the new functions in the code.

2004-08-25  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2pdf.c: Initialize arrays properly.

	* tools/tiff2ps.c: Avoid zero division in setupPageState() function;
	properly initialize array in PSDataBW().

2004-08-24  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2pdf.c: More fixes for bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=590

	from Ross Finlayson.

2004-08-23  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2ps.c: Fixed problem with uninitialized values.

	* libtiff/tif_dir.c: Initialize tif_foundfield data member in the
	TIFFDefaultDirectory() (in addition to 2004-08-19 fix).

	* tools/tiff2pdf.c: Fixed a bunch of problems as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=590

2004-08-20  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2pdf.c: Applied patch from Ross Finlayson that checks
	that the input file has compression, photometric interpretation,
	etcetra, tags or if not than a more descriptive error is returned.

	* libtiff/tif_dirread.c: Fixed problem in TIFFReadDirectory() in the
	code, responsible for tag data type checking.

2004-08-19  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tiffiop.h, tif_dirinfo.c}: Fixed problem with the static
	variable as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=593

2004-08-16  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/ras2tiff.c: Fixed issue with missed big-endian checks as per
	bug http://bugzilla.remotesensing.org/show_bug.cgi?id=586

2004-08-01  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_config.h.in, tif_config.h.vc}: config.h.in and
	config.h.vc files renamed in the tif_config.h.in and tif_config.h.vc.

2004-07-24  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_lzw.c: LZW compression code is merged back from the
	separate package. All libtiff tools are updated to not advertise an
	abcence of LZW support.

2004-07-12  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tiffio.h: Revert thandle_t back to void* type.

2004-07-11  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_read.c, tif_tile.c, tif_strip.c}: Fixes in error
	messages, as suggested by Bernd Herd.

2004-07-03  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dir.c: Call TIFFError() instead of producing warnings
	when setting custom tags by value. Reported by Eric Fieleke.

2004-06-14  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/bmp2tiff.c: Add missed RawsPerStrip setting.

2004-06-08  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/bmp2tiff.c: Added new utility to convert Windows BMP files
	into TIFFs.

2004-06-07  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff 3.7.0alpha released.

2004-06-06  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tiff.h, tif_dirwrite.c, tif_fax3.c, tif_packbits.c,}: Get rid
	of ugly 64-bit hacks, replace them with the clever (autoconf based )
	ones :-).

	* libtiff/tiffio.h: Define thandle_t as int, not void* (may cause
	problems in 64-bit environment).

2004-06-05  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffset.c: tiffset now can set any libtiff supported tags.
	Tags can be supplied by the mnemonic name or number.

	* libtiff/{tiffio.h, tif_dir.h, tif_dirinfo.c,}: Added two new
	functions TIFFFindFieldInfoByName() and TIFFFieldWithName().

2004-05-27  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_ojpeg.c: Fixed problem with duplicated SOI and SOF
	markers as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=581

2004-05-24  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffsplit.c: Don't forget to copy Photometric
	Interpretation tag.

2004-05-20  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_open.c, tiffio.h}: New function added:
	TIFFIsBigEndian(). Function returns nonzero if given was file written
	in big-endian order.

	* tools/tiffsplit.c: Fixed problem with unproperly written multibyte
	files. Now output files will be written using the same byte order
	flag as	in the input image. See

	http://bugzilla.remotesensing.org/show_bug.cgi?id=574

	for details.

2004-05-19  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_print.c: added (untested) support for printing
	SSHORT, SLONG and SRATIONAL fields.

	* tools/tiffcp.c: close output file on normal exit.

2004-05-17  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_fax3.c: Avoid reading CCITT compression options
	if compression type mismatches. See

	http://bugzilla.remotesensing.org/show_bug.cgi?id=565

2004-04-30  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_strip.c: Never return 0 from the
	TIFFNumberOfStrips().

2004-04-29  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirread.c: Workaround for broken TIFF writers which
	store single SampleFormat value for multisampled images. See

	http://bugzilla.remotesensing.org/show_bug.cgi?id=562

2004-04-25  Andrey Kiselev  <dron@ak4719.spb.edu>

	* configure.ac, libtiff/{tiff.h, config.h.in}: Added tests for int8,
	int16 and int32 types to avoid complains on some compilers. Details at

	http://bugzilla.remotesensing.org/show_bug.cgi?id=39

2004-04-20  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2pdf.c: Fixed problem with unaligned access as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=555

2004-04-14  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_write.c: Allow in-place updating of the compressed
	images (don't work properly with all codecs). For details see GDAL bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=534

2004-04-06  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_jpeg.c: Workaround for wrong sampling factors used
	in the Intergarph JPEG compressed TIFF images as per bug:

	http://bugzilla.remotesensing.org/show_bug.cgi?id=532

2004-04-04  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_open.c: close clientdata if TIFFClientOpen() fails
	via bad2.

2004-03-26  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffcp.c: Properly set Photometric Interpretation in case of
	JPEG compression of grayscale images.

	* tools/tiffcp.c: Don't emit warnings when Orientation tag does not
	present in the input image.

2004-03-19  Andrey Kiselev  <dron@ak4719.spb.edu>

	* {many}: The first attempt to switch to autotools.

2004-03-03  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_open.c: Use dummy mmap/munmap functions in
	TIFFClientOpen() when the appropriate client functions was not
	supplied by user.

2004-03-02  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/ycbcr.c: fixed main() declaration as per:
	http://bugzilla.remotesensing.org/show_bug.cgi?id=513

2004-02-26  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffsplit.c: Copy JPEGTables tag contents for JPEG compressed
	images. Reported by Artem Mirolubov.

	* libtiff/tif_dirread.c: Fixed problem with handling TIFF_UNDEFINED
	tag type in TIFFFetchNormalTag() as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=508

2004-02-17  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_codec.c: Fixed typo in TIFFInitPackBits name as per:
	http://bugzilla.remotesensing.org/show_bug.cgi?id=494

2004-02-05  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_fax3.c: Fixed problem with CCITT encoding modes as per
	bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=483

	But we need more work on fax codec to support update mode.

2004-01-30  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/libtiff.def: Added TIFFCurrentDirOffset, TIFFWriteCheck,
	TIFFRGBAImageOK, and TIFFNumberOfDirectories as suggested by
	Scott Reynolds.

2004-01-29  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tiff.h: Fixed tag definitions for TIFFTAG_YCLIPPATHUNITS
	and TIFFTAG_INDEXED as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=475

	* libtiff/{tif_win32.c, tif_unix.c}: Check whether the pointer is
	NULL before proceeding further as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=474

	Check results, returned by the TIFFFdOpen() before returning and close
	file if TIFFFdOpen() failed as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=468

	* libtiff/tif_open.c: More fixes for

	http://bugzilla.remotesensing.org/show_bug.cgi?id=468

2004-01-28  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{libtiff.def, tif_close.c, tiffio.h, tif_open.c}: Separate
	TIFFCleanup() from the TIFFClose() in order to fix the bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=468

	* tools/tiffcp.c: Fixed problem with wrong interpretation of the
	InkNames tag as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=466

	Memory leak fixed.

2004-01-21  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirwrite.c: Fixed handling of writable ASCII tags that
	are field_passcount=TRUE properly.  Arguably anonymous custom tags
	should be declared as passcount=FALSE, but I don't want to change
	that without a careful review.

2004-01-20  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_write.c: Fixed reporting size of the buffer in case of
	stripped image in TIFFWriteBufferSetup(). As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=460

2004-01-11  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dir.c: Incomplete cleanup in TIFFFreeDirectory(),
	patch from Gerben Koopmans.

	* libtiff/tif_dirread.c: Check field_passcount value before setting
	the value of undefined type, patch from Gerben Koopmans.

2004-01-02  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffcp.c: Fixed problem with wrong Photometric setting for
	non-RGB images.

2003-12-31  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_win32.c: Fixed problem with _TIFFrealloc() when the NULL
	pointer passed. Patch supplied by Larry Grill.

	* libtiff/{tiff.h, tif_fax3.c}:Fixes for AMD 64 platform as
	suggested by Jeremy C. Reed.

2003-12-26  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff 3.6.1 released.

2003-12-24  Andrey Kiselev  <dron@ak4719.spb.edu>

	* config.guess, config.sub: Updated from the recent upstream.

2003-12-22  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_color, tif_getimage.c, tiffio.h}, man/TIFFcolor.3t:
	More cleanups in color conversion interface, added appropriate manual
	page.

2003-12-19  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_extension.c, tif_dirinfo.c, tiff.h}: Warnings fixed as
	per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=357

	* tools/tiff2ps.c: Added support for alpha channel. Fixes

	http://bugzilla.remotesensing.org/show_bug.cgi?id=428

	* libtiff/{libtiff.def, tif_color.c, tif_getimage.c, tiffio.h}:
	Interface for Lab->RGB color conversion is finally cleaned up.
	Added support for ReferenceBlackWhite tag handling when converted from
	YCbCr color space. The latter closes

	http://bugzilla.remotesensing.org/show_bug.cgi?id=120

2003-12-07  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_getimage.c, tiffio.h}: Avoid warnings.

	* libtiff/makefile.vc, tools/makefile.vc: Support for IJG JPEG
	library.

2003-12-06  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_getimage.c, tif_aux.c}: Read WhitePoint tag from the
	file and properly use it for CIE Lab->RGB transform.

2003-12-04  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_getimage.c, tif_color.c, tiffio.h}: YCbCr->RGB
	conversion routines now in the tif_color.c module. New function
	TIFFYCbCrtoRGB() available in TIFF API.

	* libtiff/tif_dirwrite.c: Handle TIFF_IFD tag type correctly.

2003-12-03  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_getimage.c, tif_color.c, tiffio.h}: Improvements in
	CIE Lab conversion code. Start moving YCbCr stuff to the tif_color.c
	module.

	* libtiff/{tif_getimage.c, tiffio.h}, man{TIFFReadRGBAImage.3t,
	TIFFReadRGBAStrip.3t, TIFFReadRGBATile.3t, TIFFRGBAImage.3t}:
	Finally resolved problems with orientation handling. TIFFRGBAImage
	interface now properly supports all possible orientations, i.e. images
	will be flipped both in horizontal and vertical directions if
	required. 'Known bugs' section now removed from the appropriate manual
	pages. Closed bug entry:

	http://bugzilla.remotesensing.org/show_bug.cgi?id=322

2003-12-02  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dir.c: Fixed order of the parameters in TIFFError()
	function calls as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=440

2003-11-28 Ross Finlayson  <libtiff@apexinternetsoftware.com>

	* tools/tiff2pdf.c:  Some bugs fixed.

2003-11-27  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_luv.c: Fixed bug in 48-bit to 24-bit conversion routine,
	reported by Antonio Scuri.

	* man/tiff2pdf.1: Few improvements in page layout.

	* Makefile.in, /man/Makefile.in, /html/man/tiff2pdf.1.html:
	 Added support fpr tiff2pdf manual page.

2003-11-26 Ross Finlayson  <libtiff@apexinternetsoftware.com>

	* /man/tiff2pdf.1:  File added to repository.

2003-11-26  Andrey Kiselev  <dron@ak4719.spb.edu>

	* Makefile.in, /tools/{Makefile.in, makefile.vc}:
	 Added support fpr tiff2pdf utility.

2003-11-25  Ross Finlayson  <libtiff@apexinternetsoftware.com>

	* /tools/tiff2pdf.c:  File added to repository.

2003-11-22  Andrey Kiselev  <dron@ak4719.spb.edu>

	* /tools/raw2tiff.c: sqrtf() replaced with sqrt().

2003-11-21  Andrey Kiselev  <dron@ak4719.spb.edu>

	* /tools/raw2tiff.c: #include <getopt.h> removed.

	* tools/{Makefile.in, tiffgt.c}: Unmaintained and platform dependent
	sgigt utility removed and replaced with the completely rewritten
	portable tiffgt tool (depend on OpenGL and GLUT). Initial revision,
	there is a lot of things to improve.

	* libtiff/tif_ojpeg.c: TIFFVGetField() function now can properly
	extract the fields from the OJPEG files. Patch supplied by Ross
	Finlayson.

	* libtiff/{tiffio.h, tif_codec.c}, man/{libtiff.3t, TIFFcodec.3t}:
	Added new function TIFFIsCODECConfigured(), suggested by Ross
	Finlayson.

2003-11-18  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirinfo.c: Implemented binary search in
	_TIFFMergeFieldInfo(). Patch supplied by Ross Finlayson.

	* libtiff/tif_dir.h: _TIFFFindOrRegisterdInfo declaration replaced
	with _TIFFFindOrRegisterFieldInfo as reported by Ross Finlayson.

2003-11-17  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_dirread.c: do not mark all anonymously defined tags to be
	IGNOREd.

2003-11-17  Andrey Kiselev  <dron@ak4719.spb.edu>

	* contrib/pds/{tif_pdsdirread.c, tif_pdsdirwrite.c}: Use
	TIFFDataWidth() function insted of tiffDataWidth array.

2003-11-16  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tiff.h, tif_dirinfo.c}: Added support for IFD (13)
	datatype, intruduced in "Adobe PageMaker TIFF Tech. Notes".

2003-11-15  Frank Warmerdam  <warmerdam@pobox.com>

	* Makefile.in: fixed missing backslash for tif_color.c in list.

2003-11-13  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_color.c, tif_getimage.c, tiffio.h, Makefile.in}:
	New color space conversion code: CIE L*a*b* 1976 images now supported
	by the TIFFRGBAImage interface. All introduced routines go to new
	module tif_color.c. Eventually all color conversion functions should
	be moved there.

2003-11-12  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/{ras2tiff.c, rasterfile.h}: Properly determine SUN Rasterfiles
	with the reverse byte order (it is reported by the magic header
	field). Problem reported by Andreas Wiesmann.

	* tools/raw2tiff.c, man/raw2tiff.1: Few improvements in correlation
	calculation function. Guessing mechanics now documented in manual page.

2003-11-11  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/raw2tiff.c: Implemented image size guessing using
	correlation coefficient calculation between two neighbour lines.

2003-11-09  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_tile.c: remove spurious use of "s" (sample) in the
	planarconfig_contig case in TIFFComputeTile().

	http://bugzilla.remotesensing.org/show_bug.cgi?id=387

2003-11-09  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tiffiop.h: New macros: TIFFmax, TIFFmin and TIFFrint.

2003-11-07  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tiffio.h, tif_strip.c}, man/{TIFFstrip.3t, libtiff.3t}:
	Added TIFFRawStripSize() function as suggested by Chris Hanson.

2003-11-03  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_lzw.c, tif_fax3.c}: Proper support for update mode as
	per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=424

2003-10-29  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/libtiff.def: Added TIFFReadRGBAImageOriented.

	* html/build.html: Added note about GNU make requirement.

2003-10-25  Andrey Kiselev  <dron@ak4719.spb.edu>

	* Makefile.in: Fixes in using MAKEFLAGS as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=418

	* port/install.sh.in: Option -p added to the mkdir command to create
	all directory tree structure before installing.

2003-10-18  Andrey Kiselev  <dron@ak4719.spb.edu>

	* /tools/tiff2ps.c: #include <strings.h> replaced with the
	#include <string.h>.

2003-10-16  Andrey Kiselev  <dron@ak4719.spb.edu>

	* Makefile.in: Add an absolute path to the test_pics.sh call.

2003-10-12  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tiffcomp.h: #define _BSDTYPES_DEFINED when defining BSD
	typedefs.

2003-10-09  Andrey Kiselev  <dron@ak4719.spb.edu>

	* configure, libtiff/{Makefile.in, mkversion.c}:
	Relative buildings fixed.

	* tools/Makefile.in: Added "-I../libtiff" to the tiffset building
	rule.

2003-10-07  Andrey Kiselev  <dron@ak4719.spb.edu>

	* Makefile.in: Added missed v3.6.0.html.

	* libtiff/tiffio.h: Typo fixed: ORIENTATION_BOTTOMLEFT replaced with
	ORIENTATION_BOTLEFT.

2003-10-04  Andrey Kiselev  <dron@ak4719.spb.edu>

	* 3.6.0 final release.

2003-10-03  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tif_getimage.c, tiffio.h}, man/TIFFReadRGBAImage.3t: New
	function TIFFReadRGBAImageOriented() implemented to retrieve raster
	array with user-specified origin position as suggested by Jason Frank.
	See

	http://bugzilla.remotesensing.org/show_bug.cgi?id=322

	for details.

	* tools/tiff2rgba.c: Switched to use TIFFReadRGBAImageOriented()
	instead of TIFFReadRGBAImage().

	* tools/tiff2ps.c: Fixed possible endless loop as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=404

2003-09-30  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirread.c: Check field counter against number of fields
	in order to fix

	http://bugzilla.remotesensing.org/show_bug.cgi?id=366

	* libtiff/tif_fax3.c: Fix wrong line numbering as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=342

2003-09-25  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/{tiffiop.h, tif_dirread.c, tif_dir.c, tif_open.c,
	tif_close.c}: Store a list of opened IFD to prevent looping as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=383

2003-09-23  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirread.c: More fixes for	EstimateStripByteCounts(). See

	http://bugzilla.remotesensing.org/show_bug.cgi?id=358

2003-08-21  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffmedian.c: int declaration replaced with the uint32 to
	support large images as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=382

2003-08-12  Andrey Kiselev  <dron@ak4719.spb.edu>

 	* libtiff/Makefile.in: Fixed problem with building in different
	directory.

	* tools/tiff2ps.c: Added missing #include <strings.h>.

	* libtiff/tif_dirwrite.c: More fixes for custom tags code
	from Ashley Dreier.

2003-08-07  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2ps.c: Added page size setting when creating PS Level 2.
	Patch submitted by Balatoni Denes (with corrections from Tom
	Kacvinsky).

	* tools/tiff2ps.c: Fixed PS comment emitted when FlateDecode is
	being used. Reported by Tom Kacvinsky.

	* libtiff/tif_dirwrite.c: Fixed problem with custom tags writing,
	reported by Ashley Dreier.

	* libtiff/tif_print.c: Fixed problem with float tags reading, support
	for printing RATIONAL and BYTE tags added.

2003-08-05  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_lzw.c: Move LZW codec state block allocation back to
	TIFFInitLZW(), because its initialization in LZWSetupDecode() cause
	problems with predictor initialization. Remove O_RDONLY check during
	state block allocation to be able open LZW compressed files in update
	mode.

	Problem exist for libtiff version of the tif_lzw.c module. One from
	lzw-compression-kit hasn't such troubles.

2003-08-04  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_write.c: modified tif_write.c so that the various
	encoded write functions use tif_postdecode() to apply byte order
	swapping (swab) to the application passed data buffer if the same
	would be done when reading.  This allows us to write pixel data with
	more than 8 bits per sample to existing files of a non-native byte
	order.  One side effect of this change is the applications buffer
	itself is altered in this case by the act of writing.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=171

2003-07-25  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_open.c: avoid signed/unsigned casting warning
	initializing typemask as per patch from J.A. Strother.

	* tools/tiffcp.c: fixed signed/unsigned casting warning.

	* libtiff/tif_print.c: dos2unix conversion.

	* tools/tiffsplit.c: increased the maximum number of pages that
	can be split.  Patch provided by Andrew J. Montalenti.

2003-07-11  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/raw2tiff.c: Added option `-p' to explicitly select color
	space of input image data. Closes

	http://bugzilla.remotesensing.org/show_bug.cgi?id=364

2003-07-08  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_aux.c, tif_codec.c, tif_dir.c, tif_dirread.c, tif_extension.c,
	tif_fax3.c, tif_getimage.c, tif_luv.c, tif_lzw.c, tif_next.c,
	tif_packbits.c, tif_predict.c, tif_print.c, tif_swab.c, tif_thunder.c:
	avoid casting warning at /W4.

2003-07-03  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/thumbnail.c: Memory leak fixed as reported by Robert S. Kissel.

2003-06-30  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_pixarlog.c: Unused variables removed.

	* libtiff/{tif_dirread.c, tif_dir.c}: Fixed problem with
	EstimateStripByteCounts() as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=358

	* libtiff/{tif_dirwrite.c, tif_packbits.c}: Fixed compilation on
	64-bit architectures as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=357

	* libtiff/tif_dirinfo.c: TIFFDataWidth() returns 0 in case of
	unknown data type.

2003-06-19  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_print.c: fixed some serious bugs when printing
	custom tags ... almost certain to crash.

	* libtiff/tif_dirread.c: Don't ignore custom fields that are
	autodefined.  Not sure how this got to be like this.

2003-06-18  Andrey Kiselev  <dron@ak4719.spb.edu>

	* 3.6.0 Beta2 released.

	* tools/tiffcmp.c, man/tiffcmp.1: Fixed problem with unused data
	comparing as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=349

	`-z' option now can be used to set the number of reported different
	bytes.

2003-06-09  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffcp.c, man/tiffcp.1: Added possibility to specify value -1
	to -r option to get the entire image as one strip. See

	http://bugzilla.remotesensing.org/show_bug.cgi?id=343

	for details.

2003-06-04  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffcp.c: Set the correct RowsPerStrip and PageNumber
	values as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=343

2003-05-27  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_jpeg.c: modified segment_height calculation to always
	be a full height tile for tiled images.  Also changed error to just
	be a warning.

2003-05-25  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/fax2tiff.c: Page numbering fixed, as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=341

2003-05-20  Andrey Kiselev  <dron@ak4719.spb.edu>

	* contrib/ojpeg/{Makefile.in, jdhuff.h, jinclude.h, ojpeg.c, README},
	configure, Makefile.in:	Switched back to the old behaviour. Likely
	better solution should be found for OJPEG support.

2003-05-11  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/mkversion.c: Fixed problem with wrong string size when
	reading RELEASE-DATE file.

2003-05-07  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2ps.c: Fixed bug in Ascii85EncodeBlock() function: array
	index was out of range.

2003-05-06  Andrey Kiselev  <dron@ak4719.spb.edu>

	* contrib/ojpeg/{Makefile.in, jdhuff.h, jinclude.h, ojpeg.c, README},
	configure, Makefile.in:	Improved libtiff compilation with OJPEG
	support. Now no need for patching IJG JPEG library, hack requred by
	libtiff will be compiled and used in-place. Implemented with
	suggestion and help from Bill Allombert, Debian's libjpeg maintainer.

	* libtiff/tif_aux.c: Properly handle TIFFTAG_PREDICTOR in
	TIFFVGetFieldDefaulted() function.

2003-05-05  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/ppm2tiff.c: PPM header parser improved: now able to skip
	comments.

	* tools/tiffdither.c: Fixed problem with bit fill order tag setting:
	was not copied from source image.

	* libtiff/getimage.c: Workaround for some images without correct
	info about alpha channel as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=331

2003-04-29  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2ps.c, man/tiff2ps.1: Add ability to generate PS Level 3.
	It basically allows one to use the /flateDecode filter for ZIP
	compressed TIFF images. Patch supplied by Tom Kacvinsky. Fixes

	http://bugzilla.remotesensing.org/show_bug.cgi?id=328

	* tools/tiff2ps.c: Force deadzone printing when EPS output specified
	as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=325

2003-04-17  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirread.c: Removed additional check for StripByteCounts
	due to problems with multidirectory images. Quality of error messages
	improved.

2003-04-16  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiffcp.c: Fixed problem with colorspace conversion for JPEG
	encoded images. See bug entries

	http://bugzilla.remotesensing.org/show_bug.cgi?id=275

	and

	http://bugzilla.remotesensing.org/show_bug.cgi?id=23

	* libtiff/tif_dirread.c: Additional check for StripByteCounts
	correctness. Fixes

	http://bugzilla.remotesensing.org/show_bug.cgi?id=320

2003-03-12  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/{fax2ps.c, fax2tiff.c, gif2tiff.c, pal2rgb.c, ppm2tiff.c,
	ras2tiff.c, raw2tiff.c, rgb2ycbcr.c, thumbnail.c, tiff2bw.c,
	tiff2ps.c, tiff2rgba.c, tiffcp.c, tiffdither.c, tiffinfo.c,
	tiffmedian.c}: Added library version reporting facility to all tools.

2003-03-06  Frank Warmerdam  <warmerdam@pobox.com>

	* port/install.sh.in: Fixed problems with install producing paths
	like ///usr/local/lib on cygwin.

2003-02-27  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/fax2tiff.c, man/fax2tiff.1: New switch (-X) to set width of
	raw input page. Patch supplied by Julien Gaulmin. See

	http://bugzilla.remotesensing.org/show_bug.cgi?id=293

	for details.

2003-02-26  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dir.c: fixed up the tif_postdecode settings
	responsible for byte swapping complex image data.

	* libtiff/tif_lzw.c: fixed so that decoder state isn't allocated till
	LZWSetupDecode().  Needed to read LZW files in "r+" mode.

2003-02-07  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/ppm2tiff.c: Fixed problem with too many arguments.

2003-02-04  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/raw2tiff.c: Memory leak fixed.

2003-02-03  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/fax2tiff.c, man/fax2tiff.1: Applied patch from Julien Gaulmin
	(thanks, Julien!). More switches for fax2tiff tool for better control
	of input and output. Details at

	http://bugzilla.remotesensing.org/show_bug.cgi?id=272

2003-02-03  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_jpeg.c: Modified to defer initialization of jpeg
	library so that we can check if there is already any tile/strip data
	before deciding between creating a compressor or a decompressor.

2003-01-31  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_write.c: TIFFWriteCheck() now fails if the image is
	a pre-existing compressed image.  That is, image writing to
	pre-existing compressed images is not allowed.

	* libtiff/tif_open.c: Removed error if opening a compressed file
	in update mode.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=198

2003-01-31  Andrey Kiselev  <dron@ak4719.spb.edu>

	* config.guess, config.sub: Updated to recent upstream versions.

2003-01-15  Frank Warmerdam  <warmerdam@pobox.com>

	* cut 3.6.0 Beta release.

2002-12-20  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/fax2ps.c, man/fax2ps.1: Page size was determined
	in wrong way as per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=239

2002-12-17  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirread.c: Allow wrong sized arrays in
	TIFFFetchStripThing().

	http://bugzilla.remotesensing.org/show_bug.cgi?id=49

2002-12-02  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dir.c: fix problem with test on td_customValueCount.
	Was using realloc even first time.  Fix by Igor Venevtsev.

2002-11-30  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dir.c: fixed bug with resetting an existing custom
	field value.

	* libtiff/tif_dir.c: Fixed potential problem with ascii "custom"
	tags in TIFFVGetField() ... added missing break.

2002-10-14  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/tiff2ps.c: fixes a problem where "tiff2ps -1e" did not make
	the scanline buffer long enough when writing rgb triplets.
	The scanline needs to be 3 X the number of dots or else it will
	contain	an incomplete triplet and programs that try to separate
	the eps by redefining the colorimage operator will get messed up.
	Patch supplied by William Bader.

	* Makefile.in: added tif_extension.c to file list as per
	http://bugzilla.remotesensing.org/show_bug.cgi?id=218.

2002-10-11  Andrey Kiselev  <dron@ak4719.spb.edu>

	* configure, config.site, libtiff/{tif_unix.c, Makefile.in}: Fix for
	large files (>2GiB) supporting. New option in the config.site:
	LARGEFILE="yes". Should be enough for I/O of the large files.

2002-10-10  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/html/v3.6.0.html: new release notes.

	* libtiff/index.html: removed faq, cvs snapshot cruft.  Added email
	link for Andrey.  Pointer to v3.6.0.html.

	* libtiff/Makefile.in: added direct rule for tiffvers.h for release.

2002-10-07  Andrey Kiselev  <dron@ak4719.spb.edu>
	* tools/tiff2ps.c, man/tiff2ps.1: Applied patch form Sebastian Eken
	(thanks, Sebastian!). New switches:
	-b # for a bottom margin of # inches
	-c   center image
	-l # for a left margin of # inches
	-r   rotate the image by 180 degrees
	New features merged with code for shrinking/overlapping.
	Previously added -c and -n switches (for overriding PS units) renamed
	in -x and -y respectively.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=200

	* html/man/*.html: Updated from actual manual pages.

2002-10-06  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_jpeg.c: fixed problem with boolean defined with wrong
	size on windows.  Use #define boolean hack.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=188

	* libtiff/tiff.h: Don't do special type handling in tiff.h unless
	USING_VISUALAGE is defined.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=39

2002-10-03  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tiff.h: added COMPRESSION_JP2000.

2002-10-02  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_dirread.c: Another fix for the fetching SBYTE arrays
	by the TIFFFetchByteArray() function. Should finally resolve

	http://bugzilla.remotesensing.org/show_bug.cgi?id=52

	* configure: Set -DPIXARLOG_SUPPORT option along with -DZIP_SUPPORT

	* html/Makefile.in: New targets added: html and groffhtml for
	producing HTML representations of the manual pages automatically.
	html target uses man2html tool, groffhtml uses groff tool.

2002-09-29  Frank Warmerdam  <warmerdam@pobox.com>

	* configure, libtiff/Makefile.in: Added SCO OpenServer 5.0.6 support
	from John H. DuBois III.

2002-09-15  Andrey Kiselev  <dron@ak4719.spb.edu>

	* Makefile.in, /man/{raw2tiff.1, Makefile.in, libtiff.3}: Added
	manual page for raw2tiff(1) tool.

2002-09-12  Andrey Kiselev  <dron@ak4719.spb.edu>

	* /libtiff/{tiffio.h, tif_dir.h}: TIFFDataWidth() declaration moved to
	the tiffio.h header file.

	* Makefile.in, /man/{TIFFDataWidth.3t, Makefile.in, libtiff.3}: Added
	manual page for TIFFDataWidth() function

2002-09-08  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirread.c: Expand v[2] to v[4] in TIFFFetchShortPair()
	as per http://bugzilla.remotesensing.org/show_bug.cgi?id=196.

	* tools/tiff2ps.c: Don't emit BeginData/EndData DSC comments
	since we are unable to properly include the amount to skip.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=80

2002-09-02  Andrey Kiselev  <dron@ak4719.spb.edu>

	* /libtiff/tif_dirread.c: Fixed problem with SBYTE type data fetching
	in TIFFFetchByteArray(). Problem described at
	http://bugzilla.remotesensing.org/show_bug.cgi?id=52

2002-08-22  Andrey Kiselev  <dron@ak4719.spb.edu>

	* /libtiff/tif_dirinfo.c: Further additions to free custom fields
	in _TIFFSetupFieldInfo() function.
	See http://bugzilla.remotesensing.org/show_bug.cgi?id=169 for details.

	* /libtiff/tif_lzw.c: Additional consistency checking added in
	LZWDecode() and LZWDecodeCompat().
	Fixes http://bugzilla.remotesensing.org/show_bug.cgi?id=190
	and http://bugzilla.remotesensing.org/show_bug.cgi?id=100

	* /libtiff/tif_lzw.c:
	Added check for valid code lengths in LZWDecode() and
	LZWDecodeCompat(). Fixes
	http://bugzilla.remotesensing.org/show_bug.cgi?id=115

2002-08-16  Andrey Kiselev  <dron@ak4719.spb.edu>

	* /libtiff/{Makefile.vc, libtiff.def}:
	Missed declarations added.

2002-08-15  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_getimage.c: Ensure that TIFFRGBAImageBegin() returns the
	return code from the underlying pick function.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=177

	* tif_dir.h: changed FIELD_CODEC to 66 from 64 to avoid overlap
	with FIELD_CUSTOM as mentioned in bug 169.

	* tif_close.c: added logic to free dynamically created anonymous
	field definitions to correct a small memory leak.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=169

2002-08-10  Andrey Kiselev  <dron@ak4719.spb.edu>

	* /tools/{raw2tiff.c, Makefile.in, Makefile.lcc, Makefile.vc}:
	New tool: raw2tiff --- raw images to TIFF converter. No manual page yet.

2002-07-31  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_jpeg.c: Fixed problem with setting of nrows in
	JPEGDecode() as per bugzilla bug (issue 1):

	http://bugzilla.remotesensing.org/show_bug.cgi?id=129

	* libtiff/{tif_jpeg.c,tif_strip.c,tif_print.c}: Hacked tif_jpeg.c to
	fetch TIFFTAG_YCBCRSUBSAMPLING from the jpeg data stream if it isn't
	present in the tiff tags.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=168

	* libtiff/tif_read.c, libtiff/tif_write.c: TIFFReadScanline() and
	TIFFWriteScanline() now set tif_row explicitly in case the codec has
	fooled with the value.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=129

2002-06-22  Andrey Kiselev  <dron@ak4719.spb.edu>

	* /tools/tiff2ps.c: Added workaround for some software that may crash
	when last strip of image contains fewer number of scanlines than
	specified by the `/Height' variable. See
	http://bugzilla.remotesensing.org/show_bug.cgi?id=164
	for explanation.

2002-06-21  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2ps, man/tiff2ps.1: New functionality for tiff2ps utility:
	splitting long images in several pages. See
	http://bugzilla.remotesensing.org/show_bug.cgi?id=142 for explanation.
	Patch granted by John Williams <williams@morinda.com>.

2002-06-11  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/contrib/win95: renamed to contrib/win_dib.  Added new
	Tiffile.cpp example of converting TIFF files into a DIB on Win32.
	This one is described in:

	http://bugzilla.remotesensing.org/show_bug.cgi?id=143

	* libtiff/tif_ojpeg.c: Major upgrade from Scott.  See details at:

	http://bugzilla.remotesensing.org/show_bug.cgi?id=156

2002-05-10  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2ps: New commandline switches to override resolution
	units obtained from the input file. Closes
	http://bugzilla.remotesensing.org/show_bug.cgi?id=131

2002-04-26  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/libtiff.def: Added missed declaration.

2002-04-22  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/fax2tiff.c: Updated to reflect latest changes in libtiff.
	Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=125

2002-04-20  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_open.c: Pointers to custom procedures
	in TIFFClientOpen() are checked to be not NULL-pointers.

2002-04-18  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/libtiff.def: Added missed declarations.

	* libtiff/tif_pixarlog.c: Updated for using tif_tagmethods structure.

2002-04-16  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_lzw.c: Additional checks for data integrity introduced.
	Should finally close
	http://bugzilla.remotesensing.org/show_bug.cgi?id=100

2002-04-10  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2ps: Division by zero fixed.
	Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=88

2002-04-09  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/: tif_dirwrite.c, tif_write.c, tiffio.h:
	TIFFCheckpointDirectory() routine added.
	Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=124

	* man/: TIFFWriteDirectory.3t,  Makefile.in: Added description
	for the new function.

2002-04-08  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/: tif_codec.c, tif_compress.c, tiffiop.h: Introduced
	additional members tif->tif_decodestatus and tif->tif_encodestatus
	for correct handling of unconfigured codecs (we should not try to read
	data or to define data size without correct codecs).

	* libtiff/tif_getimage.c: The way of codecs checking in TIFFRGBAImageOK
	changed. Now it has used tif->tif_decodestatus and
	tif->tif_encodestatus.
	Should fix http://bugzilla.remotesensing.org/show_bug.cgi?id=119 (in
	case of __cvs_8.tif test image).

	* libtiff/: tif_dirinfo.c, tif_dirread.c: Somebody makes a bug in
	tif_dirread.c when TIFFCreateAnonFieldInfo was introduced.
	Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=119 in case
	of _cvs_00000-00.tif, _cvs_00000-01.tif and _cvs_00000-02.tif.

2002-04-04  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/: tif_lzw.c: Assertions in LZWDecode and LZWDecodeCompat
	replaced by warnings. Now libtiff should read corrupted LZW-compressed
	files by skipping bad strips.
	Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=100

2002-04-03  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirwrite.c: Removed some dead code.

	* libtiff/*: Cleanup some warnings.

	* libtiff/tif_dir.c: Fixed bug with count returned by TIFFGetField()
	for variable length FIELD_CUSTOM values.  Was int * but should be
	u_short *.

2002-04-01  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/: tifcp.c: Added support for 'Orientation' tag in tiffcp
	utility (at cpStripToTile routine).

2002-03-27  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_dirread.c: avoid div-by-zero if rowbytes is zero in chop func.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=111

	* tif_print.c: Fixed so that ASCII FIELD_CUSTOM values with
	passcount set FALSE can be printed (such as TIFFTAG_SOFTWARE).

	* libtiff/tif_dir.c,tif_dirinfo.c,tif_dir.h,tif_ojpeg.c: modified so
	that TIFFTAG_SOFTWARE uses FIELD_CUSTOM as an example.

2002-03-26  Dwight Kelly  <dbmalloc@remotesensing.org>

	* libtiff/: tiff.h, tif_dir.c, tif_dir.h, tif_dirinfo.c, tif_dirread.c,
	tif_dirwrite.c: Added get/put code for new tag XMLPACKET as defined
	in Adobe XMP Technote. Added missing INKSET tag value from TIFF 6.0 spec
	INKSET_MULTIINK (=2). Added missing tags from Adobe TIFF technotes:
	CLIPPATH, XCLIPPATHUNITS, YCLIPPATHUNITS, OPIIMAGEID, OPIPROXY and
	INDEXED. Added PHOTOMETRIC tag value from TIFF technote 4 ICCLAB (=9).

2002-03-26  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/: tif_getimage.c: TIFFReadRGBAStrip and TIFFReadRGBATile
	now also uses TIFFRGBAImageOK before reading. This is additional fix
	for http://bugzilla.remotesensing.org/show_bug.cgi?id=110

2002-03-25  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/: tif_getimage.c: Additional check for supported
	codecs added in TIFFRGBAImageOK and TIFFReadRGBAImage now uses
	TIFFRGBAImageOK before reading.
	Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=110

2002-03-15  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/: tif_dir.c, tif_dir.h, tif_dirinfo.c, tif_dirread.c,
	tif_dirwrite.c: Added routine TIFFDataWidth for detrmining
	TIFFDataType sizes instead of working with tiffDataWidth array
	directly. Should prevent out-of-borders bugs in case of unknown or
	broken data types.  EstimateStripByteCounts routine modified, so it
	won't work when tags with uknown sizes founded.
	Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=109

2002-03-13  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/tif_getimage.c: Added support for correct handling
	`Orientation' tag in gtTileContig. Should be added in other gt*
	functions as well, but I have not images for testing yet. Partially
	resolves http://bugzilla.remotesensing.org/show_bug.cgi?id=23

2002-03-10  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/: tif_dirinfo.c, tif_dirwrite.c: Added possibility to
	read broken TIFFs with LONG type used for TIFFTAG_COMPRESSION,
	TIFFTAG_BITSPERSAMPLE, TIFFTAG_PHOTOMETRIC.  Closes
	http://bugzilla.remotesensing.org/show_bug.cgi?id=99

2002-03-08  Andrey Kiselev  <dron@ak4719.spb.edu>

	* libtiff/Makefile.in, tools/Makefile.in: Shared library will not
	be stripped when installing, utility binaries will do.	Closes
	http://bugzilla.remotesensing.org/show_bug.cgi?id=93

2002-02-28  Frank Warmerdam  <warmerdam@pobox.com>

	* man/TIFFGetField: fixed type of TIFFTAG_COPYRIGHT.

	* man/libtiff.3t: added copyright tag info.

2002-02-11  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/{tiff.h,tif_fax3.c}: Add support for __arch64__.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=94

	* man/Makefile.in: Patch DESTDIR handling

	http://bugzilla.remotesensing.org/show_bug.cgi?id=95

	* configure: OpenBSD changes for Sparc64 and DSO version.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=96

2002-02-05  Frank Warmerdam  <warmerdam@pobox.com>

	* config.site/configure: added support for OJPEG=yes option to enable
	OJPEG support from config.site.

2002-01-27  Frank Warmerdam  <warmerdam@pobox.com>

	* html/document.html: fixed links for TIFf 6 docs.

2002-01-18  Frank Warmerdam  <warmerdam@pobox.com>

	* config.guess, config.sub: Updated from ftp.gnu.org/pub/config.

	* libtiff/tif_read.c: Fixed TIFFReadEncodedStrip() to fail if the
	decodestrip function returns anything not greater than zero as per
	http://bugzilla.remotesensing.org/show_bug.cgi?id=97

	* configure: Modify CheckForBigEndian so it can work in a cross
	compiled situation.

2002-01-16  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/tiffdump.c: include TIFFTAG_JPEGTABLES in tag list.

	* tools/tiffset.c: fix bug in error reporting.

	* tools/tiffcp.c: fix several warnings that show up with -Wall.

2002-01-04  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_jpeg.c: fixed computation of segment_width for
	tiles files to avoid error about it not matching the
	cinfo.d.image_width values ("JPEGPreDecode: Improper JPEG strip/tile
	size.") for ITIFF files.  Apparently the problem was incorporated since
	3.5.5, presumably during the OJPEG/JPEG work recently.

2001-12-15  Frank Warmerdam  <warmerdam@pobox.com>

	* configure, libtiff/Makefile.in: Changes for building on MacOS 10.1.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=94

	* libtiff/tif_getimage.c: If DEFAULT_EXTRASAMPLE_AS_ALPHA is 1
	(defined in tiffconf.h - 1 by default) then the RGBA interface
	will assume that a fourth extra sample is ASSOCALPHA if the
	EXTRASAMPLE value isn't set for it.  This changes the behaviour of
	the library, but makes it work better with RGBA files produced by
	lots of applications that don't mark the alpha values properly.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=93
	http://bugzilla.remotesensing.org/show_bug.cgi?id=65

2001-12-12  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_jpeg.c: allow jpeg data stream sampling values to
	override those from tiff directory.  This makes this work with
	ImageGear generated files.

2001-12-07  Frank Warmerdam  <warmerdam@pobox.com>

	* html/Makefile.in: added missing images per bug 92.

	* port/Makefile.in: fixed clean target per bug 92.

2001-11-28  Frank Warmerdam  <warmerdam@pobox.com>

	* Reissue 3.5.7 release.

	* libtiff/mkversion.c: Fix output of TIFF_VERSION to be
	YYYYMMDD so that it is increasing over time.

	* Makefile.in: Ensure that tiffvers.h is regenerated in the
	make release target.

	* Makefile.in: added libtiff/tiffvers.h to the release file list.

2001-11-23  Frank Warmerdam  <warmerdam@pobox.com>

	* added html/v3.5.7.html, updated html/index.html.

	* Makefile.in: added contrib/addtiffo/tif_ovrcache.{c,h}.

2001-11-15  Frank Warmerdam  <warmerdam@pobox.com>

	* configure: fixed test for -lm.

2001-11-02  Frank Warmerdam  <warmerdam@pobox.com>

	* Added PHOTOMETRIC_ITULAB as per bug 90.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=90

2001-10-10  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tiff.h: I have created COMPRESSION_CCITT_T4,
	COMPRESSION_CCITT_T6, TIFFTAG_T4OPTIONS and TIFFTAG_T6OPTIONS aliases
	in keeping with TIFF 6.0 standard in tiff.h

	http://bugzilla.remotesensing.org/show_bug.cgi?id=83

2001-09-26  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirwrite.c: added TIFFRewriteDirectory() function.
	Updated TIFFWriteDirectory man page to include TIFFRewriteDirectory.

2001-09-24  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_lzw.c: Avoid MS VC++ 5.0 optimization bug.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=78

	* libtiff/tif_lzw.c: added dummy LZWSetupEncode() to report an
	error about LZW not being available.

	* libtiff/tif_dir.c: propagate failure to initialize compression
	back from TIFFSetField() as an error status, so applications can
	detect failure.

	* libtiff/tif_dir.c: removed the auto replacement of
	COMPRESSION_LZW with COMPRESSION_NONE in _TIFFVSetField().

	* Removed Makefile, tools/Makefile, port/install.sh, man/Makefile
	from CVS as they are all supposed to be auto-generated by configure.

2001-09-22  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_ojpeg.c: new update from Scott.

2001-09-09  Frank Warmerdam  <warmerdam@pobox.com>

	* libtif/tif_fax3.c: Removed #ifdef PURIFY logic, and modified to
	always use the "safe" version, even if there is a very slight
	cost in performance.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=54

	* libtiff/Makefile.in: Fixed @DSOSUB_VERSION to be @DSOSUF_VERSION@
	in two places.

	* libtiff/tif_getimage.c: Fixed problem with reading strips or
	tiles that don't start on a tile boundary.  Fix contributed by
	Josep Vallverdu (from HP), and further described in bug 47.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=47

	* tools/tiff2ps.c: added OJPEG YCbCr to RGB support.

	* libtiff/tif_ojpeg.c: Applied substantial patch from Scott.

2001-09-06  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_packbits.c: fixed memory overrun error.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=77

2001-08-31  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_getimage.c: relax handling of contig case where
	there are extra samples that are supposed to be ignored.  This
	should now work for 8bit greyscale or palletted images.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=75

2001-08-28  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_getimage.c: Don't complain for CMYK (separated)
	images with more than four samples per pixel.  See:

	http://bugzilla.remotesensing.org/show_bug.cgi?id=73

2001-08-10  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_getimage.c: Use memmove() instead of TIFFmemcpy()
	in TIFFReadRGBATile() to avoid issues in cases of overlapping
	buffers.  See Bug 69 in Bugzilla.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=69

	* tools/tiff2rgba.c: fixed getopt() call so that -b works again.

2001-08-09  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tiff.h, libtiff/tif_fax3.c: added check for __LP64__
	when checking for 64 bit architectures as per bugzilla bug 67.

2001-07-27  Frank Warmerdam  <warmerdam@pobox.com>

	* man/Makefile.in: add TIFFClientOpen link as per debian submitted
	bug 66.

2001-07-20  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_jpeg.c: Define HAVE_BOOLEAN on windows if RPCNDR.H
	has been included.

2001-07-19  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_open.c: Seek back to zero after failed read,
	before writing header.

2001-07-18  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_ojpeg.c: updates from Scott.  Handles colors
	much better.  Now depends on having patched libjpeg as per
	patch in contrib/ojpeg/*.

2001-07-17  Frank Warmerdam  <warmerdam@pobox.com>

	* */Makefile.in: added DESTDIR support.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=60

2001-07-16  Frank Warmerdam  <warmerdam@pobox.com>

	* configure, libtiff/Makefile.in: applied OpenBSD patches
	as per:

	http://bugzilla.remotesensing.org/show_bug.cgi?id=61

2001-06-28  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_getimage.c: Fixed so that failure is properly
	reported by gtTileContig, gtStripContig, gtTileSeparate and
	gtStripSeparate.

	See http://bugzilla.remotesensing.org/show_bug.cgi?id=51

	* tiffcmp.c: Fixed multi samples per pixel support for ContigCompare.
	Updated bug section of tiffcmp.1 to note tiled file issues.

	See http://bugzilla.remotesensing.org/show_bug.cgi?id=53

2001-06-22  Frank Warmerdam  <warmerdam@pobox.com>

	* configure: Changes for DSO generation on AIX provided by
	John Marquart <jomarqua@indiana.edu>.

	* configure, libtiff/Makeifle.in: Modified to build DSOs properly
	on Darwin thanks to Robert Krajewski (rpk@alum.mit.edu) and
	Keisuke Fujii (fujiik@jlcuxf.kek.jp).

2001-06-13  Frank Warmerdam  <warmerdam@pobox.com>

	* tools/tiff2rgba.c: added -n flag to avoid emitting alpha component.

	* man/tiff2rgba.1: new

2001-05-22  Frank Warmerdam  <warmerdam@pobox.com>

	* Added tiffset and tif_ojpeg to the dist lists in Makefile.in.

2001-05-13  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tools/thumbnail.c: changed default output compression
	to packbits from LZW since LZW isn't generally available.

2001-05-12  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_ojpeg.c: New.
	libtiff/tif_jpeg.c, tiffconf.h, tif_getimage.c: changes related
	to OJPEG support.

	Scott Marovich <marovich@hpl.hp.com> supplied OJPEG support.

2001-05-11  Frank Warmerdam  <warmerdam@pobox.com>

	* tiff.h: removed, it duplicates libtiff/tiff.h.

2001-05-08  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirinfo.c: moved pixar and copyright flags to
	ensure everything is in order.

	* libtiff/libtiff.def: added TIFFCreateDirectory and
	TIFFDefaultStripSize as per:

	  http://bugzilla.remotesensing.org/show_bug.cgi?id=46

2001-05-02  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirinfo.c: Modified the TIFF_BYTE definition for
	TIFFTAG_PHOTOSHOP to use a writecount of TIFF_VARIABLE2 (-3) to
	force use of uint32 counts instead of short counts.

	* libtiff/tif_dirwrite.c: Added support for TIFF_VARIABLE2 in the
	case of writing TIFF_BYTE/TIFF_SBYTE fields.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=43

2001-05-01  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_dirinfo.c: removed duplicate TIFFTAG_PHOTOSHOP as per
	bug report http://bugzilla.remotesensing.org/show_bug.cgi?id=44

2001-04-05  Frank Warmerdam  <warmerdam@pobox.com>

	* tiffio.h: removed C++ style comment.

	* configure: fixed up SCRIPT_SH/SHELL handling.

	* Makefile.in: Fixed SCRIPT_SH/SHELL handling.

	* config.guess: documented more variables as per bug 40.

2001-04-03  Frank Warmerdam  <warmerdam@pobox.com>

	* configure, *Makefile.in: Various changes to improve configuration
	for HP/UX specifically, and also in general.  They include:
	 - Try to handle /usr/bin/sh instead of /bin/sh where necessary.
	 - Upgrade to HP/UX 10.x+ compiler, linker and dso options.
	 - Fixed mmap() test to avoid MMAP_FIXED ... it isn't available on HP
	 - Use -${MAKEFLAGS} in sub makes from makefiles.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=40

2001-04-02  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tiff.h: Applied hac to try and resolve the problem
	with the inttypes.h include file on AIX.

	See http://bugzilla.remotesensing.org/show_bug.cgi?id=39

	* VERSION: update to 3.5.7 beta in preparation for release.

	* configure/config.site: modified to check if -lm is needed for
	MACHDEPLIBS if not supplied by config.site.  Needed for Darwin.

	* config.guess: updated wholesale to an FSF version apparently
	from 1998 (as opposed to 1994).  This is mainly inspired by
	providing for MacOS X support.

2001-03-29  Frank Warmerdam  <warmerdam@pobox.com>

	* configure, Makefile.in, etc: added support for OPTIMIZER being
	set from config.site.

2001-03-28  Frank Warmerdam  <warmerdam@pobox.com>

	* fax2ps.c: Helge (libtiff at oldach.net) submitted fix:

	Here's a fix for fax2ps that corrects behaviour for non-Letter paper
	sizes. It fixes two problems:

	Without	scaling (-S) the fax is now centered on the page size specified
	with -H	and/or -W. Before, fax2ps was using an obscure and practially
	useless algorithm to allocate the image relative to Letter sized paper
	which sometime sled to useless whitespace on the paper, while at the
	same time cutting of the faxes printable area at the opposite border.

	Second, scaling now preserves aspect ratio, which makes unusual faxes
	(in particular short ones) print properly.

	See http://bugzilla.remotesensing.org/show_bug.cgi?id=35

	* tiff2ps.c/tiff2ps.1: Substantial changes to tiff2ps by
	Bruce A. Mallett.  See check message for detailed information
	on all the changes, including a faster encoder, fixes for level
	2 PostScript, and support for the imagemask operator.

2001-03-27  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tiffio.h: Changed "#if LOGLUV_PUBLIC" to
	"#ifdef LOGLUV_PUBLIC" so it will work with VisualAge on AIX.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=39

2001-03-16  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_dirinfo.c: moved definition of copyright tag in field list.
	Apparently they have to be in sorted order by tag id.

2001-03-13  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_getimage.c: Added support for 16bit minisblack/miniswhite
	images in RGBA interface.

2001-03-02  Frank Warmerdam  <warmerdam@pobox.com>

	* Added TIFFTAG_COPYRIGHT support.

2001-02-19  Frank Warmerdam  <warmerdam@pobox.com>

	* Brent Roman contributed updated tiffcp utility (and tiffcp.1)
	with support for extracting subimages with the ,n syntax, and also
	adding the -b bias removal flag.

2001-02-16  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/libtiff.def: Brent Roman submitted new version adding
	serveral missing entry points.

	* libtiff/tif_dirinfo.c: don't declare tiffFieldInfo static on VMS.
	Some sort of weird VMS thing.

	http://bugzilla.remotesensing.org/show_bug.cgi?id=31

	* tif_luv.c/tiff.h/tiffio.h:
	New version of TIFF LogLuv (SGILOG) modules contributed by Greg Ward
	(greg@shutterfly.com).  He writes:

	1) I improved the gamut-mapping function in tif_luv.c for imaginary
	colors, because some images were being super-saturated on the input
	side and this resulted in some strange color shifts in the output.

	2) I added a psuedotag in tiff.h to control random dithering during
	LogLuv encoding.  This is turned off by default for 32-bit LogLuv and
	on for 24-bit LogLuv output.  Dithering improves the average color
	accuracy over the image.

	3) I added a #define for LOG_LUV_PUBLIC, which is enabled by default in
	tiffio.h, to expose internal routines for converting between LogLuv and
	XYZ coordinates.  This is helpful for writing more efficient,
	specialized conversion routines, especially for reading LogLuv files.

	Changes applied with minor edits.

2001-01-23  Frank Warmerdam  <warmerdam@pobox.com>

	* tif_fax3.c: keep rw_mode flag internal to fax3 state to remember
	whether we are encoding or decoding.  This is to ensure graceful
	recovery if TIFFClientOpen() discovers an attempt to open a compressed
	file for "r+" access, and subsequently close it, as it resets the
	tif_mode flag to O_RDONLY in this case to avoid writes, confusing the
	compressor's concept of whether it is in encode or decode mode.

2001-01-08  Mike Welles <mike@bangstate.com>

	* Makefile.in:  Now cleaning up after itself after creating the .tar.gz and .zip

2001-01-07  Frank Warmerdam  <warmerdam@pobox.com>

	* html/libtiff.html: Fixed arguments in example for TIFFRGBAImageGet()
	as per bug report by Patrick Connor.

2000-12-28  Frank Warmerdam  <warmerdam@pobox.com>

	* Added RELEASE-DATE file to release file list.

	* Fixed libtiff/makefile.vc to make tiffvers.h not version.h.

2000-12-22  Mike Welles <mike@bangstate.com>
        * added link to CVS mirror from index.html

	* updated html/internals.html to note that LZW compression is
	  not supported by default.

2000-12-22  Frank Warmerdam  <warmerdam@pobox.com>

	* updated html/libtiff.html to not point at Niles' old JPL web site
	for the man pages, point at www.libtiff.org.

2000-12-21  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/tif_apple.c: Applied "Carbon" support patches supplied by
	Leonard Rosenthol <leonardr@lazerware.com>.  May interfere
	with correct building on older systems.  If so, please let me know.

2000-12-19 Mike Welles <mike@bangsate.com>

	* Took out LZW Encoding from tif_lzw.c

	* Created HOWTO-RELEASE

	* Created html/v3.5.6.html

	* updated index.html

2000-12-01  Frank Warmerdam  <warmerdam@pobox.com>

	* Added patches for EOFB support in tif_fax3.c and tif_fax3.h.
	Patches supplied by Frank Cringle <fdc@cliwe.ping.de>
	Example file at: ftp://ftp.remotesensing.org/pub/libtiff/eofb_396.tif

2000-11-24  Frank Warmerdam  <warmerdam@pobox.com>

	* libtiff/Makefile.in: Added an installPrivateHdrs and install-private
	target so that the private headers required by libgeotiff can be
	installed with the others.  They are not installed by default.

	* libtiff/Makefile.in: Added @MACHLIBDEPS@ to LINUXdso and GNULDdso
	targets so libtiff.so will be built with an explicit dependency
	on libm.so.

	* libtiff/Makefile.in: Use softlinks to link libtiff.so.3 to
	libtiff.so.3.5.5.

	* libtiff/Makefile.in & configure: Remove all references to the ALPHA
	file, or ALPHA version logic.  Added stuff about DIST_POINT in
	place of DIST_TYPE and the alpha release number stuff.

2000-11-22  Frank Warmerdam  <warmerdam@pobox.com>

	* I have applied a patch from Steffen Moeller <moeller@ebi.ac.uk> to
	the configure script so that it now accepts the --prefix, and
	--exec-prefix directives.

2000-11-13  Frank Warmerdam  <warmerda@cs46980-c>

	* I have made a variety of modifications in an effort to ensure the
	TIFFLIB_VERSION macro is automatically generated from the RELEASE-DATE
	file which seems to be updated regularly.

	 o mkversion.c now reads RELEASE-DATE and emits TIFFLIB_VERSION in
	   version include file.
	 o renamed version.h to tiffvers.h because we now have to install it
	   with the public libtiff include files.
	 o include tiffvers.h in tiffio.h.
	 o updated tif_version.c to use tiffvers.h.
	 o Updated Makefile.in accordingly.

	* As per http://bugzilla.remotesensing.org/show_bug.cgi?id=25
	I have updated the win32 detection rules in tiffcomp.h.

2000-10-20  Frank Warmerdam  <warmerda@cs46980-c>

	* tif_getimage.c: Fixed RGBA translation for YCbCr images for which
	the strip/tile width and height aren't multiples of the sampling size.
	See http://bugzilla.remotesensing.org/show_bug.cgi?id=20
	Some patches from Rick LaMont of Dot C Software.

	* Modified tif_packbits.c encoder to avoid compressing more
	data than provided if rowsize doesn't factor into provided data
	(such as occurs for YCbCr).

2000-10-19  Frank Warmerdam  <warmerda@cs46980-c>

	* tools/rgb2ycbcr.c: fixed output strip size to account for vertical
	roundup if rows_per_strip not a multiple of vertical sample size.

2000-10-16  Frank Warmerdam  <warmerda@cs46980-c>

	* tif_dir.c: Clear TIFF_ISTILED flag in TIFFDefaultDirectory
	as per http://bugzilla.remotesensing.org/show_bug.cgi?id=18
	from vandrove@vc.cvut.cz.

	* Modified tif_packbits.c decoding to avoid overrunning the
	output buffer, and to issue a warning if data needs to be
	discarded.  See http://bugzilla.remotesensing.org/show_bug.cgi?id=18

2000-10-12  Frank Warmerdam  <warmerda@cs46980-c>

	* Modified tiff2bw to ensure portions add to 100%, and that
	white is properly recovered.

	See bug http://bugzilla.remotesensing.org/show_bug.cgi?id=15
	Patch c/o Stanislav Brabec <utx@penguin.cz>

2000-09-30  Frank Warmerdam  <warmerda@cs46980-c>

	* Modified TIFFClientOpen() to emit an error on an attempt to
	open a comperessed file for update (O_RDWR/r+) access.  This is
	because the compressor/decompressor code gets very confused when
	the mode is O_RDWR, assuming this means writing only.  See
	bug http://bugzilla.remotesensing.org/show_bug.cgi?id=13

2000-09-27  Frank Warmerdam  <warmerda@cs46980-c>

	* Added GNULDdso target an`d switched linux and freebsd to use it.

2000-09-26  Frank Warmerdam  <warmerda@cs46980-c>

	* Applied patch for 0x0000 sequences in tif_fax3.h's definition
	of EXPAND1D() as per bug 11 (from Roman).

2000-09-25  Frank Warmerdam  <warmerda@cs46980-c>
	* Fixed tiffcomp.h to avoid win32 stuff if unix #defined, to improve
	cygwin compatibility.

	* Applied patch from Roman Shpount to tif_fax3.c.  This seems to
	be a proper fix to the buffer sizing problem.  See
	http://bugzilla.remotesensing.org/show_bug.cgi?id=11

	* Fixed tif_getimage.c to fix overrun bug with YCbCr images without
	downsampling.  http://bugzilla.remotesensing.org/show_bug.cgi?id=10
	Thanks to Nick Lamb <njl98r@ecs.soton.ac.uk> for reporting the
	bug and proving the patch.

2000-09-18  Frank Warmerdam  <warmerda@cs46980-c>

	* Fixed tif_jpeg.c so avoid destroying the decompressor before
	we are done access data thanks to bug report from:
	Michael Eckstein <eckstein@gepro.cz>.

	* Reverted tif_flush change.

2000-09-14  Frank Warmerdam  <warmerda@cs46980-c>

	* tif_flush.c: Changed so that TIFFFlushData() doesn't return an
	error when TIFF_BEENWRITING is not set.  This ensures that the
	directory contents can still be flushed by TIFFFlush().

2000-08-14  Frank Warmerdam  <warmerda@rommel.atlsci.com>

	* tif_open.c: Don't set MMAP for O_RDWR files.

	* tif_open.c: Set STRIPCHOP_DEFAULT for O_RDWR as well as O_RDONLY
	so that files opened for update can be strip chopped too.

	* tif_read.c: fixed up bug with files missing rowsperstrip and
	the strips per separation fix done a few weeks ago.

2000-07-17  Frank Warmerdam  <warmerda@cs46980-c>

	* Tentatively added support for SAMPLEFORMAT_COMPLEXIEEEFP, and
	SAMPLEFORMAT_COMPLEXINT.

2000-07-13  Mike Welles <mike@onshore.com>

	* index.html, bugs.html: added bugzilla info.

2000-07-12  Frank Warmerdam  <warmerda@rommel.atlsci.com>

	* tif_read.c: fix subtle bug with determining the number of
	rows for strips that are the last strip in a separation but
	not the last strip of all in TIFFReadEncodedStrip().

	* Applied 16/32 bit fix to tif_fax3.c.  Fix supplied by
	Peter Skarpetis <peters@serendipity-software.com.au>

2000-06-15  Frank Warmerdam  <warmerda@rommel.atlsci.com>

	* Modified tiffio.h logic with regard to including windows.h.  It
	won't include it when building with __CYGWIN__.

2000-05-11  Frank Warmerdam  <warmerda@cs46980-c>

	* README: update to mention www.libtiff.org, don't list Sam's old
	email address.

	* configure: Fixed DSO test for Linux as per patch from
	  Jan Van Buggenhout <chipzz@Ace.ULYSSIS.Student.KULeuven.Ac.Be>.

2000-04-21  Frank Warmerdam  <warmerda@rommel.atlsci.com>

	* libtiff/tif_dirread.c: Don't use estimate strip byte count for
	one tile/strip images with an offset, and byte count of zero. These
	could be "unpopulated" images.

2000-04-18  Frank Warmerdam  <warmerda@rommel.atlsci.com>

	* contrib/addtiffo: Added "averaging" resampling option.

	* tools/tiffsplit.c: Copy TIFFTAG_SAMPLEFORMAT.

Tue Apr 18 16:18:08 2000  Frank Warmerdam  <warmerda@esabot.atlsci.com>

	* tools/Makefile.in: Modified to install properly on SGI.

2000-04-12  Mike Welles	     <mike@onshore.com>
	* configure:  Fixed stupid mistake in libc6 test on Linux

2000-04-04  Mike Welles	     <mike@onshore.com>
	* tif_win32.c:  Applied patch to fix overreads and ovverwrites
	  caught by BoundsChecker.  From Arvan Pritchard
	  <arvan.pritchard@infomatix.co.uk>  (untested).

	* tif_getimage.c:  Applied patch to silence VC6 warnings.  From
	  Arvan Pritchard <arvan.pritchard@informatix.co.uk>

	* tif_lzw.c:  Applied patch to silence VC6 warnings.  From
	  Arvan Pritchard <arvan.pritchard@informatix.co.uk>

2000-03-28  Frank Warmerdam  <warmerda@cs46980-c>

	* Added contrib/stream (stream io) code submitted by Avi Bleiweiss.

2000-03-28  Frank Warmerdam  <warmerda@cs46980-c>    *** 3.5.5 release ***

	* fax2ps: Fixed mixup of width and height in bounding box statement
	as per submission by Nalin Dahyabhai <nalin@redhat.com>.

2000-03-27  Mike Welles	     <mike@onshore.com>

	* fax2ps:  Modified printruns to take uint32 instead of uint16.
	Patch courtesy of Bernt Herd <herd@herdsoft.com>

2000-03-20  Mike Welles	     <mike@onshore.com>

	* configure: added test for libc6 for linux targets.  Bug reported by
        Stanislav Brabec <utx@k332.feld.cvut.cz>

	* Added 3.5 docs to html/Makefile.in.
	Thanks to  Stanislav Brabec <utx@k332.feld.cvut.cz>

	* configure: fixed bugs in sed scripts
	(applied sed script s:/@:s;@:;s:/s;;:;: to configure).
	fix submitted to Stanislav Brabec <utx@k332.feld.cvut.cz>

	* tools/iptcutil was not in files list, and wasn't being
	added to tar archive.  Updated Makefile.in.

2000-03-17  Frank Warmerdam  <warmerda@cs46980-c>

	* tif_fax3.c: Fixed serious bug introduced during the uint16->uint32
	conversion for the run arrays.

2000-03-03  Frank Warmerdam  <warmerda@cs46980-c.mtnk1.on.wave.home.com>

	* Set td_sampleformat default to SAMPLEFORMAT_UINT instead of
	SAMPLEFORMAT_VOID in TIFFDefaultDirectory() in tif_dir.c.

2000-03-02  Frank Warmerdam  <warmerda@cs46980-c.mtnk1.on.wave.home.com>

	* Added "GetDefaulted" support for TIFFTAG_SAMPLEFORMAT in tif_aux.c.

	* Patched tif_fax3.c so that dsp->runs is allocated a bit bigger
	to avoid overruns encountered with frle_bug.tif.

Tue Feb 15 22:01:05 2000  Frank Warmerdam  <warmerda@gdal.velocet.ca>

	* Fixed tools/tiffcmp so that stopondiff testing works.
	  Patch care of Joseph Orost <joe@sanskrit.lz.att.com>.

2000-01-28    <warmerda@CS46980-B>

	* Modified tif_unix.c to support 2-4GB seeks if USE_64BIT_API is
	  set to 1, and added default (off) setting in tiffconf.h.  This
	  should eventually be set by the configure script somehow.

	  The original work on all these 2-4GB changes was done by
	  Peter Smith (psmith@creo.com).

	* Modified tif_win32.c to support 2-4GB seeks.

	* tentatively changed toff_t to be unsigned instead of signed to
	  facilitate support for 2-4GB files.

	* Updated a variety of files to use toff_t.  Fixed some mixups
	  between toff_t and tsize_t.

Fri Jan 28 10:13:49 2000  Frank Warmerdam  <warmerda@gdal.velocet.ca>

	* Largely reimplemented contrib/addtiffo to avoid temp files,
	updating the TIFF file in place.  Fixed a few other bugs to.

	* Set tif_rawdatasize to zero when freeing raw data buffer in
	TIFFWriteDirectory().

	* Enabled "REWRITE_HACK" in tif_write.c by default.

	* Fix bug in tif_write.c when switching between reading one directory
	and writing to another.

	* Made TIFFWriteCheck() public, and added TIFFCreateDirectory()

Wed Jan  5 12:37:48 2000  Frank Warmerdam  <warmerda@gdal.velocet.ca>

	* Added TIFFmemory(3t) functions to libtiff.def.

Tue Jan  4 13:39:00 2000  Frank Warmerdam  <warmerda@gdal.velocet.ca>

	* Added libtiff/libtiff.def to TIFFILES distribution list.

Mon Dec 27 12:13:39 EST 1999  Mike Welles <mike@onshore.com>

	* Created lzw compression kit, as a new module (libtiff-lzw-compression-kit).

	* Altered descriptions in tools to reflect "by default" lzw not supported

	* Updated index.html to note lzw compression kit.

Tue Dec 21 14:01:51 1999  Frank Warmerdam  <warmerda@gdal.velocet.ca>

	* Added fax3sm_winnt.c to distribution list in Makefile.in.

Tue Dec 21 11:04:45 EST 1999  Mike Welles <mike@onshore.com> *** 3.5.4 release ***

	* Aadded Pixar tag support.  Contributed by Phil Beffery <phil@pixar.com>

	* Made one more change to tif_dir.c for removal of LZW compression. Also added notice
	  when LZW compression invoked.

	* Changed default compression in tools to TIFF_PACKBITS, and changed usage descriptions
	  in tools to reflect removal of LZW compression

Mon Dec 20 18:39:02 EST 1999  Mike Welles  <mike@onshore.com>

        * Fixed bug that caused LZW (non) compression to segfault. Added
	  warning about LZW compression removed being removed, and why.

	* Added nostrip to install in tools/Makefile.in so that debugging
	  symbols are kept.

Tue Dec  7 12:04:47 EST 1999  Mike Welles  <mike@onshore.com>

	* Added patch from Ivo Penzar <ivo.penzar@infolink-software.com>,
	  supporting Adobe ZIP deflate.  Untested.

Sat Dec  4 15:47:11 1999  Frank Warmerdam  <warmerda@gdal.velocet.ca>

	* Made Packbits the default compression in tools/tiff2rgba.c instead
	of LZW.

Tue Nov 30 14:41:43 1999  Frank Warmerdam  <warmerda@gdal.velocet.ca>    *** 3.5.3. release ***

	* Added tif_luv to contrib/djgpp/Makefile.lib.

Tue Nov 30 14:15:32 EST 1999   Mike Welles <mike@onshore.com>

        * Added zip creation to relase makefile target

	* Added html for TIFFWriteTile.3t man page.

Tue Nov 30 09:20:16 1999  Frank Warmerdam  <warmerda@gdal.velocet.ca>

	* Added some changes to tif_write.c to support rewriting existing
	fixed sized tiles and strips.  Code mods disabled by default, only
	enabled if REWRITE_HACK is defined for now.

Mon Nov 29 11:43:42 1999  Frank Warmerdam  <warmerda@gdal.velocet.ca>

	* Added TIFFWriteTile.3t man page.

Sun Nov 28 20:36:18 1999  Frank Warmerdam  <warmerda@gdal.velocet.ca>

	* Added notes on use of makefile.vc in build.html, and fixed
	email subscription address.

199-11-28  Mike Welles <mike@onshore.com>

	*  Fixed apocalypse-inducing y2k bug in contrib/ras/ras2tiff.c

	*  Did some casts cleaning up to reduce compiler warnings in tif_fax3.c,
	   from Bruce Carmeron <cameron@petris.com> -- modifications of
	   changes made by Frank (sun cc still complained on cast).

	*  Added tiffconf.h to install target per request from Bill
	   Radcliffe <billr@corbis.com>: "We need a way for ImageMagick to
 	   know features have been compiled into the TIFF library in order to
	   handle things properly".

Sat Nov 27 16:49:21 1999  Frank Warmerdam  <warmerda@gdal.velocet.ca>

	* fixed various VC++ warnings as suggested by Gilles Vollant
	<info@winimage.com>.

Wed Nov 24 12:08:16 1999  Frank Warmerdam  <warmerda@gdal.velocet.ca>

	* Modified TIFFquery.3t man pages info on TIFFIsByteSwapped() to
	not imply applications are responsible for image data swapping.

1999-11-22  Mike Welles <mike@onshore.com>
	*  HTML-ized the man pages, added to html/man

	*  Removed LZW Compression to comply with Unisys patent extortion.

1999-09-29  Mike Welles		<mike@onshore.com>
	*  Corrected one remaining 16 -> 32 bit value in tif_fax3.c,
	   From Ivo Penzar <ivo.penzar@infolink-software.com.

	*  Added patch from Ivo Penzar to have TiffAdvanceDirectory handle
	   memory mapped files. <ivo.penzar@infolink-software.com>

1999-09-26  Mike Welles 	<mike@onshore.com>  *** 3.5.2 release ***
	* Corrected alpha versioning.

	* Removed distinction between  alpha and release targets in Makefile.in.

	* added release.stamp target, which tags cvs tree, and updates
	  "RELEASE-DATE"

	* added releasediff target, which diffs tree with source as of
	  date in "RELEASE-DATE"

	* Ticked up version to 3.5.2 (alpha 01 -- but I think we'll moving
	  away from alpha/non-alpha distinctions).

	* updated html to reflect release

1999-09-23    <warmerda@CS46980-B>

	* Set O_BINARY for tif_unix.c open() ... used on cygwin for instance.

	* Added CYGWIN case in configure.

Fri Sep 17 00:13:51 CEST 1999  Mike Welles <mike@onshore.com>

	* Applied Francois Dagand's patch to handle fax decompression bug.
	  (sizes >= 65536 were failing)

Tue Sep 14 21:31:43 1999  Frank Warmerdam  <warmerda@gdal.velocet.ca>

	* Applied "a" mode fix to tif_win32.c/TIFFOpen() as suggested
	  by Christopher Lawton <clawton@mathworks.com>

Wed Sep  8 08:19:18 1999  Frank Warmerdam  <warmerda@gdal.velocet.ca>

	* Added IRIX/gcc, and OSF/1 4.x support on behalf of
	  Albert Chin-A-Young <china@thewrittenword.com>

	* Added TIFFReassignTagToIgnore() API on behalf of
	  Bruce Cameron <cameron@petris.com>.  Man page still pending.

Wed Aug 25 11:39:07 1999  Frank Warmerdam  <warmerda@gdal.velocet.ca>

	* Added test target in Makefile, test_pics.sh script and pics/*.rpt
	files to provide for a rudimentary testsuite.

	* Added contrib/tags back from old distribution ... fixed up a bit.

1999-08-16    <warmerda@CS46980-B>

	* Added simple makefile.vc makefiles for building with MS VC++
	on Windows NT/98/95 in console mode.  Stuff in contrib/win* make give
	better solutions for some users.

Mon Aug 16 21:52:11 1999  Frank Warmerdam  <warmerda@gdal.velocet.ca>

	* Added addtiffo (add overviews to a TIFF file) in contrib.  Didn't
	put it in tools since part of it is in C++.

1999-08-16  Michael L. Welles  <mike@kurtz.fake>

	* Updated html/index.html with anon CVS instructions.

Mon Aug 16 13:18:41 1999  Frank Warmerdam  <warmerda@gdal.velocet.ca>

	* pre-remove so link before softlink in LINUXdso action in
	libtiff/Makefile.in to avoid failure on LINUXdso builds other than
	the first.

	* Fixed problem with cvtcmap() in tif_getimage.c modifying the
	colormaps owned by the TIFF handle itself when trying to fixup wrong
	(eight bit) colormaps.  Corrected by maintaining a private copy of
	the colormap.

	* Added TIFFReadRGBATile()/TIFFReadRGBAStrip() support in
	tif_getimage.c.

	* CVS Repository placed at remotesensing.org.  ChangeLog added.
PK粐\<C�%��TODOnu�[���#	$Header: /cvs/libtiff/TODO,v 1.6 2002/10/10 05:28:43 warmerda Exp $

o gif2tiff segaulting on selected images
o tiffcmp read data by strip/tile instead of scanline
o YCbCr sampling support
o extracate colorspace conversion support
o look at isolating all codecs from TIFF library
o JPEG colormode order dependency problem
o Write documentation on how do extend tags, and how the custom field
  stuff all works. 


PK沐\,��html/images/CMakeLists.txtnu�[���PK沐\�#Bw��Uhtml/images/back.gifnu�[���PK沐\m���(f(f�
html/images/bali.jpgnu�[���PK沐\��0�0�phtml/images/cat.gifnu�[���PK沐\�r��N�N�html/images/cover.jpgnu�[���PK沐\E���Q3Q3�html/images/cramps.gifnu�[���PK沐\\B��  �$html/images/dave.gifnu�[���PK粐\��iw��Ehtml/images/info.gifnu�[���PK粐\���5�5�Ehtml/images/jello.jpgnu�[���PK粐\�L���8�8�{html/images/jim.gifnu�[���PK粐\v*���html/images/note.gifnu�[���PK粐\�������html/images/oxford.gifnu�[���PK粐\���`]`]��html/images/quad.jpgnu�[���PK粐\�����+html/images/ring.gifnu�[���PK粐\���O@O@�<html/images/smallliz.jpgnu�[���PK粐\T'O+��}html/images/strike.gifnu�[���PK粐\��}jK�html/images/warning.gifnu�[���PK粐\���OO!��html/man/TIFFFieldName.3tiff.htmlnu�[���PK粐\���<4
4
&Q�html/man/TIFFFieldPassCount.3tiff.htmlnu�[���PK粐\.�Q&ۧhtml/man/TIFFFieldReadCount.3tiff.htmlnu�[���PK粐\�z���� 5�html/man/TIFFFieldTag.3tiff.htmlnu�[���PK粐\���HH'N�html/man/TIFFFieldWriteCount.3tiff.htmlnu�[���PK粐\X�O

��html/man/TIFFFlush.3tiff.htmlnu�[���PK粐\2|������ K�html/man/TIFFGetField.3tiff.htmlnu�[���PK粐\f�:�5�5MYhtml/man/TIFFOpen.3tiff.htmlnu�[���PK粐\bɹ}}&�html/man/TIFFPrintDirectory.3tiff.htmlnu�[���PK粐\K�d=00!�html/man/TIFFRGBAImage.3tiff.htmlnu�[���PK粐\�8Bæ�%W�html/man/TIFFReadDirectory.3tiff.htmlnu�[���PK粐\9�r0��(R�html/man/TIFFReadEncodedStrip.3tiff.htmlnu�[���PK粐\z�ar%%'uhtml/man/TIFFReadEncodedTile.3tiff.htmlnu�[���PK粐\�8��(�(%�html/man/TIFFReadRGBAImage.3tiff.htmlnu�[���PK粐\B��[99%8=html/man/TIFFReadRGBAStrip.3tiff.htmlnu�[���PK粐\����!!$�Zhtml/man/TIFFReadRGBATile.3tiff.htmlnu�[���PK粐\\�\y

$7|html/man/TIFFReadRawStrip.3tiff.htmlnu�[���PK粐\��[&a
a
#��html/man/TIFFReadRawTile.3tiff.htmlnu�[���PK粐\z�!���$K�html/man/TIFFReadScanline.3tiff.htmlnu�[���PK粐\�)̐�� (�html/man/TIFFReadTile.3tiff.htmlnu�[���PK粐\�i���$.�html/man/TIFFSetDirectory.3tiff.htmlnu�[���PK粐\ӹ�uyuy v�html/man/TIFFSetField.3tiff.htmlnu�[���PK粐\s�}u

;Fhtml/man/TIFFWarning.3tiff.htmlnu�[���PK粐\�Uk�VV&�Shtml/man/TIFFWriteDirectory.3tiff.htmlnu�[���PK粐\�>���)Omhtml/man/TIFFWriteEncodedStrip.3tiff.htmlnu�[���PK粐\���(��html/man/TIFFWriteEncodedTile.3tiff.htmlnu�[���PK粐\E0Q��%�html/man/TIFFWriteRawStrip.3tiff.htmlnu�[���PK粐\Se�E��$��html/man/TIFFWriteRawTile.3tiff.htmlnu�[���PK粐\R����%նhtml/man/TIFFWriteScanline.3tiff.htmlnu�[���PK粐\�ss�66!�html/man/TIFFWriteTile.3tiff.htmlnu�[���PK粐\�λ((��html/man/TIFFbuffer.3tiff.htmlnu�[���PK粐\���tt�html/man/TIFFcodec.3tiff.htmlnu�[���PK粐\r}��X�X�html/man/TIFFcolor.3tiff.htmlnu�[���PK粐\��r�
�
�Yhtml/man/TIFFmemory.3tiff.htmlnu�[���PK粐\�0��..:hhtml/man/TIFFquery.3tiff.htmlnu�[���PK粐\̠��
�
�|html/man/TIFFsize.3tiff.htmlnu�[���PK粐\���y��html/man/TIFFstrip.3tiff.htmlnu�[���PK粐\r�e%�
�
�html/man/TIFFswab.3tiff.htmlnu�[���PK粐\�OU����html/man/TIFFtile.3tiff.htmlnu�[���PK粐\32,�==�html/man/fax2ps.1.htmlnu�[���PK粐\�6�y9y9c�html/man/fax2tiff.1.htmlnu�[���PK粐\`l!Y��$html/man/index.htmlnu�[���PK粐\Ra7"``Y"html/man/libtiff.3tiff.htmlnu�[���PK粐\���||��html/man/pal2rgb.1.htmlnu�[���PK粐\�c��g�html/man/ppm2tiff.1.htmlnu�[���PK粐\P95�1�1:�html/man/raw2tiff.1.htmlnu�[���PK粐\��R��L�html/man/tiff2bw.1.htmlnu�[���PK粐\@���FFl�html/man/tiff2pdf.1.htmlnu�[���PK粐\�GǨ:�:�/html/man/tiff2ps.1.htmlnu�[���PK粐\�u\����jhtml/man/tiff2rgba.1.htmlnu�[���PK粐\��11�|html/man/tiffcmp.1.htmlnu�[���PK粐\�z��=�=f�html/man/tiffcp.1.htmlnu�[���PK粐\|�O�O6�html/man/tiffcrop.1.htmlnu�[���PK粐\#����0	html/man/tiffdither.1.htmlnu�[���PK粐\�t�]@@3	html/man/tiffdump.1.htmlnu�[���PK粐\���ff�D	html/man/tiffinfo.1.htmlnu�[���PK粐\%""MV	html/man/tiffmedian.1.htmlnu�[���PK粐\X�Ӭ88�j	html/man/tiffset.1.htmlnu�[���PK粐\iGoo8~	html/man/tiffsplit.1.htmlnu�[���PK粐\��2��
�
�	html/man/CMakeLists.txtnu�[���PK粐\}\cc��	html/man/HtmlDoc.cmakenu�[���PK粐\�/Ǥ�	�	d�	html/man/TIFFClose.3tiff.htmlnu�[���PK粐\ƕ�5�	�	!`�	html/man/TIFFDataWidth.3tiff.htmlnu�[���PK粐\�)�����	html/man/TIFFError.3tiff.htmlnu�[���PK粐\�����%��	html/man/TIFFFieldDataType.3tiff.htmlnu�[���PK粐\��l"����	html/v3.4beta036.htmlnu�[���PK粐\�tqr}}��	html/v3.5.1.htmlnu�[���PK粐\	U��]�	html/v3.5.2.htmlnu�[���PK粐\�eL��h�	html/v3.5.3.htmlnu�[���PK粐\�=�J	J	M
html/v3.5.4.htmlnu�[���PK粐\�B�B���
html/v3.5.5.htmlnu�[���PK粐\�N�s��� 
html/v3.5.6-beta.htmlnu�[���PK粐\-�C$'$'�8
html/v3.5.7.htmlnu�[���PK粐\�3p��A�A%`
html/v3.6.0.htmlnu�[���PK粐\a�t����
html/v3.6.1.htmlnu�[���PK粐\V���88ϼ
html/v3.7.0.htmlnu�[���PK粐\�|��#�#G�
html/v3.7.0alpha.htmlnu�[���PK粐\�T�ZZ�
html/v3.7.0beta.htmlnu�[���PK粐\�/���html/v3.7.0beta2.htmlnu�[���PK粐\9�v*��html/v3.7.1.htmlnu�[���PK粐\�JjRRM3html/v3.7.2.htmlnu�[���PK粐\-�V	7 7 �Rhtml/v3.7.3.htmlnu�[���PK粐\Ja�ޡ�Vshtml/v3.7.4.htmlnu�[���PK粐\)l�ب�7�html/v3.8.0.htmlnu�[���PK粐\6�D�ss�html/v3.8.1.htmlnu�[���PK粐\�d|���Ҿhtml/v3.8.2.htmlnu�[���PK粐\�a+��-�-��html/v3.9.0beta.htmlnu�[���PK粐\G�/ss�html/v3.9.1.htmlnu�[���PK粐\��H�>
>
�
html/v3.9.2.htmlnu�[���PK粐\@+�S�)�)html/v4.0.0.htmlnu�[���PK粐\"��0��<Bhtml/v4.0.1.htmlnu�[���PK粐\N,Z���XNhtml/v4.0.2.htmlnu�[���PK粐\�&�~
~
ZZhtml/v4.0.3.htmlnu�[���PK粐\������hhtml/v4.0.4.htmlnu�[���PK粐\�uc�3�3U�html/v4.0.4beta.htmlnu�[���PK粐\h�M�html/v4.0.5.htmlnu�[���PK粐\^z#����html/v4.0.6.htmlnu�[���PK粐\lm�p�C�C��html/v4.0.7.htmlnu�[���PK粐\`��%I%I!
html/v4.0.8.htmlnu�[���PK粐\�.�F�Fyj
html/v4.0.9.htmlnu�[���PK粐\}7����~�
html/CMakeLists.txtnu�[���PK粐\[ޙ'r�r���
html/TIFFTechNote2.htmlnu�[���PK粐\TU�;..GFhtml/addingtags.htmlnu�[���PK粐\V����	�	�thtml/bugs.htmlnu�[���PK粐\�b��W�W��~html/build.htmlnu�[���PK粐\
�k��Ahtml/contrib.htmlnu�[���PK粐\EyD66html/document.htmlnu�[���PK粐\�]��22�html/images.htmlnu�[���PK粐\�Y,��html/index.htmlnu�[���PK粐\9�>$K$K#0html/internals.htmlnu�[���PK粐\szRBZ	Z	�{html/intro.htmlnu�[���PK粐\u���9�9�#�html/libtiff.htmlnu�[���PK粐\�5*��html/misc.htmlnu�[���PK粐\ո��EE�&html/support.htmlnu�[���PK粐\~<�^^Alhtml/tools.htmlnu�[���PK粐\�^77ނhtml/v3.4beta007.htmlnu�[���PK粐\��n���Z�html/v3.4beta016.htmlnu�[���PK粐\���W
W
V�html/v3.4beta018.htmlnu�[���PK粐\�_+���html/v3.4beta024.htmlnu�[���PK粐\͠=�^^�html/v3.4beta028.htmlnu�[���PK粐\��/�
�
��html/v3.4beta029.htmlnu�[���PK粐\��J�����html/v3.4beta031.htmlnu�[���PK粐\-V\�
�
�html/v3.4beta032.htmlnu�[���PK粐\x�s����html/v3.4beta033.htmlnu�[���PK粐\A-!0qqhtml/v3.4beta034.htmlnu�[���PK粐\��html/v3.4beta035.htmlnu�[���PK粐\(�H�t�t	ChangeLognu�[���PK粐\<C�%���TODOnu�[���PK���1�