Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
TIFFCROP(1)							   TIFFCROP(1)

       tiffcrop	 - select, copy, crop, convert,	extract, and/or	process	one or
       more TIFF files.

       tiffcrop	[ options ] src1.tif ... srcN.tif dst.tif

       Tiffcrop	processes one or more files created according to the Tag Image
       File Format, Revision 6.0, specification	into one or more TIFF file(s).
       Tiffcrop	is most	often used to extract portions of an  image  for  pro-
       cessing	with  bar  code	 recognizer or OCR software when that software
       cannot restrict the region of interest to a specific portion of the im-
       age  or	to improve efficiency when the regions of interest must	be ro-
       tated.  It can also be used to subdivide	all or part of a processed im-
       age  into  smaller sections and export individual images	or sections of
       images as separate files	or separate images within one  or  more	 files
       derived from the	original input image or	images.

       The available functions can be grouped broadly into three classes:

	      Those  that  select individual images or sections	of images from
	      the input	files.	The options -N for sequences or	lists of indi-
	      vidual  images in	the input files, -Z for	zones, -z for regions,
	      -X and -Y	for fixed sized	selections, -m	for  margins,  -U  for
	      units,  and  -E  for edge	reference provide a variety of ways to
	      specify portions of the input image.

	      Those that allow the individual images or	selections to  be  ex-
	      ported  to  one  or more output files in different groupings and
	      control the organization of the data in the output  images.  The
	      options  -P for page size	grouping, -S for subdivision into col-
	      umns and rows and	-e for export mode options that	produce	one or
	      more  files  from	 each  input image. The	options	-r, -s,	-t, -w
	      control strip and	tile format and	sizes while -B -L -c -f	modify
	      the  endian  addressing scheme, the compression options, and the
	      bit fill sequence	of images as they are written.

	      Those that perform some action on	each image  that  is  selected
	      from  the	input file.  The options include -R for	rotate,	-I for
	      inversion	of the photometric interpretation and/or data  values,
	      and -F to	flip (mirror) the image	horizontally or	vertically.

       Functions  are  applied	to  the	input image(s) in the following	order:
       cropping, fixed area extraction,	zone and region	extraction, inversion,
       mirroring, rotation.

       Functions  are  applied	to the output image(s) in the following	order:
       export mode options for grouping	zones, regions,	or images into one  or
       more  files,  or	 row and column	divisions with output margins, or page
       size divisions with page	orientation options.

       Finally,	strip, tile, byte order, output	 resolution,  and  compression
       options are applied to all output images.

       The  output  file(s)  may be organized and compressed using a different
       algorithm from the input	files.	By default, tiffcrop will copy all the
       understood  tags	in a TIFF directory of an input	file to	the associated
       directory in the	output file.  Options can be used to force the	resul-
       tant image to be	written	as strips or tiles of data, respectively.

       Tiffcrop	 can be	used to	reorganize the storage characteristics of data
       in a file, and to reorganize, extract, rotate,  and  otherwise  process
       the  image  data	 as specified at the same time whereas tiffcp does not
       alter the image data within the file.

       Using the options for selecting individual input	images and the options
       for  exporting  images  and/or  segments	defined	as zones or regions of
       each input image, tiffcrop can perform  the  functions  of  tiffcp  and
       tiffsplit  in a single pass while applying multiple operations to indi-
       vidual selections or images.

       -h     Display the syntax summary for tiffcrop.

       -v     Report the  current  version  and	 last  modification  date  for

       -N odd|even|#,#-#,#|last
	      Specify  one  or	more  series or	range(s) of images within each
	      file to process.	The words odd or even may be used  to  specify
	      all  odd	or  even numbered images counting from one.  Note that
	      internally, TIFF images are numbered from	zero rather  than  one
	      but since	this convention	is not obvious to most users, tiffcrop
	      used 1 to	specify	the first image	in a multipage file.  The word
	      last  may	 be used in place of a number in the sequence to indi-
	      cate the final image in the file without knowing how many	images
	      there  are.   Ranges  of images may be specified with a dash and
	      multiple sets can	be indicated by	joining	them in	a  comma-sepa-
	      rated  list.  eg.	 use  -N  1,5-7,last  to  process the 1st, 5th
	      through 7th, and final image in the file.

       -E top|bottom|left|right
	      Specify the top, bottom, left, or	right edge  as	the  reference
	      from  which to calculate the width and length of crop regions or
	      sequence of positions for	zones. When used with  the  -e	option
	      for  exporting  zones  or	regions, the reference edge determines
	      how composite images are arranged. Using -E left or right	causes
	      successive  zones	 or  regions to	be merged horizontally whereas
	      using -E top or bottom causes successive zones or	regions	to  be
	      arranged	vertically. This option	has no effect on export	layout
	      when multiple zones or regions are not being exported to compos-
	      ite images. Edges	may be abbreviated to the first	letter.

       -e combined|divided|image|multiple|separate
	      Specify the export mode for images and selections	from input im-
	      ages.  The final filename	on the command line is	considered  to
	      be  the destination file or filename stem	for automatically gen-
	      erated sequences of files. Modes may be abbreviated to the first

	      combined	  All  images  and  selections are written to a	single
	      file with	multiple selections from one  image  combined  into  a
	      single image (default)

	      divided	  All  images  and  selections are written to a	single
	      file with	each selection from one	image written to a new image

	      image	 Each input image is written to	a  new	file  (numeric
	      filename	sequence) with multiple	selections from	the image com-
	      bined into one image

	      multiple	 Each input image is written to	a  new	file  (numeric
	      filename sequence) with each selection from the image written to
	      a	new image

	      separate	 Individual selections from each image are written  to
	      separate files

       -U in|cm|px
	      Specify the type of units	to apply to dimensions for margins and
	      crop regions for input and output	images.	Inches or  centimeters
	      are  converted  to pixels	using the resolution unit specified in
	      the TIFF file (which defaults to inches if not specified in  the

       -m #,#,#,#
	      Specify  margins	to  be removed from the	input image. The order
	      must be top, left, bottom, right with only commas	separating the
	      elements	of  the	list. Margins are scaled according to the cur-
	      rent units and removed before any	 other	extractions  are  com-

       -X #   Set  the	horizontal  (X-axis)  dimension	of a region to extract
	      relative to the specified	origin reference. If the origin	is the
	      top or bottom edge, the X	axis value will	be assumed to start at
	      the left edge.

       -Y #   Set the vertical (Y-axis)	dimension of a region to extract rela-
	      tive  to	the  specified	origin reference. If the origin	is the
	      left or right edge, the Y	axis value will	be assumed to start at
	      the top.

       -Z #:#,#:#
	      Specify  zones  of the image designated as position X of Y equal
	      sized portions measured from the reference edge,	eg  1:3	 would
	      be first third of	the image starting from	the reference edge mi-
	      nus any margins specified	 for  the  confining  edges.  Multiple
	      zones  can  be specified as a comma separated list but they must
	      reference	the same edge. To extract the top quarter and the bot-
	      tom third	of an image you	would use -Z 1:4,3:3.

       -z x1,y1,x2,y2: ... :xN,yN,xN+1,yN+1
	      Specify a	series of coordinates to define	regions	for processing
	      and exporting.  The coordinates represent	the top	left and lower
	      right  corners of	each region in the current units, eg inch, cm,
	      or pixels. Pixels	are counted from one to	width  or  height  and
	      inches or	cm are calculated from image resolution	data.

	      Each  colon delimited series of four values represents the hori-
	      zontal and vertical offsets from the top and left	edges  of  the
	      image,  regardless of the	edge specified with the	-E option. The
	      first and	third values represent the horizontal offsets  of  the
	      corner  points  from  the	 left edge while the second and	fourth
	      values represent the vertical offsets from the top edge.

       -F horiz|vert
	      Flip, ie mirror, the image or extracted region  horizontally  or

       -R 90|180|270
	      Rotate  the  image  or  extracted	region 90, 180,	or 270 degrees

       -I [black|white|data|both]
	      Invert color space, eg dark to light for bilevel	and  grayscale
	      images.	This can be used to modify negative images to positive
	      or to correct images that	have the PHOTOMETRIC_INTERPRETATIN tag
	      set  incorrectly.	 If the	value is black or white, the PHOTOMET-
	      RIC_INTERPRETATION tag is	set to MinIsBlack or MinIsWhite, with-
	      out  altering  the  image	data. If the argument is data or both,
	      the data values of the image are modified. Specifying  both  in-
	      verts  the  data and the PHOTOMETRIC_INTERPRETATION tag, whereas
	      using data inverts the data but not the  PHOTOMETRIC_INTERPRETA-
	      TION tag.	 No support for	modifying the color space of color im-
	      ages in this release.

       -H #   Set the horizontal resolution of output images to	# expressed in
	      the current units.

       -V #   Set  the vertical	resolution of the output images	to # expressed
	      in the current units.

       -J #   Set the horizontal margin	of an output page size to #  expressed
	      in  the  current units when sectioning image into	columns	x rows
	      subimages	using the -S cols:rows option.

       -K #   Set the vertical margin of an output page	size to	# expressed in
	      the current units	when sectioning	image into columns x rows sub-
	      miages using the -S cols:rows option.

       -O portrait|landscape|auto
	      Set the output orientation of the	pages or sections.  Auto  will
	      use the arrangement that requires	the fewest pages.  This	option
	      is only meaningful in conjunction	with the -P option  to	format
	      an image to fit on a specific paper size.

       -P page
	      Format  the output images	to fit on page size paper. Use -P list
	      to show the supported page sizes and dimensions.	You can	define
	      a	 custom	page size by entering the width	and length of the page
	      in the current units with	the following format #.#x#.#.

       -S cols:rows
	      Divide each image	into cols across and rows down equal sections.

       -B     Force output to be written with Big-Endian byte order.  This op-
	      tion only	has an effect when the output file is created or over-
	      written and not when it is appended to.

       -C     Suppress the use of ``strip chopping'' when reading images  that
	      have a single strip/tile of uncompressed data.

       -c     Specify  the  compression	 to use	for data written to the	output
	      file: none for no	compression, packbits  for  PackBits  compres-
	      sion,  lzw for Lempel-Ziv	& Welch	compression, jpeg for baseline
	      JPEG compression.	 zip for Deflate  compression,	g3  for	 CCITT
	      Group  3	(T.4) compression, and g4 for CCITT Group 4 (T.6) com-
	      pression.	 By default tiffcrop will compress data	 according  to
	      the value	of the Compression tag found in	the source file.

	      The CCITT	Group 3	and Group 4 compression	algorithms can only be
	      used with	bilevel	data.

	      Group 3 compression  can	be  specified  together	 with  several
	      T.4-specific  options:  1d  for  1-dimensional  encoding,	2d for
	      2-dimensional encoding, and fill to force	each encoded  scanline
	      to  be  zero-filled  so  that the	terminating EOL	code lies on a
	      byte boundary.  Group 3-specific options are  specified  by  ap-
	      pending  a  ``:''-separated  list	to the ``g3'' option; e.g.  -c
	      g3:2d:fill to get	2D-encoded data	with byte-aligned EOL codes.

	      LZW compression can  be  specified  together  with  a  predictor
	      value.   A predictor value of 2 causes each scanline of the out-
	      put image	to undergo horizontal differencing before  it  is  en-
	      coded;  a	 value of 1 forces each	scanline to be encoded without
	      differencing.  LZW-specific options are specified	by appending a
	      ``:''-separated  list  to	the ``lzw'' option; e.g.  -c lzw:2 for
	      LZW compression with horizontal differencing.

       -f     Specify the bit fill order to use	in writing  output  data.   By
	      default,	tiffcrop will create a new file	with the same fill or-
	      der as the original.  Specifying -f lsb2msb will force  data  to
	      be  written  with	 the  FillOrder	 tag  set to LSB2MSB, while -f
	      msb2lsb will force data to be written with the FillOrder tag set
	      to MSB2LSB.

       -i     Ignore  non-fatal	read errors and	continue processing of the in-
	      put file.

       -k size
	      Set maximum memory allocation size  (in  MiB).  The  default  is
	      256MiB.  Set to 0	to disable the limit.

       -l     Specify  the length of a tile (in	pixels).  Tiffcrop attempts to
	      set the tile dimensions so that no more than 8 kilobytes of data
	      appear in	a tile.

       -L     Force  output to be written with Little-Endian byte order.  This
	      option only has an effect	when the output	 file  is  created  or
	      overwritten and not when it is appended to.

       -M     Suppress the use of memory-mapped	files when reading images.

       -p     Specify  the  planar  configuration to use in writing image data
	      that has more than one sample per	pixel.	By  default,  tiffcrop
	      will create a new	file with the same planar configuration	as the
	      original.	 Specifying -p contig will force data  to  be  written
	      with  multi-sample  data packed together,	while -p separate will
	      force samples to be written in separate planes.

       -r     Specify the number of rows (scanlines) in	 each  strip  of  data
	      written  to  the	output	file.	By default (or when value 0 is
	      specified), tiffcrop attempts to set the rows/strip that no more
	      than  8  kilobytes of data appear	in a strip. If you specify the
	      special value -1 it will results in infinite number of the  rows
	      per strip. The entire image will be the one strip	in that	case.

       -s     Force  the  output  file	to  be	written	with data organized in
	      strips (rather than tiles).

       -t     Force the	output file to be written with data organized in tiles
	      (rather than strips).

       -w     Specify  the  width of a tile (in	pixels).  tiffcrop attempts to
	      set the tile dimensions so that no more than 8 kilobytes of data
	      appear  in a tile.  tiffcrop attempts to set the tile dimensions
	      so that no more than 8 kilobytes of data appear in a tile.

       Debug and dump facility
	      -D opt1:value1,opt2:value2,opt3:value3:opt4:value4 Display  pro-
	      gram  progress  and/or dump raw data to non-TIFF files.  Options
	      include the following and	must be	joined as  a  comma  separated
	      list. The	use of this option is generally	limited	to program de-
	      bugging and development of future	options. An equal sign may  be
	      substituted for the colon	in option:value	pairs.

	      debug:N	       Display	limited	 program  progress  indicators
	      where larger N increase the level	of detail.

	      format:txt|raw  Format any logged	data as	ASCII text or raw  bi-
	      nary values. ASCII text dumps include strings of ones and	zeroes
	      representing the binary values in	the image data plus  identify-
	      ing headers.

	      level:N	       Specify	the  level  of detail presented	in the
	      dump files.  This	can vary from dumps of	the  entire  input  or
	      output  image  data to dumps of data processed by	specific func-
	      tions. Current range of levels is	1 to 3.



	      When dump	files are being	written, each image will be written to
	      a	separate file with the name built by adding a numeric sequence
	      value to the dumpname and	an extension of	.txt for  ASCII	 dumps
	      or .bin for binary dumps.

	      The  four	 debug/dump  options  are independent, though it makes
	      little sense to specify a	dump file without specifying a	detail

	      Note:  Tiffcrop may be compiled with -DDEVELMODE to enable addi-
	      tional very
	       low level debug reporting.

       The following concatenates two files and	writes the  result  using  LZW
	      tiffcrop -c lzw a.tif b.tif result.tif

       To  convert  a  G3 1d-encoded TIFF to a single strip of G4-encoded data
       the following might be used:
	      tiffcrop -c g4 -r	10000 g3.tif g4.tif
       (1000 is	just a number that is larger than the number of	 rows  in  the
       source file.)

       To  extract  a  selected	set of images from a multi-image TIFF file use
       the -N option described above. Thus, to copy the	1st and	3rd images  of
       image file "album.tif" to "result.tif":
	      tiffcrop -N 1,3 album.tif	result.tif

       Invert a	bilevel	image scan of a	microfilmed document and crop off mar-
       gins of 0.25 inches on the left and right, 0.5 inch  on	the  top,  and
       0.75  inch  on the bottom. From the remaining portion of	the image, se-
       lect the	second and third quarters, ie, one half	of the area left  from
       the center to each margin.
	      tiffcrop	-U in -m 0.5,0.25,0.75,0.25 -E left -Z 2:4,3:4 -I both
	      MicrofilmNegative.tif MicrofilmPostiveCenter.tif

       Extract only the	final image of a large Architectural E sized multipage
       TIFF  file  and	rotate	it 90 degrees clockwise	while reformatting the
       output to fit on	tabloid	sized sheets with one quarter of  an  inch  on
       each side:
	      tiffcrop	-N last	-R 90 -O auto -P tabloid -U in -J 0.25 -K 0.25
	      -H 300 -V	300 Big-PlatMap.tif BigPlatMap-Tabloid.tif
       The output images will have a specified resolution of 300 dpi  in  both
       directions.  The	 orientation of	each page will be determined by	which-
       ever choice requires the	fewest pages. To specify a  specific  orienta-
       tion,  use the portrait or landscape option. The	paper size option does
       not resample the	image. It breaks each original image into a series  of
       smaller	images that will fit on	the target paper size at the specified

       Extract two regions 2048	pixels wide by 2048 pixels high	from each page
       of  a  multi-page input file and	write each region to a separate	output
	      tiffcrop -U px  -z  1,1,2048,2048:1,2049,2048,4097  -e  separate
	      CheckScans.tiff Check
       The  output  file  names	 will use the stem Check with a	numeric	suffix
       which is	incremented for	each region of each image, eg  Check-001.tiff,
       Check-002.tiff  ...   Check-NNN.tiff. To	produce	a unique file for each
       page of the input image with one	new image for each region of the input
       image on	that page, change the export option to -e multiple.

       In general, bilevel, grayscale, palette and RGB(A) data with bit	depths
       from 1 to 32 bits should	work in	both interleaved  and  separate	 plane
       formats.	 Unlike	 tiffcp, tiffcrop can read and write tiled images with
       bits per	sample that are	not a multiple of 8 in	both  interleaved  and
       separate	 planar	format.	Floating point data types are supported	at bit
       depts of	16, 24,	32 and 64 bits per sample.

       Not all images can be converted from one	compression scheme to another.
       Data  with  some	photometric interpretations and/or bit depths are tied
       to specific compression schemes and vice-versa, e.g. Group 3/4 compres-
       sion  is	 only usable for bilevel data. JPEG compression	is only	usable
       on 8 bit	per sample data	(or 12 bit if LibTIFF was compiled with	12 bit
       JPEG  support).	Support	 for OJPEG compressed images is	problematic at
       best. Since OJPEG compression is	no longer supported for	writing	images
       with  LibTIFF,  these images will be updated to the newer JPEG compres-
       sion when they are copied or processed. This may	cause the image	to ap-
       pear color shifted or distorted after conversion.  In some cases, it is
       possible	to remove the original compression from	image data  using  the
       option -cnone.

       Tiffcrop	does not currently provide options to up or downsample data to
       different bit depths or convert data from one  photometric  interpreta-
       tion to another,	e.g. 16	bits per sample	to 8 bits per sample or	RGB to

       Tiffcrop	is very	loosely	derived	from code  in  tiffcp  with  extensive
       modifications  and  additions  to support the selection of input	images
       and regions and the exporting of	them to	one or more  output  files  in
       various groupings. The image manipulation routines are entirely new and
       additional ones may be added in the future. It will handle tiled	images
       with bit	depths that are	not a multiple of eight	that tiffcp may	refuse
       to read.

       Tiffcrop	was designed to	handle large files  containing	many  moderate
       sized images with memory	usage that is independent of the number	of im-
       ages in the file.  In order to support compression modes	that  are  not
       based  on individual scanlines, e.g. JPEG, it now reads images by strip
       or tile rather than by individual scanlines. In addition	to the	memory
       required	by the input and output	buffers	associated with	LibTIFF	one or
       more buffers at least as	large as the largest image to be read are  re-
       quired.	The  design  favors large volume document processing uses over
       scientific or graphical manipulation of	large  datasets	 as  might  be
       found in	research or remote sensing scenarios.

       pal2rgb(1),  tiffinfo(1),  tiffcmp(1), tiffcp(1), tiffmedian(1),	tiffs-
       plit(1),	libtiff(3TIFF)

       Libtiff library home page:

libtiff				December, 2008			   TIFFCROP(1)


Want to link to this manual page? Use this URL:

home | help