mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 18:10:56 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			209 lines
		
	
	
	
		
			7.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			209 lines
		
	
	
	
		
			7.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #compdef -P (tiff*|*2tiff|pal2rgb)
 | |
| 
 | |
| local pat expl ret=1
 | |
| 
 | |
| if [[ "$service" = *2tiff ]]; then
 | |
|   pat="*.(#i)${service}(-.)"
 | |
| else
 | |
|   pat='*.(#i)tiff(-.)'
 | |
| fi
 | |
| 
 | |
| if [[ $# -ne 0 || $+_in_tiff -ne 0 ]]; then
 | |
|   if (( ! $# )); then
 | |
|     _description files expl 'picture file'
 | |
|     set -- "$expl[@]"
 | |
|   fi
 | |
|   _wanted files expl 'picture file' _path_files "$@" -g "$pat" - ||
 | |
|       _files "$@" "$expl[@]" -g '*.(#i)tiff(-.)'
 | |
|   return
 | |
| fi
 | |
| 
 | |
| local _in_tiff=yes
 | |
| 
 | |
| local curcontext="$curcontext" state line ret=1
 | |
| typeset -A opt_args
 | |
| 
 | |
| case "$service" in
 | |
| tiff2bw)
 | |
|   _arguments -C \
 | |
|     '-c[specify compression scheme]:compression scheme:->compress' \
 | |
|     '-r[specify rows per strip]:rows per strip' \
 | |
|     '-R[specify percentage of red channel]:percentage of red channel' \
 | |
|     '-G[specify percentage of green channel]:percentage of green channel' \
 | |
|     '-B[specify percentage of blue channel]:percentage of blue channel' \
 | |
|     ':input file:_files -g "*.(#i)tif(|f)(-.)"' \
 | |
|     ':output file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
 | |
|   ;;
 | |
| tiff2ps)
 | |
|   _arguments \
 | |
|     '-1[generate PostScript Level I output]' \
 | |
|     '-2[generate PostScript Level II output]' \
 | |
|     '-a[generate output for all IFDs]' \
 | |
|     '-d[set initial TIFF directory]:initial TIFF directory' \
 | |
|     '(-p)-e[generate Encapsulated PostScript]' \
 | |
|     '-o[set initial TIFF directory (file offset)]:file offset' \
 | |
|     '(-e)-p[generate non-Encapsulated PostScript]' \
 | |
|     '-h[set page height]:page height' \
 | |
|     '-w[set page width]:page width' \
 | |
|     '-8[disable use of ASCII85 encoding]' \
 | |
|     '-D[print two pages per sheet]' \
 | |
|     '-O[specify output file]:output file:_files -g "*.(#i)ps(-.)"' \
 | |
|     '-s[generate output for a single image]' \
 | |
|     '-T[print pages for top edge binding]' \
 | |
|     '*:input TIFF file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
 | |
|   ;;
 | |
| tiffcmp)
 | |
|   _arguments \
 | |
|     '-l[list all differing bytes]' \
 | |
|     '-t[ignore differences in directories]' \
 | |
|     ':first input TIFF file:_files -g "*.(#i)tif(|f)(-.)"' \
 | |
|     ':second input TIFF file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
 | |
|   ;;
 | |
| tiffcp)
 | |
|   _arguments -C \
 | |
|     '-B[write output in bin-endian byte order]' \
 | |
|     '-c[specify compression scheme]:compression scheme:->compress' \
 | |
|     '-o[set initial TIFF directory (file offset)]:file offset' \
 | |
|     '-p[set sample packing]:sample packing:(contig separate)' \
 | |
|     '(-t)-s[write output in strips]' \
 | |
|     '(-s)-t[write output in tiles]' \
 | |
|     '-i[ignore read errors]' \
 | |
|     '-r[specify rows per strip]:rows per strip' \
 | |
|     '-w[specify output tile width]:output tile width' \
 | |
|     '-l[specify output tile length]:output tile length' \
 | |
|     '-f[specify fill order]:fill order:(lsb2msb msb2lsb)' \
 | |
|     '*:input TIFF file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
 | |
|   ;;
 | |
| tiffdither)
 | |
|   _arguments -C \
 | |
|     '-c[specify compression scheme]:compression scheme:->compress' \
 | |
|     '-f[specify fill order]:fill order:(lsb2msb msb2lsb)' \
 | |
|     '-r[specify rows per strip]:rows per strip' \
 | |
|     '-t[set threshold for dithering]:dither threshold value' \
 | |
|     ':input file:_files -g "*.(#i)tif(|f)(-.)"' \
 | |
|     ':output file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
 | |
|   ;;
 | |
| tiffdump)
 | |
|   _arguments \
 | |
|     '-o[set initial TIFF directory (file offset)]:file offset:' \
 | |
|     '-h[print numbers in hexadecimal]' \
 | |
|     '*:input TIFF file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
 | |
|   ;;
 | |
| tiffinfo)
 | |
|   _arguments \
 | |
|     '-c[display colormap and color/gray response curves]' \
 | |
|     '-D[read and decompress data]' \
 | |
|     '-d[print decompressed data]' \
 | |
|     '-j[display JPEG-related tags]' \
 | |
|     '-o[set initial TIFF directory (file offset)]:file offset' \
 | |
|     '-s[display offsets and byte counts for all data strips]' \
 | |
|     '-i[ignore read errors]' \
 | |
|     '-f[force fill order]:fill order:(lsb2msb msb2lsb)' \
 | |
