laag-libtiff 4.0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (629) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +57 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.org +34 -0
  5. data/ext/laag/libtiff/extconf.rb +13 -0
  6. data/laag-libtiff.gemspec +20 -0
  7. data/lib/laag/libtiff.rb +29 -0
  8. data/vendor/gitlab.com/libtiff/libtiff/.appveyor.yml +109 -0
  9. data/vendor/gitlab.com/libtiff/libtiff/.cvsignore +4 -0
  10. data/vendor/gitlab.com/libtiff/libtiff/.travis.yml +34 -0
  11. data/vendor/gitlab.com/libtiff/libtiff/CMakeLists.txt +764 -0
  12. data/vendor/gitlab.com/libtiff/libtiff/COMMITTERS +19 -0
  13. data/vendor/gitlab.com/libtiff/libtiff/COPYRIGHT +21 -0
  14. data/vendor/gitlab.com/libtiff/libtiff/ChangeLog +8073 -0
  15. data/vendor/gitlab.com/libtiff/libtiff/HOWTO-RELEASE +119 -0
  16. data/vendor/gitlab.com/libtiff/libtiff/HOWTO-SECURITY-RELEASE +19 -0
  17. data/vendor/gitlab.com/libtiff/libtiff/Makefile.am +91 -0
  18. data/vendor/gitlab.com/libtiff/libtiff/Makefile.in +995 -0
  19. data/vendor/gitlab.com/libtiff/libtiff/Makefile.vc +58 -0
  20. data/vendor/gitlab.com/libtiff/libtiff/README +61 -0
  21. data/vendor/gitlab.com/libtiff/libtiff/README.vms +12 -0
  22. data/vendor/gitlab.com/libtiff/libtiff/RELEASE-DATE +1 -0
  23. data/vendor/gitlab.com/libtiff/libtiff/SConstruct +171 -0
  24. data/vendor/gitlab.com/libtiff/libtiff/TODO +12 -0
  25. data/vendor/gitlab.com/libtiff/libtiff/VERSION +1 -0
  26. data/vendor/gitlab.com/libtiff/libtiff/aclocal.m4 +1194 -0
  27. data/vendor/gitlab.com/libtiff/libtiff/archive/html/man/bmp2tiff.1.html +121 -0
  28. data/vendor/gitlab.com/libtiff/libtiff/archive/html/man/gif2tiff.1.html +141 -0
  29. data/vendor/gitlab.com/libtiff/libtiff/archive/html/man/ras2tiff.1.html +139 -0
  30. data/vendor/gitlab.com/libtiff/libtiff/archive/html/man/sgi2tiff.1.html +147 -0
  31. data/vendor/gitlab.com/libtiff/libtiff/archive/html/man/tiffsv.1.html +207 -0
  32. data/vendor/gitlab.com/libtiff/libtiff/archive/man/bmp2tiff.1 +85 -0
  33. data/vendor/gitlab.com/libtiff/libtiff/archive/man/gif2tiff.1 +81 -0
  34. data/vendor/gitlab.com/libtiff/libtiff/archive/man/ras2tiff.1 +96 -0
  35. data/vendor/gitlab.com/libtiff/libtiff/archive/man/sgi2tiff.1 +93 -0
  36. data/vendor/gitlab.com/libtiff/libtiff/archive/man/tiffsv.1 +142 -0
  37. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/bmp2tiff.c +937 -0
  38. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/gif2tiff.c +591 -0
  39. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/ras2tiff.c +338 -0
  40. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/rasterfile.h +44 -0
  41. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/sgi2tiff.c +337 -0
  42. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/sgisv.c +318 -0
  43. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/ycbcr.c +168 -0
  44. data/vendor/gitlab.com/libtiff/libtiff/autogen.sh +8 -0
  45. data/vendor/gitlab.com/libtiff/libtiff/build/.cvsignore +1 -0
  46. data/vendor/gitlab.com/libtiff/libtiff/build/CMakeLists.txt +25 -0
  47. data/vendor/gitlab.com/libtiff/libtiff/build/Makefile.am +32 -0
  48. data/vendor/gitlab.com/libtiff/libtiff/build/Makefile.in +680 -0
  49. data/vendor/gitlab.com/libtiff/libtiff/build/README +3 -0
  50. data/vendor/gitlab.com/libtiff/libtiff/build/travis-ci +108 -0
  51. data/vendor/gitlab.com/libtiff/libtiff/commit +233 -0
  52. data/vendor/gitlab.com/libtiff/libtiff/config/compile +347 -0
  53. data/vendor/gitlab.com/libtiff/libtiff/config/config.guess +1526 -0
  54. data/vendor/gitlab.com/libtiff/libtiff/config/config.sub +1658 -0
  55. data/vendor/gitlab.com/libtiff/libtiff/config/depcomp +791 -0
  56. data/vendor/gitlab.com/libtiff/libtiff/config/install-sh +507 -0
  57. data/vendor/gitlab.com/libtiff/libtiff/config/ltmain.sh +11156 -0
  58. data/vendor/gitlab.com/libtiff/libtiff/config/missing +215 -0
  59. data/vendor/gitlab.com/libtiff/libtiff/config/mkinstalldirs +161 -0
  60. data/vendor/gitlab.com/libtiff/libtiff/config/test-driver +127 -0
  61. data/vendor/gitlab.com/libtiff/libtiff/configure +23612 -0
  62. data/vendor/gitlab.com/libtiff/libtiff/configure.ac +1112 -0
  63. data/vendor/gitlab.com/libtiff/libtiff/configure.com +1357 -0
  64. data/vendor/gitlab.com/libtiff/libtiff/contrib/.cvsignore +2 -0
  65. data/vendor/gitlab.com/libtiff/libtiff/contrib/CMakeLists.txt +35 -0
  66. data/vendor/gitlab.com/libtiff/libtiff/contrib/Makefile.am +31 -0
  67. data/vendor/gitlab.com/libtiff/libtiff/contrib/Makefile.in +679 -0
  68. data/vendor/gitlab.com/libtiff/libtiff/contrib/README +2 -0
  69. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/.cvsignore +5 -0
  70. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/CMakeLists.txt +34 -0
  71. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/Makefile.am +39 -0
  72. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/Makefile.in +652 -0
  73. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/Makefile.vc +28 -0
  74. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/README +142 -0
  75. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/addtiffo.c +181 -0
  76. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/tif_overview.c +916 -0
  77. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/tif_ovrcache.c +344 -0
  78. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/tif_ovrcache.h +103 -0
  79. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/.cvsignore +8 -0
  80. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/CMakeLists.txt +43 -0
  81. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/Makefile.am +46 -0
  82. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/Makefile.in +798 -0
  83. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/README +7 -0
  84. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/tiff-bi.c +91 -0
  85. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/tiff-grayscale.c +147 -0
  86. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/tiff-palette.c +284 -0
  87. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/tiff-rgb.c +201 -0
  88. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/.cvsignore +2 -0
  89. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/CMakeLists.txt +29 -0
  90. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/Makefile.am +47 -0
  91. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/Makefile.in +516 -0
  92. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/README +6 -0
  93. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/patchlevel.h +8 -0
  94. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/xtiff.c +1290 -0
  95. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/xtifficon.h +21 -0
  96. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/.cvsignore +5 -0
  97. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/CMakeLists.txt +35 -0
  98. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/Makefile.am +40 -0
  99. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/Makefile.in +650 -0
  100. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/README +25 -0
  101. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/iptcutil.c +954 -0
  102. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/test.iptc +0 -0
  103. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/test.txt +32 -0
  104. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/.cvsignore +2 -0
  105. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/CMakeLists.txt +27 -0
  106. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/Makefile.am +29 -0
  107. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/Makefile.in +499 -0
  108. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/README +37 -0
  109. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/mfs_file.c +586 -0
  110. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/.cvsignore +2 -0
  111. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/CMakeLists.txt +30 -0
  112. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/Makefile.am +32 -0
  113. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/Makefile.in +502 -0
  114. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/README +90 -0
  115. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/tif_imageiter.c +525 -0
  116. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/tif_imageiter.h +64 -0
  117. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/tif_pdsdirread.c +1131 -0
  118. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/tif_pdsdirwrite.c +971 -0
  119. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/.cvsignore +2 -0
  120. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/CMakeLists.txt +28 -0
  121. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/Makefile.am +30 -0
  122. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/Makefile.in +500 -0
  123. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/README +10 -0
  124. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/ras2tif.c +254 -0
  125. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/tif2ras.c +344 -0
  126. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/.cvsignore +2 -0
  127. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/CMakeLists.txt +28 -0
  128. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/Makefile.am +30 -0
  129. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/Makefile.in +500 -0
  130. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/README +30 -0
  131. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/tiffstream.cpp +238 -0
  132. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/tiffstream.h +70 -0
  133. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/.cvsignore +2 -0
  134. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/CMakeLists.txt +32 -0
  135. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/Makefile.am +33 -0
  136. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/Makefile.in +503 -0
  137. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/README +132 -0
  138. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/listtif.c +39 -0
  139. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/maketif.c +77 -0
  140. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/xtif_dir.c +350 -0
  141. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/xtiffio.h +59 -0
  142. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/xtiffiop.h +72 -0
  143. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/.cvsignore +2 -0
  144. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/CMakeLists.txt +30 -0
  145. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/Makefile.am +32 -0
  146. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/Makefile.in +502 -0
  147. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/Makefile.w95 +134 -0
  148. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/README.Tiffile +31 -0
  149. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/README.tiff2dib +51 -0
  150. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/Tiffile.cpp +449 -0
  151. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/tiff2dib.c +379 -0
  152. data/vendor/gitlab.com/libtiff/libtiff/html/.cvsignore +5 -0
  153. data/vendor/gitlab.com/libtiff/libtiff/html/BigTIFFProposal.html +99 -0
  154. data/vendor/gitlab.com/libtiff/libtiff/html/CMakeLists.txt +87 -0
  155. data/vendor/gitlab.com/libtiff/libtiff/html/Makefile.am +96 -0
  156. data/vendor/gitlab.com/libtiff/libtiff/html/Makefile.in +798 -0
  157. data/vendor/gitlab.com/libtiff/libtiff/html/TIFFTechNote2.html +707 -0
  158. data/vendor/gitlab.com/libtiff/libtiff/html/addingtags.html +292 -0
  159. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffdesign.html +80 -0
  160. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffpr.html +77 -0
  161. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffpr_images/esri.png +0 -0
  162. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffpr_images/leica.png +0 -0
  163. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffpr_images/safe.png +0 -0
  164. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffpr_images/weogeo.png +0 -0
  165. data/vendor/gitlab.com/libtiff/libtiff/html/bugs.html +61 -0
  166. data/vendor/gitlab.com/libtiff/libtiff/html/build.html +737 -0
  167. data/vendor/gitlab.com/libtiff/libtiff/html/contrib.html +209 -0
  168. data/vendor/gitlab.com/libtiff/libtiff/html/document.html +52 -0
  169. data/vendor/gitlab.com/libtiff/libtiff/html/images.html +41 -0
  170. data/vendor/gitlab.com/libtiff/libtiff/html/images/.cvsignore +2 -0
  171. data/vendor/gitlab.com/libtiff/libtiff/html/images/CMakeLists.txt +46 -0
  172. data/vendor/gitlab.com/libtiff/libtiff/html/images/Makefile.am +49 -0
  173. data/vendor/gitlab.com/libtiff/libtiff/html/images/Makefile.in +572 -0
  174. data/vendor/gitlab.com/libtiff/libtiff/html/images/back.gif +0 -0
  175. data/vendor/gitlab.com/libtiff/libtiff/html/images/bali.jpg +0 -0
  176. data/vendor/gitlab.com/libtiff/libtiff/html/images/cat.gif +0 -0
  177. data/vendor/gitlab.com/libtiff/libtiff/html/images/cover.jpg +0 -0
  178. data/vendor/gitlab.com/libtiff/libtiff/html/images/cramps.gif +0 -0
  179. data/vendor/gitlab.com/libtiff/libtiff/html/images/dave.gif +0 -0
  180. data/vendor/gitlab.com/libtiff/libtiff/html/images/info.gif +0 -0
  181. data/vendor/gitlab.com/libtiff/libtiff/html/images/jello.jpg +0 -0
  182. data/vendor/gitlab.com/libtiff/libtiff/html/images/jim.gif +0 -0
  183. data/vendor/gitlab.com/libtiff/libtiff/html/images/note.gif +0 -0
  184. data/vendor/gitlab.com/libtiff/libtiff/html/images/oxford.gif +0 -0
  185. data/vendor/gitlab.com/libtiff/libtiff/html/images/quad.jpg +0 -0
  186. data/vendor/gitlab.com/libtiff/libtiff/html/images/ring.gif +0 -0
  187. data/vendor/gitlab.com/libtiff/libtiff/html/images/smallliz.jpg +0 -0
  188. data/vendor/gitlab.com/libtiff/libtiff/html/images/strike.gif +0 -0
  189. data/vendor/gitlab.com/libtiff/libtiff/html/images/warning.gif +0 -0
  190. data/vendor/gitlab.com/libtiff/libtiff/html/index.html +122 -0
  191. data/vendor/gitlab.com/libtiff/libtiff/html/internals.html +572 -0
  192. data/vendor/gitlab.com/libtiff/libtiff/html/intro.html +68 -0
  193. data/vendor/gitlab.com/libtiff/libtiff/html/libtiff.html +747 -0
  194. data/vendor/gitlab.com/libtiff/libtiff/html/man/.cvsignore +2 -0
  195. data/vendor/gitlab.com/libtiff/libtiff/html/man/CMakeLists.txt +108 -0
  196. data/vendor/gitlab.com/libtiff/libtiff/html/man/HtmlDoc.cmake +50 -0
  197. data/vendor/gitlab.com/libtiff/libtiff/html/man/Makefile.am +122 -0
  198. data/vendor/gitlab.com/libtiff/libtiff/html/man/Makefile.in +642 -0
  199. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFClose.3tiff.html +87 -0
  200. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFDataWidth.3tiff.html +98 -0
  201. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFError.3tiff.html +106 -0
  202. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldDataType.3tiff.html +89 -0
  203. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldName.3tiff.html +86 -0
  204. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldPassCount.3tiff.html +98 -0
  205. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldReadCount.3tiff.html +101 -0
  206. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldTag.3tiff.html +88 -0
  207. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldWriteCount.3tiff.html +108 -0
  208. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFlush.3tiff.html +113 -0
  209. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFGetField.3tiff.html +1969 -0
  210. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFOpen.3tiff.html +421 -0
  211. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFPrintDirectory.3tiff.html +225 -0
  212. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFRGBAImage.3tiff.html +319 -0
  213. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadDirectory.3tiff.html +218 -0
  214. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadEncodedStrip.3tiff.html +133 -0
  215. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadEncodedTile.3tiff.html +130 -0
  216. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadRGBAImage.3tiff.html +301 -0
  217. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadRGBAStrip.3tiff.html +208 -0
  218. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadRGBATile.3tiff.html +261 -0
  219. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadRawStrip.3tiff.html +109 -0
  220. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadRawTile.3tiff.html +111 -0
  221. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadScanline.3tiff.html +157 -0
  222. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadTile.3tiff.html +133 -0
  223. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFSetDirectory.3tiff.html +122 -0
  224. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFSetField.3tiff.html +1865 -0
  225. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWarning.3tiff.html +108 -0
  226. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteDirectory.3tiff.html +176 -0
  227. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteEncodedStrip.3tiff.html +153 -0
  228. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteEncodedTile.3tiff.html +147 -0
  229. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteRawStrip.3tiff.html +144 -0
  230. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteRawTile.3tiff.html +128 -0
  231. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteScanline.3tiff.html +206 -0
  232. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteTile.3tiff.html +115 -0
  233. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFbuffer.3tiff.html +116 -0
  234. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFcodec.3tiff.html +116 -0
  235. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFcolor.3tiff.html +975 -0
  236. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFmemory.3tiff.html +110 -0
  237. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFquery.3tiff.html +148 -0
  238. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFsize.3tiff.html +95 -0
  239. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFstrip.3tiff.html +129 -0
  240. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFswab.3tiff.html +110 -0
  241. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFtile.3tiff.html +141 -0
  242. data/vendor/gitlab.com/libtiff/libtiff/html/man/fax2ps.1.html +252 -0
  243. data/vendor/gitlab.com/libtiff/libtiff/html/man/fax2tiff.1.html +607 -0
  244. data/vendor/gitlab.com/libtiff/libtiff/html/man/index.html +64 -0
  245. data/vendor/gitlab.com/libtiff/libtiff/html/man/libtiff.3tiff.html +1150 -0
  246. data/vendor/gitlab.com/libtiff/libtiff/html/man/pal2rgb.1.html +189 -0
  247. data/vendor/gitlab.com/libtiff/libtiff/html/man/ppm2tiff.1.html +141 -0
  248. data/vendor/gitlab.com/libtiff/libtiff/html/man/raw2tiff.1.html +510 -0
  249. data/vendor/gitlab.com/libtiff/libtiff/html/man/rgb2ycbcr.1.html +155 -0
  250. data/vendor/gitlab.com/libtiff/libtiff/html/man/thumbnail.1.html +148 -0
  251. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiff2bw.1.html +161 -0
  252. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiff2pdf.1.html +609 -0
  253. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiff2ps.1.html +639 -0
  254. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiff2rgba.1.html +162 -0
  255. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffcmp.1.html +156 -0
  256. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffcp.1.html +569 -0
  257. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffcrop.1.html +684 -0
  258. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffdither.1.html +196 -0
  259. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffdump.1.html +145 -0
  260. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffgt.1.html +551 -0
  261. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffinfo.1.html +196 -0
  262. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffmedian.1.html +183 -0
  263. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffset.1.html +176 -0
  264. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffsplit.1.html +102 -0
  265. data/vendor/gitlab.com/libtiff/libtiff/html/misc.html +117 -0
  266. data/vendor/gitlab.com/libtiff/libtiff/html/support.html +655 -0
  267. data/vendor/gitlab.com/libtiff/libtiff/html/tools.html +137 -0
  268. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta007.html +112 -0
  269. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta016.html +122 -0
  270. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta018.html +84 -0
  271. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta024.html +139 -0
  272. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta028.html +146 -0
  273. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta029.html +86 -0
  274. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta031.html +94 -0
  275. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta032.html +90 -0
  276. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta033.html +82 -0
  277. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta034.html +68 -0
  278. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta035.html +63 -0
  279. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta036.html +117 -0
  280. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.1.html +75 -0
  281. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.2.html +108 -0
  282. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.3.html +132 -0
  283. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.4.html +88 -0
  284. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.5.html +155 -0
  285. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.6-beta.html +185 -0
  286. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.7.html +259 -0
  287. data/vendor/gitlab.com/libtiff/libtiff/html/v3.6.0.html +434 -0
  288. data/vendor/gitlab.com/libtiff/libtiff/html/v3.6.1.html +199 -0
  289. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.0.html +144 -0
  290. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.0alpha.html +249 -0
  291. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.0beta.html +162 -0
  292. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.0beta2.html +131 -0
  293. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.1.html +233 -0
  294. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.2.html +222 -0
  295. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.3.html +230 -0
  296. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.4.html +133 -0
  297. data/vendor/gitlab.com/libtiff/libtiff/html/v3.8.0.html +199 -0
  298. data/vendor/gitlab.com/libtiff/libtiff/html/v3.8.1.html +217 -0
  299. data/vendor/gitlab.com/libtiff/libtiff/html/v3.8.2.html +137 -0
  300. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.0.html +261 -0
  301. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.0beta.html +304 -0
  302. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.1.html +115 -0
  303. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.2.html +122 -0
  304. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.3.html +160 -0
  305. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.4.html +125 -0
  306. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.5.html +270 -0
  307. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.0.html +269 -0
  308. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.1.html +113 -0
  309. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.2.html +118 -0
  310. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.3.html +125 -0
  311. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.4.html +274 -0
  312. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.4beta.html +291 -0
  313. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.5.html +148 -0
  314. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.6.html +139 -0
  315. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.7.html +411 -0
  316. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.8.html +445 -0
  317. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.9.html +373 -0
  318. data/vendor/gitlab.com/libtiff/libtiff/libtiff-4.pc.in +11 -0
  319. data/vendor/gitlab.com/libtiff/libtiff/libtiff/.cvsignore +22 -0
  320. data/vendor/gitlab.com/libtiff/libtiff/libtiff/CMakeLists.txt +165 -0
  321. data/vendor/gitlab.com/libtiff/libtiff/libtiff/Makefile.am +154 -0
  322. data/vendor/gitlab.com/libtiff/libtiff/libtiff/Makefile.in +966 -0
  323. data/vendor/gitlab.com/libtiff/libtiff/libtiff/Makefile.lcc +129 -0
  324. data/vendor/gitlab.com/libtiff/libtiff/libtiff/Makefile.vc +102 -0
  325. data/vendor/gitlab.com/libtiff/libtiff/libtiff/SConstruct +73 -0
  326. data/vendor/gitlab.com/libtiff/libtiff/libtiff/libtiff.def +168 -0
  327. data/vendor/gitlab.com/libtiff/libtiff/libtiff/libtiff.map +4 -0
  328. data/vendor/gitlab.com/libtiff/libtiff/libtiff/libtiffxx.map +4 -0
  329. data/vendor/gitlab.com/libtiff/libtiff/libtiff/mkg3states.c +454 -0
  330. data/vendor/gitlab.com/libtiff/libtiff/libtiff/mkspans.c +82 -0
  331. data/vendor/gitlab.com/libtiff/libtiff/libtiff/t4.h +292 -0
  332. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_aux.c +376 -0
  333. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_close.c +140 -0
  334. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_codec.c +165 -0
  335. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_color.c +309 -0
  336. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_compress.c +304 -0
  337. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_config.h-vms +46 -0
  338. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_config.h.cmake.in +261 -0
  339. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_config.h.in +410 -0
  340. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_config.vc.h +137 -0
  341. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_config.wince.h +71 -0
  342. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dir.c +1767 -0
  343. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dir.h +309 -0
  344. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dirinfo.c +1070 -0
  345. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dirread.c +5803 -0
  346. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dirwrite.c +3024 -0
  347. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dumpmode.c +143 -0
  348. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_error.c +88 -0
  349. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_extension.c +118 -0
  350. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_fax3.c +1648 -0
  351. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_fax3.h +540 -0
  352. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_fax3sm.c +1260 -0
  353. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_flush.c +118 -0
  354. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_getimage.c +3048 -0
  355. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_jbig.c +214 -0
  356. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_jpeg.c +2601 -0
  357. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_jpeg_12.c +69 -0
  358. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_luv.c +1765 -0
  359. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_lzma.c +495 -0
  360. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_lzw.c +1218 -0
  361. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_next.c +189 -0
  362. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_ojpeg.c +2563 -0
  363. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_open.c +725 -0
  364. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_packbits.c +311 -0
  365. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_pixarlog.c +1485 -0
  366. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_predict.c +881 -0
  367. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_predict.h +79 -0
  368. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_print.c +722 -0
  369. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_read.c +1572 -0
  370. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_stream.cxx +430 -0
  371. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_strip.c +389 -0
  372. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_swab.c +312 -0
  373. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_thunder.c +208 -0
  374. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_tile.c +322 -0
  375. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_unix.c +386 -0
  376. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_version.c +40 -0
  377. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_vms.c +611 -0
  378. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_warning.c +89 -0
  379. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_win32.c +476 -0
  380. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_wince.c +293 -0
  381. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_write.c +834 -0
  382. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_zip.c +476 -0
  383. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiff.h +681 -0
  384. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffconf.h-vms +99 -0
  385. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffconf.h.cmake.in +130 -0
  386. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffconf.h.in +127 -0
  387. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffconf.vc.h +161 -0
  388. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffconf.wince.h +121 -0
  389. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffio.h +560 -0
  390. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffio.hxx +49 -0
  391. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffiop.h +445 -0
  392. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffvers.h +9 -0
  393. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffvers.h.in +9 -0
  394. data/vendor/gitlab.com/libtiff/libtiff/libtiff/uvcode.h +180 -0
  395. data/vendor/gitlab.com/libtiff/libtiff/m4/acinclude.m4 +851 -0
  396. data/vendor/gitlab.com/libtiff/libtiff/m4/ice_find_athena.m4 +187 -0
  397. data/vendor/gitlab.com/libtiff/libtiff/m4/libtool.m4 +8388 -0
  398. data/vendor/gitlab.com/libtiff/libtiff/m4/ltoptions.m4 +437 -0
  399. data/vendor/gitlab.com/libtiff/libtiff/m4/ltsugar.m4 +124 -0
  400. data/vendor/gitlab.com/libtiff/libtiff/m4/ltversion.m4 +23 -0
  401. data/vendor/gitlab.com/libtiff/libtiff/m4/lt~obsolete.m4 +99 -0
  402. data/vendor/gitlab.com/libtiff/libtiff/man/.cvsignore +3 -0
  403. data/vendor/gitlab.com/libtiff/libtiff/man/CMakeLists.txt +97 -0
  404. data/vendor/gitlab.com/libtiff/libtiff/man/Makefile.am +94 -0
  405. data/vendor/gitlab.com/libtiff/libtiff/man/Makefile.in +684 -0
  406. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFClose.3tiff +53 -0
  407. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFDataWidth.3tiff +74 -0
  408. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFError.3tiff +69 -0
  409. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldDataType.3tiff +53 -0
  410. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldName.3tiff +52 -0
  411. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldPassCount.3tiff +73 -0
  412. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldReadCount.3tiff +77 -0
  413. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldTag.3tiff +56 -0
  414. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldWriteCount.3tiff +88 -0
  415. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFlush.3tiff +64 -0
  416. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFGetField.3tiff +229 -0
  417. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFOpen.3tiff +279 -0
  418. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFPrintDirectory.3tiff +70 -0
  419. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFRGBAImage.3tiff +286 -0
  420. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadDirectory.3tiff +164 -0
  421. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadEncodedStrip.3tiff +78 -0
  422. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadEncodedTile.3tiff +76 -0
  423. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadRGBAImage.3tiff +218 -0
  424. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadRGBAStrip.3tiff +170 -0
  425. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadRGBATile.3tiff +171 -0
  426. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadRawStrip.3tiff +64 -0
  427. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadRawTile.3tiff +65 -0
  428. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadScanline.3tiff +94 -0
  429. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadTile.3tiff +84 -0
  430. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFSetDirectory.3tiff +79 -0
  431. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFSetField.3tiff +217 -0
  432. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWarning.3tiff +70 -0
  433. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteDirectory.3tiff +138 -0
  434. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteEncodedStrip.3tiff +102 -0
  435. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteEncodedTile.3tiff +96 -0
  436. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteRawStrip.3tiff +96 -0
  437. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteRawTile.3tiff +84 -0
  438. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteScanline.3tiff +154 -0
  439. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteTile.3tiff +77 -0
  440. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFbuffer.3tiff +77 -0
  441. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFcodec.3tiff +82 -0
  442. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFcolor.3tiff +268 -0
  443. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFmemory.3tiff +90 -0
  444. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFquery.3tiff +142 -0
  445. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFsize.3tiff +59 -0
  446. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFstrip.3tiff +99 -0
  447. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFswab.3tiff +80 -0
  448. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFtile.3tiff +131 -0
  449. data/vendor/gitlab.com/libtiff/libtiff/man/fax2ps.1 +159 -0
  450. data/vendor/gitlab.com/libtiff/libtiff/man/fax2tiff.1 +286 -0
  451. data/vendor/gitlab.com/libtiff/libtiff/man/libtiff.3tiff +545 -0
  452. data/vendor/gitlab.com/libtiff/libtiff/man/pal2rgb.1 +111 -0
  453. data/vendor/gitlab.com/libtiff/libtiff/man/ppm2tiff.1 +105 -0
  454. data/vendor/gitlab.com/libtiff/libtiff/man/raw2tiff.1 +196 -0
  455. data/vendor/gitlab.com/libtiff/libtiff/man/rgb2ycbcr.1 +99 -0
  456. data/vendor/gitlab.com/libtiff/libtiff/man/thumbnail.1 +90 -0
  457. data/vendor/gitlab.com/libtiff/libtiff/man/tiff2bw.1 +94 -0
  458. data/vendor/gitlab.com/libtiff/libtiff/man/tiff2pdf.1 +254 -0
  459. data/vendor/gitlab.com/libtiff/libtiff/man/tiff2ps.1 +294 -0
  460. data/vendor/gitlab.com/libtiff/libtiff/man/tiff2rgba.1 +97 -0
  461. data/vendor/gitlab.com/libtiff/libtiff/man/tiffcmp.1 +87 -0
  462. data/vendor/gitlab.com/libtiff/libtiff/man/tiffcp.1 +317 -0
  463. data/vendor/gitlab.com/libtiff/libtiff/man/tiffcrop.1 +571 -0
  464. data/vendor/gitlab.com/libtiff/libtiff/man/tiffdither.1 +135 -0
  465. data/vendor/gitlab.com/libtiff/libtiff/man/tiffdump.1 +81 -0
  466. data/vendor/gitlab.com/libtiff/libtiff/man/tiffgt.1 +245 -0
  467. data/vendor/gitlab.com/libtiff/libtiff/man/tiffinfo.1 +88 -0
  468. data/vendor/gitlab.com/libtiff/libtiff/man/tiffmedian.1 +112 -0
  469. data/vendor/gitlab.com/libtiff/libtiff/man/tiffset.1 +99 -0
  470. data/vendor/gitlab.com/libtiff/libtiff/man/tiffsplit.1 +69 -0
  471. data/vendor/gitlab.com/libtiff/libtiff/nmake.opt +229 -0
  472. data/vendor/gitlab.com/libtiff/libtiff/port/.cvsignore +7 -0
  473. data/vendor/gitlab.com/libtiff/libtiff/port/CMakeLists.txt +60 -0
  474. data/vendor/gitlab.com/libtiff/libtiff/port/Makefile.am +35 -0
  475. data/vendor/gitlab.com/libtiff/libtiff/port/Makefile.in +656 -0
  476. data/vendor/gitlab.com/libtiff/libtiff/port/Makefile.vc +44 -0
  477. data/vendor/gitlab.com/libtiff/libtiff/port/dummy.c +12 -0
  478. data/vendor/gitlab.com/libtiff/libtiff/port/getopt.c +125 -0
  479. data/vendor/gitlab.com/libtiff/libtiff/port/lfind.c +62 -0
  480. data/vendor/gitlab.com/libtiff/libtiff/port/libport.h +60 -0
  481. data/vendor/gitlab.com/libtiff/libtiff/port/snprintf.c +38 -0
  482. data/vendor/gitlab.com/libtiff/libtiff/port/strcasecmp.c +51 -0
  483. data/vendor/gitlab.com/libtiff/libtiff/port/strtoul.c +109 -0
  484. data/vendor/gitlab.com/libtiff/libtiff/port/strtoull.c +116 -0
  485. data/vendor/gitlab.com/libtiff/libtiff/test/.cvsignore +12 -0
  486. data/vendor/gitlab.com/libtiff/libtiff/test/CMakeLists.txt +382 -0
  487. data/vendor/gitlab.com/libtiff/libtiff/test/Makefile.am +334 -0
  488. data/vendor/gitlab.com/libtiff/libtiff/test/Makefile.in +1987 -0
  489. data/vendor/gitlab.com/libtiff/libtiff/test/TiffSplitTest.cmake +34 -0
  490. data/vendor/gitlab.com/libtiff/libtiff/test/TiffTest.cmake +63 -0
  491. data/vendor/gitlab.com/libtiff/libtiff/test/TiffTestCommon.cmake +108 -0
  492. data/vendor/gitlab.com/libtiff/libtiff/test/ascii_tag.c +177 -0
  493. data/vendor/gitlab.com/libtiff/libtiff/test/check_tag.c +91 -0
  494. data/vendor/gitlab.com/libtiff/libtiff/test/common.sh +122 -0
  495. data/vendor/gitlab.com/libtiff/libtiff/test/custom_dir.c +247 -0
  496. data/vendor/gitlab.com/libtiff/libtiff/test/images/README.txt +29 -0
  497. data/vendor/gitlab.com/libtiff/libtiff/test/images/logluv-3c-16b.tiff +0 -0
  498. data/vendor/gitlab.com/libtiff/libtiff/test/images/minisblack-1c-16b.tiff +0 -0
  499. data/vendor/gitlab.com/libtiff/libtiff/test/images/minisblack-1c-8b.pgm +0 -0
  500. data/vendor/gitlab.com/libtiff/libtiff/test/images/minisblack-1c-8b.tiff +0 -0
  501. data/vendor/gitlab.com/libtiff/libtiff/test/images/minisblack-2c-8b-alpha.tiff +0 -0
  502. data/vendor/gitlab.com/libtiff/libtiff/test/images/miniswhite-1c-1b.pbm +0 -0
  503. data/vendor/gitlab.com/libtiff/libtiff/test/images/miniswhite-1c-1b.tiff +0 -0
  504. data/vendor/gitlab.com/libtiff/libtiff/test/images/palette-1c-1b.tiff +0 -0
  505. data/vendor/gitlab.com/libtiff/libtiff/test/images/palette-1c-4b.tiff +0 -0
  506. data/vendor/gitlab.com/libtiff/libtiff/test/images/palette-1c-8b.tiff +0 -0
  507. data/vendor/gitlab.com/libtiff/libtiff/test/images/quad-lzw-compat.tiff +0 -0
  508. data/vendor/gitlab.com/libtiff/libtiff/test/images/quad-tile.jpg.tiff +0 -0
  509. data/vendor/gitlab.com/libtiff/libtiff/test/images/rgb-3c-16b.tiff +0 -0
  510. data/vendor/gitlab.com/libtiff/libtiff/test/images/rgb-3c-8b.ppm +0 -0
  511. data/vendor/gitlab.com/libtiff/libtiff/test/images/rgb-3c-8b.tiff +0 -0
  512. data/vendor/gitlab.com/libtiff/libtiff/test/long_tag.c +156 -0
  513. data/vendor/gitlab.com/libtiff/libtiff/test/ppm2tiff_pbm.sh +7 -0
  514. data/vendor/gitlab.com/libtiff/libtiff/test/ppm2tiff_pgm.sh +7 -0
  515. data/vendor/gitlab.com/libtiff/libtiff/test/ppm2tiff_ppm.sh +7 -0
  516. data/vendor/gitlab.com/libtiff/libtiff/test/raw_decode.c +304 -0
  517. data/vendor/gitlab.com/libtiff/libtiff/test/rewrite_tag.c +344 -0
  518. data/vendor/gitlab.com/libtiff/libtiff/test/short_tag.c +205 -0
  519. data/vendor/gitlab.com/libtiff/libtiff/test/strip.c +290 -0
  520. data/vendor/gitlab.com/libtiff/libtiff/test/strip_rw.c +157 -0
  521. data/vendor/gitlab.com/libtiff/libtiff/test/test_arrays.c +829 -0
  522. data/vendor/gitlab.com/libtiff/libtiff/test/test_arrays.h +63 -0
  523. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2bw-palette-1c-8b.sh +7 -0
  524. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2bw-quad-lzw-compat.sh +7 -0
  525. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2bw-rgb-3c-8b.sh +7 -0
  526. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2pdf.sh +6 -0
  527. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2ps-EPS1.sh +6 -0
  528. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2ps-PS1.sh +6 -0
  529. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2ps-PS2.sh +6 -0
  530. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2ps-PS3.sh +6 -0
  531. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-logluv-3c-16b.sh +7 -0
  532. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-minisblack-1c-16b.sh +7 -0
  533. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-minisblack-1c-8b.sh +7 -0
  534. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-minisblack-2c-8b-alpha.sh +7 -0
  535. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-miniswhite-1c-1b.sh +7 -0
  536. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-palette-1c-1b.sh +7 -0
  537. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-palette-1c-4b.sh +7 -0
  538. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-palette-1c-8b.sh +7 -0
  539. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-quad-tile.jpg.sh +7 -0
  540. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-rgb-3c-16b.sh +7 -0
  541. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-rgb-3c-8b.sh +7 -0
  542. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g3-1d-fill.sh +7 -0
  543. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g3-1d.sh +6 -0
  544. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g3-2d-fill.sh +7 -0
  545. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g3-2d.sh +6 -0
  546. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g3.sh +6 -0
  547. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g4.sh +6 -0
  548. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-logluv.sh +7 -0
  549. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-lzw-compat.sh +6 -0
  550. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-split-join.sh +16 -0
  551. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-split.sh +13 -0
  552. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-thumbnail.sh +10 -0
  553. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-logluv-3c-16b.sh +7 -0
  554. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-minisblack-1c-16b.sh +7 -0
  555. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-minisblack-1c-8b.sh +7 -0
  556. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-minisblack-2c-8b-alpha.sh +7 -0
  557. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-miniswhite-1c-1b.sh +7 -0
  558. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-palette-1c-1b.sh +7 -0
  559. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-palette-1c-4b.sh +7 -0
  560. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-palette-1c-8b.sh +7 -0
  561. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-quad-tile.jpg.sh +7 -0
  562. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-rgb-3c-16b.sh +7 -0
  563. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-rgb-3c-8b.sh +7 -0
  564. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-logluv-3c-16b.sh +7 -0
  565. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-minisblack-1c-16b.sh +7 -0
  566. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-minisblack-1c-8b.sh +7 -0
  567. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-minisblack-2c-8b-alpha.sh +7 -0
  568. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-miniswhite-1c-1b.sh +7 -0
  569. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-palette-1c-1b.sh +7 -0
  570. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-palette-1c-4b.sh +7 -0
  571. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-palette-1c-8b.sh +7 -0
  572. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-quad-tile.jpg.sh +7 -0
  573. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-rgb-3c-16b.sh +7 -0
  574. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-rgb-3c-8b.sh +7 -0
  575. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-logluv-3c-16b.sh +7 -0
  576. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-minisblack-1c-16b.sh +7 -0
  577. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-minisblack-1c-8b.sh +7 -0
  578. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-minisblack-2c-8b-alpha.sh +7 -0
  579. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-miniswhite-1c-1b.sh +7 -0
  580. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-palette-1c-1b.sh +7 -0
  581. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-palette-1c-4b.sh +7 -0
  582. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-palette-1c-8b.sh +7 -0
  583. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-quad-tile.jpg.sh +7 -0
  584. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-rgb-3c-16b.sh +7 -0
  585. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-rgb-3c-8b.sh +7 -0
  586. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-logluv-3c-16b.sh +7 -0
  587. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-minisblack-1c-16b.sh +7 -0
  588. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-minisblack-1c-8b.sh +7 -0
  589. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-minisblack-2c-8b-alpha.sh +7 -0
  590. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-miniswhite-1c-1b.sh +7 -0
  591. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-palette-1c-1b.sh +7 -0
  592. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-palette-1c-4b.sh +7 -0
  593. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-palette-1c-8b.sh +7 -0
  594. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-quad-tile.jpg.sh +7 -0
  595. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-rgb-3c-16b.sh +7 -0
  596. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-rgb-3c-8b.sh +7 -0
  597. data/vendor/gitlab.com/libtiff/libtiff/test/tiffdump.sh +6 -0
  598. data/vendor/gitlab.com/libtiff/libtiff/test/tiffinfo.sh +6 -0
  599. data/vendor/gitlab.com/libtiff/libtiff/test/tifftest.h +42 -0
  600. data/vendor/gitlab.com/libtiff/libtiff/tiff.spec +68 -0
  601. data/vendor/gitlab.com/libtiff/libtiff/tools/.cvsignore +27 -0
  602. data/vendor/gitlab.com/libtiff/libtiff/tools/CMakeLists.txt +125 -0
  603. data/vendor/gitlab.com/libtiff/libtiff/tools/Makefile.am +138 -0
  604. data/vendor/gitlab.com/libtiff/libtiff/tools/Makefile.in +955 -0
  605. data/vendor/gitlab.com/libtiff/libtiff/tools/Makefile.lcc +133 -0
  606. data/vendor/gitlab.com/libtiff/libtiff/tools/Makefile.vc +52 -0
  607. data/vendor/gitlab.com/libtiff/libtiff/tools/fax2ps.c +463 -0
  608. data/vendor/gitlab.com/libtiff/libtiff/tools/fax2tiff.c +491 -0
  609. data/vendor/gitlab.com/libtiff/libtiff/tools/pal2rgb.c +438 -0
  610. data/vendor/gitlab.com/libtiff/libtiff/tools/ppm2tiff.c +397 -0
  611. data/vendor/gitlab.com/libtiff/libtiff/tools/raw2tiff.c +690 -0
  612. data/vendor/gitlab.com/libtiff/libtiff/tools/rgb2ycbcr.c +397 -0
  613. data/vendor/gitlab.com/libtiff/libtiff/tools/thumbnail.c +691 -0
  614. data/vendor/gitlab.com/libtiff/libtiff/tools/tiff2bw.c +501 -0
  615. data/vendor/gitlab.com/libtiff/libtiff/tools/tiff2pdf.c +5594 -0
  616. data/vendor/gitlab.com/libtiff/libtiff/tools/tiff2ps.c +3106 -0
  617. data/vendor/gitlab.com/libtiff/libtiff/tools/tiff2rgba.c +569 -0
  618. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffcmp.c +659 -0
  619. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffcp.c +1913 -0
  620. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffcrop.c +9231 -0
  621. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffdither.c +347 -0
  622. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffdump.c +889 -0
  623. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffgt.c +486 -0
  624. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffinfo.c +488 -0
  625. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffinfoce.c +472 -0
  626. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffmedian.c +918 -0
  627. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffset.c +356 -0
  628. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffsplit.c +305 -0
  629. metadata +692 -0