|     '-w[display raw data in words]' \
 | |
|     '*:input TIFF file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
 | |
|   ;;
 | |
| tiffmedian)
 | |
|   _arguments -C \
 | |
|     '-r[specify rows per strip]:rows per strip' \
 | |
|     '-C[specify number of colormap entries]:number of colormap entries' \
 | |
|     '-c[specify compression scheme]:compression scheme:->compress' \
 | |
|     '-f[use Floyd-Steinberg dithering]' \
 | |
|     ':input file:_files -g "*.(#i)tif(|f)(-.)"' \
 | |
|     ':output file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
 | |
|   ;;
 | |
| tiffsplit)
 | |
|   _arguments \
 | |
|     ':input file:_files -g "*.(#i)tif(|f)(-.)"' \
 | |
|     ':output file prefix' && ret=0
 | |
|   ;;
 | |
| fax2tiff)
 | |
|   _arguments \
 | |
|     '(-1 -4)-2[input is Group 3, 2d encoded]' \
 | |
|     '(-2 -4)-1[input is Group 3, 1d encoded]' \
 | |
|     '(-1 -2)-4[input is Group 4 encoded]' \
 | |
|     '(-W)-B[0 in input is black]' \
 | |
|     '(-B)-W[0 in input is white]' \
 | |
|     '(-M)-L[input is lsb-to-msb]' \
 | |
|     '(-L)-M[input is msb-to-lsb]' \
 | |
|     '-R[specify resolution]:resolution (lines per inch)' \
 | |
|     '-o[specify output file]:output file:_files -g "*.(#i)tif(|f)(-.)"' \
 | |
|     '(-f)-c[generate `classic'"'"' TIFF format]' \
 | |
|     '(-c)-f[generate TIFF Class F format]' \
 | |
|     '-m[output in msb-to-lsb order]' \
 | |
|     "-p[don't align EOL codes]" \
 | |
|     '-s[duplicate all rows]' \
 | |
|     '-v[verbose mode]' \
 | |
|     ':FAX input file:_files -g "*.(#i)(g[34]|fax)(-.)"' && ret=0
 | |
|   ;;
 | |
| gif2tiff)
 | |
|   _arguments -C \
 | |
|     '-r[specify rows per strip]:rows per strip' \
 | |
|     '-c[specify compression scheme]:compression scheme:->compress' \
 | |
|     ':input GIF file:_files -g "*.(#i)gif(-.)"' \
 | |
|     ':output file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
 | |
|   ;;
 | |
| ppm2tiff)
 | |
|   _arguments -C \
 | |
|     '-r[specify rows per strip]:rows per strip' \
 | |
|     '-c[specify compression scheme]:compression scheme:->compress' \
 | |
|     '-R[specify resolution]:resolution:' \
 | |
|     ':input GIF file:_files -g "*.(#i)ppm(-.)"' \
 | |
|     ':output file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
 | |
|   ;;
 | |
| ras2tiff)
 | |
|   _arguments -C \
 | |
|     '-r[specify rows per strip]:rows per strip' \
 | |
|     '-c[specify compression scheme]:compression scheme:->compress' \
 | |
|     ':input raster image file:_files -g "*.(#i)ras(|t)(-.)"' \
 | |
|     ':output file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
 | |
|   ;;
 | |
| pal2rgb)
 | |
|   _arguments -C \
 | |
|     '-C[specify number of bits for colormap entries]:bits for colormap entries:(8 16)' \
 | |
|     '-p[set sample packing]:sample packing:(contig separate)' \
 | |
|     '-c[specify compression scheme]:compression scheme:->compress' \
 | |
|     '-r[specify rows per strip]:rows per strip' \
 | |
|     ':input file:_files -g "*.(#i)tif(|f)(-.)"' \
 | |
|     ':output file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
 | |
|   ;;
 | |
| *)
 | |
|   _description files expl 'picture file'
 | |
|   _files "$expl[@]" -g "$pat" && ret=0
 | |
| esac
 | |
| 
 | |
| if [[ -n "$state" ]]; then
 | |
|   if [[ "$PREFIX" = *:* ]]; then
 | |
|     local scheme="${PREFIX%%:*}"
 | |
| 
 | |
|     compset -P 1 '*:'
 | |
| 
 | |
|     case "$scheme" in
 | |
|     g3)
 | |
|       _values -s : 'FAX Group 3 options' \
 | |
|         '(2d)1d[use 1D-encoding]' \
 | |
|         '(1d)2d[use 2D-encoding]' \
 | |
| 	'fill[byte-align EOL codes]' && ret=0
 | |
|       ;;
 | |
|     jpeg)
 | |
|       _message -e values "compression quality (0-100), or \`r' (output RGB)"
 | |
|       ret=0
 | |
|       ;;
 | |
|     lzw|zip)
 | |
|       _values 'LZW and deflate options' \
 | |
|         '1[without differencing]' \
 | |
|         '2[with differencing]' && ret=0
 | |
|       ;;
 | |
|     esac
 | |
|   else
 | |
|     _tags values
 | |
|     while _tags; do
 | |
|       while _next_label values expl 'compression scheme'; do
 | |
|         compadd "$expl[@]" - none g4 packbits && ret=0
 | |
|         compadd "$expl[@]" -qS: - lzw zip jpeg g3 && ret=0
 | |
|       done
 | |
|       (( ret )) || return 0
 | |
|     done
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| return ret
 |