@@ -0,0 +1,28 @@
1
+ #
2
+ # If libtiff.a is installed in /usr/lib or /usr/local/lib just point
3
+ # LIBTIFF_DIR there. It doesn't need a full libtiff tree.
4
+ #
5
+ !INCLUDE ..\..\nmake.opt
6
+
7
+ LIBTIFF_DIR = ..\..\libtiff
8
+ #
9
+ INCL = -I..\..\libtiff
10
+ LIBS = $(LIBTIFF_DIR)\libtiff.lib
11
+
12
+ addtiffo: addtiffo.obj tif_overview.obj tif_ovrcache.obj
13
+ $(CC) $(CFLAGS) addtiffo.obj tif_overview.obj tif_ovrcache.obj \
14
+ $(LIBS) /Feaddtiffo.exe
15
+
16
+
17
+ addtiffo.obj: addtiffo.c
18
+ $(CC) -c $(CFLAGS) addtiffo.c
19
+
20
+ tif_overview.obj: tif_overview.c
21
+ $(CC) -c $(CFLAGS) tif_overview.c
22
+
23
+ tif_ovrcache.obj: tif_ovrcache.c
24
+ $(CC) -c $(CFLAGS) tif_ovrcache.c
25
+
26
+ clean:
27
+ -del *.obj
28
+ -del addtiffo.exe
@@ -0,0 +1,142 @@
1
+ addtiffo 1.0
2
+ ============
3
+
4
+ The addtiffo utility is used to add overview pyramids to an existing
5
+ TIFF or GeoTIFF file. Some applications can take advantage of these
6
+ overviews to accelerate overview display performance of large rasters.
7
+
8
+ This release of addtiffo is primarily intended for compatibility testing
9
+ with applications, and to see if there is interest in a cleaner release
10
+ of the capability ... perhaps incorporation into the libtiff tools
11
+ distribution.
12
+
13
+ Please feel free to contact me with questions, or problems.
14
+
15
+ warmerda@home.com
16
+ http://home.gdal.org/~warmerda/
17
+
18
+
19
+ Usage
20
+ -----
21
+
22
+ Usage: addtiffo [-r {average/nearest} [-subifd]
23
+ tiff_filename [resolution_reductions]
24
+
25
+ Example:
26
+ % addtiffo abc.tif 2 4 8 16
27
+
28
+ The numeric arguments are the list of reduction factors to
29
+ generate. In this example a 1/2, 1/4 1/8 and 1/16
30
+
31
+
32
+
33
+ Limitations
34
+ -----------
35
+
36
+ See tif_overview.cpp for up to date details.
37
+
38
+ o Currently only images with bits_per_sample of a multiple of eight
39
+ will work.
40
+
41
+ o The code will attempt to use the same kind of compression,
42
+ photometric interpretation, and organization as the source image, but
43
+ it doesn't copy geotiff tags to the reduced resolution images.
44
+
45
+ o Reduced resolution overviews for multi-sample files will currently
46
+ always be generated as PLANARCONFIG_SEPARATE. This could be fixed
47
+ reasonable easily if needed to improve compatibility with other
48
+ packages. Many don't properly support PLANARCONFIG_SEPARATE.
49
+
50
+ o Overviews are always written as appended IFDs, rather than using the
51
+ ``tree of tree's'' approach using the SUBIFD tag. I wanted to implement
52
+ both, but it isn't currently easy to add a SUBIFD tag to an existing
53
+ main tiff IFD with libtiff. I hope to try this again later.
54
+
55
+
56
+ TIFF File Tags
57
+ --------------
58
+
59
+ The results of running addtiffo on a 1024x1024 tiled greyscale file
60
+ with the arguments ``2 4 8 16'' is to add four additional TIFF directories
61
+ appended on the file with the SUBFILETYPE flag to 0x1 indicating the extra
62
+ items are reduced resolution images.
63
+
64
+ The tiffinfo output of such a file might look like this:
65
+
66
+ TIFF Directory at offset 0x118008
67
+ Image Width: 1024 Image Length: 1024
68
+ Tile Width: 256 Tile Length: 112
69
+ Bits/Sample: 8
70
+ Compression Scheme: none
71
+ Photometric Interpretation: min-is-black
72
+ Samples/Pixel: 1
73
+ Planar Configuration: single image plane
74
+ TIFF Directory at offset 0x15e1d2
75
+ Subfile Type: reduced-resolution image (1 = 0x1)
76
+ Image Width: 512 Image Length: 512
77
+ Tile Width: 256 Tile Length: 112
78
+ Bits/Sample: 8
79
+ Compression Scheme: none
80
+ Photometric Interpretation: min-is-black
81
+ Samples/Pixel: 1
82
+ Planar Configuration: separate image planes
83
+ TIFF Directory at offset 0x1732b8
84
+ Subfile Type: reduced-resolution image (1 = 0x1)
85
+ Image Width: 256 Image Length: 256
86
+ Tile Width: 256 Tile Length: 112
87
+ Bits/Sample: 8
88
+ Compression Scheme: none
89
+ Photometric Interpretation: min-is-black
90
+ Samples/Pixel: 1
91
+ Planar Configuration: separate image planes
92
+ TIFF Directory at offset 0x17a366
93
+ Subfile Type: reduced-resolution image (1 = 0x1)
94
+ Image Width: 128 Image Length: 128
95
+ Tile Width: 128 Tile Length: 112
96
+ Bits/Sample: 8
97
+ Compression Scheme: none
98
+ Photometric Interpretation: min-is-black
99
+ Samples/Pixel: 1
100
+ Planar Configuration: separate image planes
101
+ TIFF Directory at offset 0x17b40c
102
+ Subfile Type: reduced-resolution image (1 = 0x1)
103
+ Image Width: 64 Image Length: 64
104
+ Tile Width: 64 Tile Length: 64
105
+ Bits/Sample: 8
106
+ Compression Scheme: none
107
+ Photometric Interpretation: min-is-black
108
+ Samples/Pixel: 1
109
+ Planar Configuration: separate image planes
110
+
111
+
112
+ Building
113
+ --------
114
+
115
+ You will need a C compiler. You will need to have libtiff already
116
+ built and installed. The provided Makefile should work on most Unix systems.
117
+ A similar file will be needed for Windows, but is not provided.
118
+
119
+ The CFLAGS and LIBS macros in the Makefile will have to be updated to
120
+ point to the correct location of the libtiff include files, and library.
121
+
122
+
123
+ Credits
124
+ -------
125
+
126
+ o Intergraph Corporation for partially funding the work.
127
+
128
+ o Global Geomatics for partially funding reorganization of the overview
129
+ building ability as a separate utility.
130
+
131
+ o Orrin Long, and Ed Grissom of Intergraph for explaining what needed to
132
+ be done.
133
+
134
+ o Max Martinez of Erdas for his discussion of external overviews.
135
+
136
+ o Atlantis Scientific who supported adding averaging, and some other
137
+ generalizations.
138
+
139
+ o Frank Warmerdam for writing the bulk of the code.
140
+
141
+ o Sam Leffler since this only exists because of his libtiff.
142
+
@@ -0,0 +1,181 @@
1
+ /******************************************************************************
2
+ * $Id: addtiffo.c,v 1.8 2015-05-30 20:30:27 bfriesen Exp $
3
+ *
4
+ * Project: GeoTIFF Overview Builder
5
+ * Purpose: Mainline for building overviews in a TIFF file.
6
+ * Author: Frank Warmerdam, warmerdam@pobox.com
7
+ *
8
+ ******************************************************************************
9
+ * Copyright (c) 1999, Frank Warmerdam
10
+ *
11
+ * Permission is hereby granted, free of charge, to any person obtaining a
12
+ * copy of this software and associated documentation files (the "Software"),
13
+ * to deal in the Software without restriction, including without limitation
14
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
15
+ * and/or sell copies of the Software, and to permit persons to whom the
16
+ * Software is furnished to do so, subject to the following conditions:
17
+ *
18
+ * The above copyright notice and this permission notice shall be included
19
+ * in all copies or substantial portions of the Software.
20
+ *
21
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
24
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27
+ * DEALINGS IN THE SOFTWARE.
28
+ ******************************************************************************
29
+ *
30
+ * $Log: addtiffo.c,v $
31
+ * Revision 1.8 2015-05-30 20:30:27 bfriesen
32
+ * * contrib/addtiffo/addtiffo.c (main): Possibly address Coverity
33
+ * 1024226 "Untrusted value as argument".
34
+ *
35
+ * Revision 1.7 2010-06-08 18:55:15 bfriesen
36
+ * * contrib: Add an emacs formatting mode footer to all source files
37
+ * so that emacs can be effectively used.
38
+ *
39
+ * Revision 1.6 2005/12/16 05:59:55 fwarmerdam
40
+ * Major upgrade to support YCbCr subsampled jpeg images
41
+ *
42
+ * Revision 1.4 2004/09/21 13:31:23 dron
43
+ * Add missed include string.h.
44
+ *
45
+ * Revision 1.3 2000/04/18 22:48:31 warmerda
46
+ * Added support for averaging resampling
47
+ *
48
+ * Revision 1.2 2000/01/28 15:36:38 warmerda
49
+ * pass TIFF handle instead of filename to overview builder
50
+ *
51
+ * Revision 1.1 1999/08/17 01:47:59 warmerda
52
+ * New
53
+ *
54
+ * Revision 1.1 1999/03/12 17:46:32 warmerda
55
+ * New
56
+ *
57
+ * Revision 1.2 1999/02/11 22:27:12 warmerda
58
+ * Added multi-sample support
59
+ *
60
+ * Revision 1.1 1999/02/11 18:12:30 warmerda
61
+ * New
62
+ */
63
+
64
+ #include <stdio.h>
65
+ #include <stdlib.h>
66
+ #include <string.h>
67
+ #include "tiffio.h"
68
+
69
+ void TIFFBuildOverviews( TIFF *, int, int *, int, const char *,
70
+ int (*)(double,void*), void * );
71
+
72
+ /************************************************************************/
73
+ /* main() */
74
+ /************************************************************************/
75
+
76
+ int main( int argc, char ** argv )
77
+
78
+ {
79
+ int anOverviews[100]; /* TODO: un-hardwire array length, flexible allocate */
80
+ int nOverviewCount = 0;
81
+ int bUseSubIFD = 0;
82
+ TIFF *hTIFF;
83
+ const char *pszResampling = "nearest";
84
+
85
+ /* -------------------------------------------------------------------- */
86
+ /* Usage: */
87
+ /* -------------------------------------------------------------------- */
88
+ if( argc < 2 )
89
+ {
90
+ printf( "Usage: addtiffo [-r {nearest,average,mode}]\n"
91
+ " tiff_filename [resolution_reductions]\n"
92
+ "\n"
93
+ "Example:\n"
94
+ " %% addtiffo abc.tif 2 4 8 16\n" );
95
+ return( 1 );
96
+ }
97
+
98
+ while( argv[1][0] == '-' )
99
+ {
100
+ if( strcmp(argv[1],"-subifd") == 0 )
101
+ {
102
+ bUseSubIFD = 1;
103
+ argv++;
104
+ argc--;
105
+ }
106
+ else if( strcmp(argv[1],"-r") == 0 )
107
+ {
108
+ argv += 2;
109
+ argc -= 2;
110
+ pszResampling = *argv;
111
+ }
112
+ else
113
+ {
114
+ fprintf( stderr, "Incorrect parameters\n" );
115
+ return( 1 );
116
+ }
117
+ }
118
+
119
+ /* TODO: resampling mode parameter needs to be encoded in an integer from this point on */
120
+
121
+ /* -------------------------------------------------------------------- */
122
+ /* Collect the user requested reduction factors. */
123
+ /* -------------------------------------------------------------------- */
124
+ while( nOverviewCount < argc - 2 && nOverviewCount < 100 )
125
+ {
126
+ anOverviews[nOverviewCount] = atoi(argv[nOverviewCount+2]);
127
+ if( (anOverviews[nOverviewCount] <= 0) ||
128
+ ((anOverviews[nOverviewCount] > 1024)))
129
+ {
130
+ fprintf( stderr, "Incorrect parameters\n" );
131
+ return(1);
132
+ }
133
+ nOverviewCount++;
134
+ }
135
+
136
+ /* -------------------------------------------------------------------- */
137
+ /* Default to four overview levels. It would be nicer if it */
138
+ /* defaulted based on the size of the source image. */
139
+ /* -------------------------------------------------------------------- */
140
+ /* TODO: make it default based on the size of the source image */
141
+ if( nOverviewCount == 0 )
142
+ {
143
+ nOverviewCount = 4;
144
+
145
+ anOverviews[0] = 2;
146
+ anOverviews[1] = 4;
147
+ anOverviews[2] = 8;
148
+ anOverviews[3] = 16;
149
+ }
150
+
151
+ /* -------------------------------------------------------------------- */
152
+ /* Build the overview. */
153
+ /* -------------------------------------------------------------------- */
154
+ hTIFF = TIFFOpen( argv[1], "r+" );
155
+ if( hTIFF == NULL )
156
+ {
157
+ fprintf( stderr, "TIFFOpen(%s) failed.\n", argv[1] );
158
+ return( 1 );
159
+ }
160
+
161
+ TIFFBuildOverviews( hTIFF, nOverviewCount, anOverviews, bUseSubIFD,
162
+ pszResampling, NULL, NULL );
163
+
164
+ TIFFClose( hTIFF );
165
+
166
+ /* -------------------------------------------------------------------- */
167
+ /* Optionally test for memory leaks. */
168
+ /* -------------------------------------------------------------------- */
169
+ #ifdef DBMALLOC
170
+ malloc_dump(1);
171
+ #endif
172
+
173
+ return( 0 );
174
+ }
175
+ /*
176
+ * Local Variables:
177
+ * mode: c
178
+ * c-basic-offset: 4
179
+ * fill-column: 78
180
+ * End:
181
+ */
@@ -0,0 +1,916 @@
1
+ /******************************************************************************
2
+ * tif_overview.c,v 1.9 2005/05/25 09:03:16 dron Exp
3
+ *
4
+ * Project: TIFF Overview Builder
5
+ * Purpose: Library function for building overviews in a TIFF file.
6
+ * Author: Frank Warmerdam, warmerdam@pobox.com
7
+ *
8
+ * Notes:
9
+ * o Currently only images with bits_per_sample of a multiple of eight
10
+ * will work.
11
+ *
12
+ * o The downsampler currently just takes the top left pixel from the
13
+ * source rectangle. Eventually sampling options of averaging, mode, and
14
+ * ``center pixel'' should be offered.
15
+ *
16
+ * o The code will attempt to use the same kind of compression,
17
+ * photometric interpretation, and organization as the source image, but
18
+ * it doesn't copy geotiff tags to the reduced resolution images.
19
+ *
20
+ * o Reduced resolution overviews for multi-sample files will currently
21
+ * always be generated as PLANARCONFIG_SEPARATE. This could be fixed
22
+ * reasonable easily if needed to improve compatibility with other
23
+ * packages. Many don't properly support PLANARCONFIG_SEPARATE.
24
+ *
25
+ ******************************************************************************
26
+ * Copyright (c) 1999, Frank Warmerdam
27
+ *
28
+ * Permission is hereby granted, free of charge, to any person obtaining a
29
+ * copy of this software and associated documentation files (the "Software"),
30
+ * to deal in the Software without restriction, including without limitation
31
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
32
+ * and/or sell copies of the Software, and to permit persons to whom the
33
+ * Software is furnished to do so, subject to the following conditions:
34
+ *
35
+ * The above copyright notice and this permission notice shall be included
36
+ * in all copies or substantial portions of the Software.
37
+ *
38
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
39
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
40
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
41
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
42
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
44
+ * DEALINGS IN THE SOFTWARE.
45
+ ******************************************************************************
46
+ */
47
+
48
+ /* TODO: update notes in header above */
49
+
50
+ #include <stdio.h>
51
+ #include <assert.h>
52
+ #include <stdlib.h>
53
+ #include <string.h>
54
+
55
+ #include "tiffio.h"
56
+ #include "tif_ovrcache.h"
57
+
58
+ #ifndef FALSE
59
+ # define FALSE 0
60
+ # define TRUE 1
61
+ #endif
62
+
63
+ #ifndef MAX
64
+ # define MIN(a,b) ((a<b) ? a : b)
65
+ # define MAX(a,b) ((a>b) ? a : b)
66
+ #endif
67
+
68
+ void TIFFBuildOverviews( TIFF *, int, int *, int, const char *,
69
+ int (*)(double,void*), void * );
70
+
71
+ /************************************************************************/
72
+ /* TIFF_WriteOverview() */
73
+ /* */
74
+ /* Create a new directory, without any image data for an overview. */
75
+ /* Returns offset of newly created overview directory, but the */
76
+ /* current directory is reset to be the one in used when this */
77
+ /* function is called. */
78
+ /************************************************************************/
79
+
80
+ uint32 TIFF_WriteOverview( TIFF *hTIFF, uint32 nXSize, uint32 nYSize,
81
+ int nBitsPerPixel, int nPlanarConfig, int nSamples,
82
+ int nBlockXSize, int nBlockYSize,
83
+ int bTiled, int nCompressFlag, int nPhotometric,
84
+ int nSampleFormat,
85
+ unsigned short *panRed,
86
+ unsigned short *panGreen,
87
+ unsigned short *panBlue,
88
+ int bUseSubIFDs,
89
+ int nHorSubsampling, int nVerSubsampling )
90
+
91
+ {
92
+ toff_t nBaseDirOffset;
93
+ toff_t nOffset;
94
+
95
+ (void) bUseSubIFDs;
96
+
97
+ nBaseDirOffset = TIFFCurrentDirOffset( hTIFF );
98
+
99
+ TIFFCreateDirectory( hTIFF );
100
+
101
+ /* -------------------------------------------------------------------- */
102
+ /* Setup TIFF fields. */
103
+ /* -------------------------------------------------------------------- */
104
+ TIFFSetField( hTIFF, TIFFTAG_IMAGEWIDTH, nXSize );
105
+ TIFFSetField( hTIFF, TIFFTAG_IMAGELENGTH, nYSize );
106
+ if( nSamples == 1 )
107
+ TIFFSetField( hTIFF, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG );
108
+ else
109
+ TIFFSetField( hTIFF, TIFFTAG_PLANARCONFIG, nPlanarConfig );
110
+
111
+ TIFFSetField( hTIFF, TIFFTAG_BITSPERSAMPLE, nBitsPerPixel );
112
+ TIFFSetField( hTIFF, TIFFTAG_SAMPLESPERPIXEL, nSamples );
113
+ TIFFSetField( hTIFF, TIFFTAG_COMPRESSION, nCompressFlag );
114
+ TIFFSetField( hTIFF, TIFFTAG_PHOTOMETRIC, nPhotometric );
115
+ TIFFSetField( hTIFF, TIFFTAG_SAMPLEFORMAT, nSampleFormat );
116
+
117
+ if( bTiled )
118
+ {
119
+ TIFFSetField( hTIFF, TIFFTAG_TILEWIDTH, nBlockXSize );
120
+ TIFFSetField( hTIFF, TIFFTAG_TILELENGTH, nBlockYSize );
121
+ }
122
+ else
123
+ TIFFSetField( hTIFF, TIFFTAG_ROWSPERSTRIP, nBlockYSize );
124
+
125
+ TIFFSetField( hTIFF, TIFFTAG_SUBFILETYPE, FILETYPE_REDUCEDIMAGE );
126
+
127
+ if( nPhotometric == PHOTOMETRIC_YCBCR || nPhotometric == PHOTOMETRIC_ITULAB )
128
+ {
129
+ TIFFSetField( hTIFF, TIFFTAG_YCBCRSUBSAMPLING, nHorSubsampling, nVerSubsampling);
130
+ /* TODO: also write YCbCrPositioning and YCbCrCoefficients tag identical to source IFD */
131
+ }
132
+ /* TODO: add command-line parameter for selecting jpeg compression quality
133
+ * that gets ignored when compression isn't jpeg */
134
+
135
+ /* -------------------------------------------------------------------- */
136
+ /* Write color table if one is present. */
137
+ /* -------------------------------------------------------------------- */
138
+ if( panRed != NULL )
139
+ {
140
+ TIFFSetField( hTIFF, TIFFTAG_COLORMAP, panRed, panGreen, panBlue );
141
+ }
142
+
143
+ /* -------------------------------------------------------------------- */
144
+ /* Write directory, and return byte offset. */
145
+ /* -------------------------------------------------------------------- */
146
+ if( TIFFWriteCheck( hTIFF, bTiled, "TIFFBuildOverviews" ) == 0 )
147
+ return 0;
148
+
149
+ TIFFWriteDirectory( hTIFF );
150
+ TIFFSetDirectory( hTIFF, (tdir_t) (TIFFNumberOfDirectories(hTIFF)-1) );
151
+
152
+ nOffset = TIFFCurrentDirOffset( hTIFF );
153
+
154
+ TIFFSetSubDirectory( hTIFF, nBaseDirOffset );
155
+
156
+ return nOffset;
157
+ }
158
+
159
+ /************************************************************************/
160
+ /* TIFF_GetSourceSamples() */
161
+ /************************************************************************/
162
+
163
+ static void
164
+ TIFF_GetSourceSamples( double * padfSamples, unsigned char *pabySrc,
165
+ int nPixelBytes, int nSampleFormat,
166
+ uint32 nXSize, uint32 nYSize,
167
+ int nPixelOffset, int nLineOffset )
168
+ {
169
+ uint32 iXOff, iYOff;
170
+ int iSample;
171
+
172
+ iSample = 0;
173
+
174
+ for( iYOff = 0; iYOff < nYSize; iYOff++ )
175
+ {
176
+ for( iXOff = 0; iXOff < nXSize; iXOff++ )
177
+ {
178
+ unsigned char *pabyData;
179
+
180
+ pabyData = pabySrc + iYOff * nLineOffset + iXOff * nPixelOffset;
181
+
182
+ if( nSampleFormat == SAMPLEFORMAT_UINT && nPixelBytes == 1 )
183
+ {
184
+ padfSamples[iSample++] = *pabyData;
185
+ }
186
+ else if( nSampleFormat == SAMPLEFORMAT_UINT && nPixelBytes == 2 )
187
+ {
188
+ padfSamples[iSample++] = ((uint16 *) pabyData)[0];
189
+ }
190
+ else if( nSampleFormat == SAMPLEFORMAT_UINT && nPixelBytes == 4 )
191
+ {
192
+ padfSamples[iSample++] = ((uint32 *) pabyData)[0];
193
+ }
194
+ else if( nSampleFormat == SAMPLEFORMAT_INT && nPixelBytes == 2 )
195
+ {
196
+ padfSamples[iSample++] = ((int16 *) pabyData)[0];
197
+ }
198
+ else if( nSampleFormat == SAMPLEFORMAT_INT && nPixelBytes == 32 )
199
+ {
200
+ padfSamples[iSample++] = ((int32 *) pabyData)[0];
201
+ }
202
+ else if( nSampleFormat == SAMPLEFORMAT_IEEEFP && nPixelBytes == 4 )
203
+ {
204
+ padfSamples[iSample++] = ((float *) pabyData)[0];
205
+ }
206
+ else if( nSampleFormat == SAMPLEFORMAT_IEEEFP && nPixelBytes == 8 )
207
+ {
208
+ padfSamples[iSample++] = ((double *) pabyData)[0];
209
+ }
210
+ }
211
+ }
212
+ }
213
+
214
+ /************************************************************************/
215
+ /* TIFF_SetSample() */
216
+ /************************************************************************/
217
+
218
+ static void
219
+ TIFF_SetSample( unsigned char * pabyData, int nPixelBytes, int nSampleFormat,
220
+ double dfValue )
221
+
222
+ {
223
+ if( nSampleFormat == SAMPLEFORMAT_UINT && nPixelBytes == 1 )
224
+ {
225
+ *pabyData = (unsigned char) MAX(0,MIN(255,dfValue));
226
+ }
227
+ else if( nSampleFormat == SAMPLEFORMAT_UINT && nPixelBytes == 2 )
228
+ {
229
+ *((uint16 *)pabyData) = (uint16) MAX(0,MIN(65535,dfValue));
230
+ }
231
+ else if( nSampleFormat == SAMPLEFORMAT_UINT && nPixelBytes == 4 )
232
+ {
233
+ *((uint32 *)pabyData) = (uint32) dfValue;
234
+ }
235
+ else if( nSampleFormat == SAMPLEFORMAT_INT && nPixelBytes == 2 )
236
+ {
237
+ *((int16 *)pabyData) = (int16) MAX(-32768,MIN(32767,dfValue));
238
+ }
239
+ else if( nSampleFormat == SAMPLEFORMAT_INT && nPixelBytes == 32 )
240
+ {
241
+ *((int32 *)pabyData) = (int32) dfValue;
242
+ }
243
+ else if( nSampleFormat == SAMPLEFORMAT_IEEEFP && nPixelBytes == 4 )
244
+ {
245
+ *((float *)pabyData) = (float) dfValue;
246
+ }
247
+ else if( nSampleFormat == SAMPLEFORMAT_IEEEFP && nPixelBytes == 8 )
248
+ {
249
+ *((double *)pabyData) = dfValue;
250
+ }
251
+ }
252
+
253
+ /************************************************************************/
254
+ /* TIFF_DownSample() */
255
+ /* */
256
+ /* Down sample a tile of full res data into a window of a tile */
257
+ /* of downsampled data. */
258
+ /************************************************************************/
259
+
260
+ static
261
+ void TIFF_DownSample( unsigned char *pabySrcTile,
262
+ uint32 nBlockXSize, uint32 nBlockYSize,
263
+ int nPixelSkewBits, int nBitsPerPixel,
264
+ unsigned char * pabyOTile,
265
+ uint32 nOBlockXSize, uint32 nOBlockYSize,
266
+ uint32 nTXOff, uint32 nTYOff, int nOMult,
267
+ int nSampleFormat, const char * pszResampling )
268
+
269
+ {
270
+ uint32 i, j;
271
+ int k, nPixelBytes = (nBitsPerPixel) / 8;
272
+ int nPixelGroupBytes = (nBitsPerPixel+nPixelSkewBits)/8;
273
+ unsigned char *pabySrc, *pabyDst;
274
+ double *padfSamples;
275
+ size_t tpadfSamples_size, padfSamples_size;
276
+
277
+ assert( nBitsPerPixel >= 8 );
278
+
279
+ /* sizeof(double) * nOMult * nOMult */
280
+ tpadfSamples_size=nOMult*nOMult;
281
+ if ((nOMult != 0) && (tpadfSamples_size/nOMult == (size_t) nOMult)) {
282
+ padfSamples_size=tpadfSamples_size;
283
+ tpadfSamples_size=padfSamples_size*sizeof(double);
284
+ if ((tpadfSamples_size / padfSamples_size) == sizeof(double))
285
+ padfSamples_size=tpadfSamples_size;
286
+ else
287
+ padfSamples_size=0;
288
+ } else {
289
+ padfSamples_size=0;
290
+ }
291
+ if (padfSamples_size == 0) {
292
+ /* TODO: This is an error condition */
293
+ return;
294
+ }
295
+ padfSamples = (double *) malloc(padfSamples_size);
296
+
297
+ /* ==================================================================== */
298
+ /* Loop over scanline chunks to process, establishing where the */
299
+ /* data is going. */
300
+ /* ==================================================================== */
301
+ for( j = 0; j*nOMult < nBlockYSize; j++ )
302
+ {
303
+ if( j + nTYOff >= nOBlockYSize )
304
+ break;
305
+
306
+ pabyDst = pabyOTile + ((j+nTYOff)*nOBlockXSize + nTXOff)
307
+ * nPixelBytes * nPixelGroupBytes;
308
+
309
+ /* -------------------------------------------------------------------- */
310
+ /* Handler nearest resampling ... we don't even care about the */
311
+ /* data type, we just do a bytewise copy. */
312
+ /* -------------------------------------------------------------------- */
313
+ if( strncmp(pszResampling,"nearest",4) == 0
314
+ || strncmp(pszResampling,"NEAR",4) == 0 )
315
+ {
316
+ pabySrc = pabySrcTile + j*nOMult*nBlockXSize * nPixelGroupBytes;
317
+
318
+ for( i = 0; i*nOMult < nBlockXSize; i++ )
319
+ {
320
+ if( i + nTXOff >= nOBlockXSize )
321
+ break;
322
+
323
+ /*
324
+ * For now use simple subsampling, from the top left corner
325
+ * of the source block of pixels.
326
+ */
327
+
328
+ for( k = 0; k < nPixelBytes; k++ )
329
+ pabyDst[k] = pabySrc[k];
330
+
331
+ pabyDst += nPixelBytes * nPixelGroupBytes;
332
+ pabySrc += nOMult * nPixelGroupBytes;
333
+ }
334
+ }
335
+
336
+ /* -------------------------------------------------------------------- */
337
+ /* Handle the case of averaging. For this we also have to */
338
+ /* handle each sample format we are concerned with. */
339
+ /* -------------------------------------------------------------------- */
340
+ else if( strncmp(pszResampling,"averag",6) == 0
341
+ || strncmp(pszResampling,"AVERAG",6) == 0 )
342
+ {
343
+ pabySrc = pabySrcTile + j*nOMult*nBlockXSize * nPixelGroupBytes;
344
+
345
+ for( i = 0; i*nOMult < nBlockXSize; i++ )
346
+ {
347
+ double dfTotal;
348
+ uint32 nXSize, nYSize, iSample;
349
+
350
+ if( i + nTXOff >= nOBlockXSize )
351
+ break;
352
+
353
+ nXSize = MIN((uint32)nOMult,nBlockXSize-i);
354
+ nYSize = MIN((uint32)nOMult,nBlockYSize-j);
355
+
356
+ TIFF_GetSourceSamples( padfSamples, pabySrc,
357
+ nPixelBytes, nSampleFormat,
358
+ nXSize, nYSize,
359
+ nPixelGroupBytes,
360
+ nPixelGroupBytes * nBlockXSize );
361
+
362
+ dfTotal = 0;
363
+ for( iSample = 0; iSample < nXSize*nYSize; iSample++ )
364
+ {
365
+ dfTotal += padfSamples[iSample];
366
+ }
367
+
368
+ TIFF_SetSample( pabyDst, nPixelBytes, nSampleFormat,
369
+ dfTotal / (nXSize*nYSize) );
370
+
371
+ pabySrc += nOMult * nPixelGroupBytes;
372
+ pabyDst += nPixelBytes;
373
+ }
374
+ }
375
+ }
376
+
377
+ free( padfSamples );
378
+ }
379
+
380
+ /************************************************************************/
381
+ /* TIFF_DownSample_Subsampled() */
382
+ /************************************************************************/
383
+ static
384
+ void TIFF_DownSample_Subsampled( unsigned char *pabySrcTile, int nSample,
385
+ uint32 nBlockXSize, uint32 nBlockYSize,
386
+ unsigned char * pabyOTile,
387
+ uint32 nOBlockXSize, uint32 nOBlockYSize,
388
+ uint32 nTXOff, uint32 nTYOff, int nOMult,
389
+ const char *pszResampling,
390
+ int nHorSubsampling, int nVerSubsampling )
391
+ {
392
+ /* TODO: test with variety of subsampling values, and incovinient tile/strip sizes */
393
+ int nSampleBlockSize;
394
+ int nSourceSampleRowSize;
395
+ int nDestSampleRowSize;
396
+ uint32 nSourceX, nSourceY;
397
+ uint32 nSourceXSec, nSourceYSec;
398
+ uint32 nSourceXSecEnd, nSourceYSecEnd;
399
+ uint32 nDestX, nDestY;
400
+ int nSampleOffsetInSampleBlock;
401
+ unsigned int nCummulator;
402
+ unsigned int nCummulatorCount;
403
+
404
+ nSampleBlockSize = nHorSubsampling * nVerSubsampling + 2;
405
+ nSourceSampleRowSize =
406
+ ( ( nBlockXSize + nHorSubsampling - 1 ) / nHorSubsampling ) * nSampleBlockSize;
407
+ nDestSampleRowSize =
408
+ ( ( nOBlockXSize + nHorSubsampling - 1 ) / nHorSubsampling ) * nSampleBlockSize;
409
+
410
+ if( strncmp(pszResampling,"nearest",4) == 0
411
+ || strncmp(pszResampling,"NEAR",4) == 0 )
412
+ {
413
+ if( nSample == 0 )
414
+ {
415
+ for( nSourceY = 0, nDestY = nTYOff;
416
+ nSourceY < nBlockYSize;
417
+ nSourceY += nOMult, nDestY ++)
418
+ {
419
+ if( nDestY >= nOBlockYSize )
420
+ break;
421
+
422
+ for( nSourceX = 0, nDestX = nTXOff;
423
+ nSourceX < nBlockXSize;
424
+ nSourceX += nOMult, nDestX ++)
425
+ {
426
+ if( nDestX >= nOBlockXSize )
427
+ break;
428
+
429
+ * ( pabyOTile + ( nDestY / nVerSubsampling ) * nDestSampleRowSize
430
+ + ( nDestY % nVerSubsampling ) * nHorSubsampling
431
+ + ( nDestX / nHorSubsampling ) * nSampleBlockSize
432
+ + ( nDestX % nHorSubsampling ) ) =
433
+ * ( pabySrcTile + ( nSourceY / nVerSubsampling ) * nSourceSampleRowSize
434
+ + ( nSourceY % nVerSubsampling ) * nHorSubsampling
435
+ + ( nSourceX / nHorSubsampling ) * nSampleBlockSize
436
+ + ( nSourceX % nHorSubsampling ) );
437
+ }
438
+ }
439
+ }
440
+ else
441
+ {
442
+ nSampleOffsetInSampleBlock = nHorSubsampling * nVerSubsampling + nSample - 1;
443
+ for( nSourceY = 0, nDestY = ( nTYOff / nVerSubsampling );
444
+ nSourceY < ( nBlockYSize / nVerSubsampling );
445
+ nSourceY += nOMult, nDestY ++)
446
+ {
447
+ if( nDestY*nVerSubsampling >= nOBlockYSize )
448
+ break;
449
+
450
+ for( nSourceX = 0, nDestX = ( nTXOff / nHorSubsampling );
451
+ nSourceX < ( nBlockXSize / nHorSubsampling );
452
+ nSourceX += nOMult, nDestX ++)
453
+ {
454
+ if( nDestX*nHorSubsampling >= nOBlockXSize )
455
+ break;
456
+
457
+ * ( pabyOTile + nDestY * nDestSampleRowSize
458
+ + nDestX * nSampleBlockSize
459
+ + nSampleOffsetInSampleBlock ) =
460
+ * ( pabySrcTile + nSourceY * nSourceSampleRowSize
461
+ + nSourceX * nSampleBlockSize
462
+ + nSampleOffsetInSampleBlock );
463
+ }
464
+ }
465
+ }
466
+ }
467
+ else if( strncmp(pszResampling,"averag",6) == 0
468
+ || strncmp(pszResampling,"AVERAG",6) == 0 )
469
+ {
470
+ if( nSample == 0 )
471
+ {
472
+ for( nSourceY = 0, nDestY = nTYOff; nSourceY < nBlockYSize; nSourceY += nOMult, nDestY ++)
473
+ {
474
+ if( nDestY >= nOBlockYSize )
475
+ break;
476
+
477
+ for( nSourceX = 0, nDestX = nTXOff; nSourceX < nBlockXSize; nSourceX += nOMult, nDestX ++)
478
+ {
479
+ if( nDestX >= nOBlockXSize )
480
+ break;
481
+
482
+ nSourceXSecEnd = nSourceX + nOMult;
483
+ if( nSourceXSecEnd > nBlockXSize )
484
+ nSourceXSecEnd = nBlockXSize;
485
+ nSourceYSecEnd = nSourceY + nOMult;
486
+ if( nSourceYSecEnd > nBlockYSize )
487
+ nSourceYSecEnd = nBlockYSize;
488
+ nCummulator = 0;
489
+ for( nSourceYSec = nSourceY; nSourceYSec < nSourceYSecEnd; nSourceYSec ++)
490
+ {
491
+ for( nSourceXSec = nSourceX; nSourceXSec < nSourceXSecEnd; nSourceXSec ++)
492
+ {
493
+ nCummulator += * ( pabySrcTile + ( nSourceYSec / nVerSubsampling ) * nSourceSampleRowSize
494
+ + ( nSourceYSec % nVerSubsampling ) * nHorSubsampling
495
+ + ( nSourceXSec / nHorSubsampling ) * nSampleBlockSize
496
+ + ( nSourceXSec % nHorSubsampling ) );
497
+ }
498
+ }
499
+ nCummulatorCount = ( nSourceXSecEnd - nSourceX ) * ( nSourceYSecEnd - nSourceY );
500
+ * ( pabyOTile + ( nDestY / nVerSubsampling ) * nDestSampleRowSize
501
+ + ( nDestY % nVerSubsampling ) * nHorSubsampling
502
+ + ( nDestX / nHorSubsampling ) * nSampleBlockSize
503
+ + ( nDestX % nHorSubsampling ) ) =
504
+ ( ( nCummulator + ( nCummulatorCount >> 1 ) ) / nCummulatorCount );
505
+ }
506
+ }
507
+ }
508
+ else
509
+ {
510
+ nSampleOffsetInSampleBlock = nHorSubsampling * nVerSubsampling + nSample - 1;
511
+ for( nSourceY = 0, nDestY = ( nTYOff / nVerSubsampling ); nSourceY < ( nBlockYSize / nVerSubsampling );
512
+ nSourceY += nOMult, nDestY ++)
513
+ {
514
+ if( nDestY*nVerSubsampling >= nOBlockYSize )
515
+ break;
516
+
517
+ for( nSourceX = 0, nDestX = ( nTXOff / nHorSubsampling ); nSourceX < ( nBlockXSize / nHorSubsampling );
518
+ nSourceX += nOMult, nDestX ++)
519
+ {
520
+ if( nDestX*nHorSubsampling >= nOBlockXSize )
521
+ break;
522
+
523
+ nSourceXSecEnd = nSourceX + nOMult;
524
+ if( nSourceXSecEnd > ( nBlockXSize / nHorSubsampling ) )
525
+ nSourceXSecEnd = ( nBlockXSize / nHorSubsampling );
526
+ nSourceYSecEnd = nSourceY + nOMult;
527
+ if( nSourceYSecEnd > ( nBlockYSize / nVerSubsampling ) )
528
+ nSourceYSecEnd = ( nBlockYSize / nVerSubsampling );
529
+ nCummulator = 0;
530
+ for( nSourceYSec = nSourceY; nSourceYSec < nSourceYSecEnd; nSourceYSec ++)
531
+ {
532
+ for( nSourceXSec = nSourceX; nSourceXSec < nSourceXSecEnd; nSourceXSec ++)
533
+ {
534
+ nCummulator += * ( pabySrcTile + nSourceYSec * nSourceSampleRowSize
535
+ + nSourceXSec * nSampleBlockSize
536
+ + nSampleOffsetInSampleBlock );
537
+ }
538
+ }
539
+ nCummulatorCount = ( nSourceXSecEnd - nSourceX ) * ( nSourceYSecEnd - nSourceY );
540
+ * ( pabyOTile + nDestY * nDestSampleRowSize
541
+ + nDestX * nSampleBlockSize
542
+ + nSampleOffsetInSampleBlock ) =
543
+ ( ( nCummulator + ( nCummulatorCount >> 1 ) ) / nCummulatorCount );
544
+ }
545
+ }
546
+ }
547
+ }
548
+ }
549
+
550
+ /************************************************************************/
551
+ /* TIFF_ProcessFullResBlock() */
552
+ /* */
553
+ /* Process one block of full res data, downsampling into each */
554
+ /* of the overviews. */
555
+ /************************************************************************/
556
+
557
+ void TIFF_ProcessFullResBlock( TIFF *hTIFF, int nPlanarConfig,
558
+ int bSubsampled,
559
+ int nHorSubsampling, int nVerSubsampling,
560
+ int nOverviews, int * panOvList,
561
+ int nBitsPerPixel,
562
+ int nSamples, TIFFOvrCache ** papoRawBIs,
563
+ uint32 nSXOff, uint32 nSYOff,
564
+ unsigned char *pabySrcTile,
565
+ uint32 nBlockXSize, uint32 nBlockYSize,
566
+ int nSampleFormat, const char * pszResampling )
567
+
568
+ {
569
+ int iOverview, iSample;
570
+
571
+ for( iSample = 0; iSample < nSamples; iSample++ )
572
+ {
573
+ /*
574
+ * We have to read a tile/strip for each sample for
575
+ * PLANARCONFIG_SEPARATE. Otherwise, we just read all the samples
576
+ * at once when handling the first sample.
577
+ */
578
+ if( nPlanarConfig == PLANARCONFIG_SEPARATE || iSample == 0 )
579
+ {
580
+ if( TIFFIsTiled(hTIFF) )
581
+ {
582
+ TIFFReadEncodedTile( hTIFF,
583
+ TIFFComputeTile(hTIFF, nSXOff, nSYOff,
584
+ 0, (tsample_t)iSample ),
585
+ pabySrcTile,
586
+ TIFFTileSize(hTIFF));
587
+ }
588
+ else
589
+ {
590
+ TIFFReadEncodedStrip( hTIFF,
591
+ TIFFComputeStrip(hTIFF, nSYOff,
592
+ (tsample_t) iSample),
593
+ pabySrcTile,
594
+ TIFFStripSize(hTIFF) );
595
+ }
596
+ }
597
+
598
+ /*
599
+ * Loop over destination overview layers
600
+ */
601
+ for( iOverview = 0; iOverview < nOverviews; iOverview++ )
602
+ {
603
+ TIFFOvrCache *poRBI = papoRawBIs[iOverview];
604
+ unsigned char *pabyOTile;
605
+ uint32 nTXOff, nTYOff, nOXOff, nOYOff, nOMult;
606
+ uint32 nOBlockXSize = poRBI->nBlockXSize;
607
+ uint32 nOBlockYSize = poRBI->nBlockYSize;
608
+ int nSkewBits, nSampleByteOffset;
609
+
610
+ /*
611
+ * Fetch the destination overview tile
612
+ */
613
+ nOMult = panOvList[iOverview];
614
+ nOXOff = (nSXOff/nOMult) / nOBlockXSize;
615
+ nOYOff = (nSYOff/nOMult) / nOBlockYSize;
616
+
617
+ if( bSubsampled )
618
+ {
619
+ pabyOTile = TIFFGetOvrBlock_Subsampled( poRBI, nOXOff, nOYOff );
620
+
621
+ /*
622
+ * Establish the offset into this tile at which we should
623
+ * start placing data.
624
+ */
625
+ nTXOff = (nSXOff - nOXOff*nOMult*nOBlockXSize) / nOMult;
626
+ nTYOff = (nSYOff - nOYOff*nOMult*nOBlockYSize) / nOMult;
627
+
628
+
629
+ #ifdef DBMALLOC
630
+ malloc_chain_check( 1 );
631
+ #endif
632
+ TIFF_DownSample_Subsampled( pabySrcTile, iSample,
633
+ nBlockXSize, nBlockYSize,
634
+ pabyOTile,
635
+ poRBI->nBlockXSize, poRBI->nBlockYSize,
636
+ nTXOff, nTYOff,
637
+ nOMult, pszResampling,
638
+ nHorSubsampling, nVerSubsampling );
639
+ #ifdef DBMALLOC
640
+ malloc_chain_check( 1 );
641
+ #endif
642
+
643
+ }
644
+ else
645
+ {
646
+
647
+ pabyOTile = TIFFGetOvrBlock( poRBI, nOXOff, nOYOff, iSample );
648
+
649
+ /*
650
+ * Establish the offset into this tile at which we should
651
+ * start placing data.
652
+ */
653
+ nTXOff = (nSXOff - nOXOff*nOMult*nOBlockXSize) / nOMult;
654
+ nTYOff = (nSYOff - nOYOff*nOMult*nOBlockYSize) / nOMult;
655
+
656
+ /*
657
+ * Figure out the skew (extra space between ``our samples'') and
658
+ * the byte offset to the first sample.
659
+ */
660
+ assert( (nBitsPerPixel % 8) == 0 );
661
+ if( nPlanarConfig == PLANARCONFIG_SEPARATE )
662
+ {
663
+ nSkewBits = 0;
664
+ nSampleByteOffset = 0;
665
+ }
666
+ else
667
+ {
668
+ nSkewBits = nBitsPerPixel * (nSamples-1);
669
+ nSampleByteOffset = (nBitsPerPixel/8) * iSample;
670
+ }
671
+
672
+ /*
673
+ * Perform the downsampling.
674
+ */
675
+ #ifdef DBMALLOC
676
+ malloc_chain_check( 1 );
677
+ #endif
678
+ TIFF_DownSample( pabySrcTile + nSampleByteOffset,
679
+ nBlockXSize, nBlockYSize,
680
+ nSkewBits, nBitsPerPixel, pabyOTile,
681
+ poRBI->nBlockXSize, poRBI->nBlockYSize,
682
+ nTXOff, nTYOff,
683
+ nOMult, nSampleFormat, pszResampling );
684
+ #ifdef DBMALLOC
685
+ malloc_chain_check( 1 );
686
+ #endif
687
+ }
688
+ }
689
+ }
690
+ }
691
+
692
+ /************************************************************************/
693
+ /* TIFF_BuildOverviews() */
694
+ /* */
695
+ /* Build the requested list of overviews. Overviews are */
696
+ /* maintained in a bunch of temporary files and then these are */
697
+ /* written back to the TIFF file. Only one pass through the */
698
+ /* source TIFF file is made for any number of output */
699
+ /* overviews. */
700
+ /************************************************************************/
701
+
702
+ void TIFFBuildOverviews( TIFF *hTIFF, int nOverviews, int * panOvList,
703
+ int bUseSubIFDs, const char *pszResampleMethod,
704
+ int (*pfnProgress)( double, void * ),
705
+ void * pProgressData )
706
+
707
+ {
708
+ TIFFOvrCache **papoRawBIs;
709
+ uint32 nXSize, nYSize, nBlockXSize, nBlockYSize;
710
+ uint16 nBitsPerPixel, nPhotometric, nCompressFlag, nSamples,
711
+ nPlanarConfig, nSampleFormat;
712
+ int bSubsampled;
713
+ uint16 nHorSubsampling, nVerSubsampling;
714
+ int bTiled, nSXOff, nSYOff, i;
715
+ unsigned char *pabySrcTile;
716
+ uint16 *panRedMap, *panGreenMap, *panBlueMap;
717
+ TIFFErrorHandler pfnWarning;
718
+
719
+ (void) pfnProgress;
720
+ (void) pProgressData;
721
+
722
+ /* -------------------------------------------------------------------- */
723
+ /* Get the base raster size. */
724
+ /* -------------------------------------------------------------------- */
725
+ TIFFGetField( hTIFF, TIFFTAG_IMAGEWIDTH, &nXSize );
726
+ TIFFGetField( hTIFF, TIFFTAG_IMAGELENGTH, &nYSize );
727
+
728
+ TIFFGetField( hTIFF, TIFFTAG_BITSPERSAMPLE, &nBitsPerPixel );
729
+ /* TODO: nBitsPerPixel seems misnomer and may need renaming to nBitsPerSample */
730
+ TIFFGetField( hTIFF, TIFFTAG_SAMPLESPERPIXEL, &nSamples );
731
+ TIFFGetFieldDefaulted( hTIFF, TIFFTAG_PLANARCONFIG, &nPlanarConfig );
732
+
733
+ TIFFGetFieldDefaulted( hTIFF, TIFFTAG_PHOTOMETRIC, &nPhotometric );
734
+ TIFFGetFieldDefaulted( hTIFF, TIFFTAG_COMPRESSION, &nCompressFlag );
735
+ TIFFGetFieldDefaulted( hTIFF, TIFFTAG_SAMPLEFORMAT, &nSampleFormat );
736
+
737
+ if( nPhotometric == PHOTOMETRIC_YCBCR || nPhotometric == PHOTOMETRIC_ITULAB )
738
+ {
739
+ if( nBitsPerPixel != 8 || nSamples != 3 || nPlanarConfig != PLANARCONFIG_CONTIG ||
740
+ nSampleFormat != SAMPLEFORMAT_UINT)
741
+ {
742
+ /* TODO: use of TIFFError is inconsistent with use of fprintf in addtiffo.c, sort out */
743
+ TIFFErrorExt( TIFFClientdata(hTIFF), "TIFFBuildOverviews",
744
+ "File `%s' has an unsupported subsampling configuration.\n",
745
+ TIFFFileName(hTIFF) );
746
+ /* If you need support for this particular flavor, please contact either
747
+ * Frank Warmerdam warmerdam@pobox.com
748
+ * Joris Van Damme info@awaresystems.be
749
+ */
750
+ return;
751
+ }
752
+ bSubsampled = 1;
753
+ TIFFGetField( hTIFF, TIFFTAG_YCBCRSUBSAMPLING, &nHorSubsampling, &nVerSubsampling );
754
+ /* TODO: find out if maybe TIFFGetFieldDefaulted is better choice for YCbCrSubsampling tag */
755
+ }
756
+ else
757
+ {
758
+ if( nBitsPerPixel < 8 )
759
+ {
760
+ /* TODO: use of TIFFError is inconsistent with use of fprintf in addtiffo.c, sort out */
761
+ TIFFErrorExt( TIFFClientdata(hTIFF), "TIFFBuildOverviews",
762
+ "File `%s' has samples of %d bits per sample. Sample\n"
763
+ "sizes of less than 8 bits per sample are not supported.\n",
764
+ TIFFFileName(hTIFF), nBitsPerPixel );
765
+ return;
766
+ }
767
+ bSubsampled = 0;
768
+ nHorSubsampling = 1;
769
+ nVerSubsampling = 1;
770
+ }
771
+
772
+ /* -------------------------------------------------------------------- */
773
+ /* Turn off warnings to avoid alot of repeated warnings while */
774
+ /* rereading directories. */
775
+ /* -------------------------------------------------------------------- */
776
+ pfnWarning = TIFFSetWarningHandler( NULL );
777
+
778
+ /* -------------------------------------------------------------------- */
779
+ /* Get the base raster block size. */
780
+ /* -------------------------------------------------------------------- */
781
+ if( TIFFGetField( hTIFF, TIFFTAG_ROWSPERSTRIP, &(nBlockYSize) ) )
782
+ {
783
+ nBlockXSize = nXSize;
784
+ bTiled = FALSE;
785
+ }
786
+ else
787
+ {
788
+ TIFFGetField( hTIFF, TIFFTAG_TILEWIDTH, &nBlockXSize );
789
+ TIFFGetField( hTIFF, TIFFTAG_TILELENGTH, &nBlockYSize );
790
+ bTiled = TRUE;
791
+ }
792
+
793
+ /* -------------------------------------------------------------------- */
794
+ /* Capture the pallette if there is one. */
795
+ /* -------------------------------------------------------------------- */
796
+ if( TIFFGetField( hTIFF, TIFFTAG_COLORMAP,
797
+ &panRedMap, &panGreenMap, &panBlueMap ) )
798
+ {
799
+ uint16 *panRed2, *panGreen2, *panBlue2;
800
+ int nColorCount = 1 << nBitsPerPixel;
801
+
802
+ panRed2 = (uint16 *) _TIFFmalloc(2*nColorCount);
803
+ panGreen2 = (uint16 *) _TIFFmalloc(2*nColorCount);
804
+ panBlue2 = (uint16 *) _TIFFmalloc(2*nColorCount);
805
+
806
+ memcpy( panRed2, panRedMap, 2 * nColorCount );
807
+ memcpy( panGreen2, panGreenMap, 2 * nColorCount );
808
+ memcpy( panBlue2, panBlueMap, 2 * nColorCount );
809
+
810
+ panRedMap = panRed2;
811
+ panGreenMap = panGreen2;
812
+ panBlueMap = panBlue2;
813
+ }
814
+ else
815
+ {
816
+ panRedMap = panGreenMap = panBlueMap = NULL;
817
+ }
818
+
819
+ /* -------------------------------------------------------------------- */
820
+ /* Initialize overviews. */
821
+ /* -------------------------------------------------------------------- */
822
+ papoRawBIs = (TIFFOvrCache **) _TIFFmalloc(nOverviews*sizeof(void*));
823
+
824
+ for( i = 0; i < nOverviews; i++ )
825
+ {
826
+ uint32 nOXSize, nOYSize, nOBlockXSize, nOBlockYSize;
827
+ toff_t nDirOffset;
828
+
829
+ nOXSize = (nXSize + panOvList[i] - 1) / panOvList[i];
830
+ nOYSize = (nYSize + panOvList[i] - 1) / panOvList[i];
831
+
832
+ nOBlockXSize = MIN(nBlockXSize,nOXSize);
833
+ nOBlockYSize = MIN(nBlockYSize,nOYSize);
834
+
835
+ if( bTiled )
836
+ {
837
+ if( (nOBlockXSize % 16) != 0 )
838
+ nOBlockXSize = nOBlockXSize + 16 - (nOBlockXSize % 16);
839
+
840
+ if( (nOBlockYSize % 16) != 0 )
841
+ nOBlockYSize = nOBlockYSize + 16 - (nOBlockYSize % 16);
842
+ }
843
+
844
+ nDirOffset = TIFF_WriteOverview( hTIFF, nOXSize, nOYSize,
845
+ nBitsPerPixel, nPlanarConfig,
846
+ nSamples, nOBlockXSize, nOBlockYSize,
847
+ bTiled, nCompressFlag, nPhotometric,
848
+ nSampleFormat,
849
+ panRedMap, panGreenMap, panBlueMap,
850
+ bUseSubIFDs,
851
+ nHorSubsampling, nVerSubsampling );
852
+
853
+ papoRawBIs[i] = TIFFCreateOvrCache( hTIFF, nDirOffset );
854
+ }
855
+
856
+ if( panRedMap != NULL )
857
+ {
858
+ _TIFFfree( panRedMap );
859
+ _TIFFfree( panGreenMap );
860
+ _TIFFfree( panBlueMap );
861
+ }
862
+
863
+ /* -------------------------------------------------------------------- */
864
+ /* Allocate a buffer to hold a source block. */
865
+ /* -------------------------------------------------------------------- */
866
+ if( bTiled )
867
+ pabySrcTile = (unsigned char *) _TIFFmalloc(TIFFTileSize(hTIFF));
868
+ else
869
+ pabySrcTile = (unsigned char *) _TIFFmalloc(TIFFStripSize(hTIFF));
870
+
871
+ /* -------------------------------------------------------------------- */
872
+ /* Loop over the source raster, applying data to the */
873
+ /* destination raster. */
874
+ /* -------------------------------------------------------------------- */
875
+ for( nSYOff = 0; nSYOff < (int) nYSize; nSYOff += nBlockYSize )
876
+ {
877
+ for( nSXOff = 0; nSXOff < (int) nXSize; nSXOff += nBlockXSize )
878
+ {
879
+ /*
880
+ * Read and resample into the various overview images.
881
+ */
882
+
883
+ TIFF_ProcessFullResBlock( hTIFF, nPlanarConfig,
884
+ bSubsampled,nHorSubsampling,nVerSubsampling,
885
+ nOverviews, panOvList,
886
+ nBitsPerPixel, nSamples, papoRawBIs,
887
+ nSXOff, nSYOff, pabySrcTile,
888
+ nBlockXSize, nBlockYSize,
889
+ nSampleFormat, pszResampleMethod );
890
+ }
891
+ }
892
+
893
+ _TIFFfree( pabySrcTile );
894
+
895
+ /* -------------------------------------------------------------------- */
896
+ /* Cleanup the rawblockedimage files. */
897
+ /* -------------------------------------------------------------------- */
898
+ for( i = 0; i < nOverviews; i++ )
899
+ {
900
+ TIFFDestroyOvrCache( papoRawBIs[i] );
901
+ }
902
+
903
+ if( papoRawBIs != NULL )
904
+ _TIFFfree( papoRawBIs );
905
+
906
+ TIFFSetWarningHandler( pfnWarning );
907
+ }
908
+
909
+
910
+ /*
911
+ * Local Variables:
912
+ * mode: c
913
+ * c-basic-offset: 4
914
+ * fill-column: 78
915
+ * End:
916
+ */