home *** CD-ROM | disk | FTP | other *** search
- Xref: sparky comp.lang.postscript:5556 rec.photo:19904
- Newsgroups: comp.lang.postscript,rec.photo
- Path: sparky!uunet!charon.amdahl.com!pacbell.com!sgiblab!zaphod.mps.ohio-state.edu!rpi!newsserver.pixel.kodak.com!kodak!sunshine!thomas
- From: thomas@sunshine.Kodak.COM (Thomas Kinsman)
- Subject: EXPOSURE RECORD SHEET (PHOTOGRAPHY)
- Message-ID: <1992Nov16.214427.12439@kodak.kodak.com>
- Keywords: Photography, PostScript
- Sender: news@kodak.kodak.com
- Organization: Eastman Kodak Co., Rochester, NY
- Distribution: usa
- Date: Mon, 16 Nov 92 21:44:27 GMT
- Lines: 200
-
- %!PS
- % This PostScript program, while not nearly as complicated or as interesting
- % as the stuff my brother cranks out, will produce a pretty chart which is
- % used to record pictures when bracketting exposures. So, if you aren't sure
- % exactly which F-Stop to use, you try several, and write them down. It is
- % also used for recording the subject of each photograph, in case you forget
- % who or what you have taken a picture of. (Can you find the hawk in this
- % picture?... I think it's THAT speck over there...)
- %
- % Any other ideas on how this could be improved?
- %
- % Source code written by Thomas B. Kinsman., thomask@kodak.com
- % Purpose: Make table of for recording exposures and subjects.
- % Headings, as strings:
- /str_head1 [ (PHOTO) (SHUTTER) (F) (SUBJECT) ] def
- /str_head2 [ (No.) (SPEED) (STOP) (DESCRIPTION) ] def
- /PhotosPerRoll 38 def
-
- % EVERYTHING FROM HERE DOWN SHOULD BE AUTOMATIC
- %
- % Procedure to convert points to inches.
- %
- /inch { 72 mul } def
- %
- % Global settings:
- %
- %/FontName /Helvetica def % font name for procedure names.
- %/FontName /Helvetica-Bold def % font name for procedure names.
- /FontName /Times-Bold def % font name for procedure names.
- /SmFontSize 12 def % size for tape description.
- /FontSize 18 def % size used for FontName.
- /Leading 2 def % space between lines.
-
- /ResetFont { FontName findfont FontSize scalefont setfont } def
- /SetFontSize { /FontSize exch def ResetFont } def
- /SideMargin 0.375 inch def % space bet. left and text.
- /LM SideMargin def % space from left edge to start of text.
- /RM 8.5 inch SideMargin sub def % RIGHT MARGIN
- /TM 10.5 inch def % TOP MARGIN
- /BM 0.5 inch def
-
-
- %
- % Procedure to go to next line.
- %
- /nl % Newline
- {
- currentpoint exch pop % Get current height from
- % bottom of page.
- FontSize Leading add sub % compute next line height.
- LM exch % SideMargin will be X location.
- moveto
- } def
-
-
- % upline
- /ul % Used when printing stack
- {
- currentpoint exch pop % Get current height from
- % bottom of page.
- FontSize Leading add add % compute next line height.
- LM exch % LeftSize will be X location.
- moveto
- } def
-
-
- /num_headings str_head1 length def
- /heading_widths num_headings array def
- /heading_starts num_headings 1 add array def
-
-
- /set_widths
- {
- 0 1 num_headings 1 sub % set all widths of columns
- {
- dup dup %stack: index index index
- str_head1 exch get %stack: index index str_head1[index]
-
- stringwidth pop ( ) stringwidth pop add %stack: index index width1
-
- exch %stack: index width1 index
- str_head2 exch get %stack: index width1 str_head2[index]
- stringwidth pop ( ) stringwidth pop add %stack: index width1 width2
-
- % ul
- % (stack_check ) show ul
- % (w2 = ) show 20 string cvs show ul % debugging
- % (w1 = ) show 20 string cvs show ul % debugging
- %
- dup %stack: index width1 width2 width2
- 3 -1 roll %stack: index width2 width2 width1
- dup %stack: index width2 width2 width1 width1
-
- 3 1 roll %stack: index width2 width1 width2 width1
-
- lt
- {
- exch
- } if %stack: index maxwidth minwidth
- pop %stack: index maxwidth
-
- heading_widths %stack: index maxwidth array
- 3 1 roll %stack: array index maxwidth
- put
- } for
-
- /totalwidth LM def
- 0 1 num_headings 1 sub % set all widths of columns
- {
- dup %stack: index index
-
- heading_starts exch totalwidth put %stack: index
- heading_widths exch get %stack: heading_widths[index]
- totalwidth add /totalwidth exch def
- } for
- heading_starts num_headings totalwidth put %last starting row location.
-
- } def
-
-
- /show_heading
- {
- /head_array exch def
-
- 0 1 num_headings 1 sub
- {
- dup heading_starts exch get %stack: index heading_starts[index]
- currentpoint exch pop moveto
- head_array exch get show
- } for
- } def
-
-
- /show_columns
- {
- currentpoint
- newpath
- 0 1 num_headings 1 sub
- {
- heading_starts exch get ( ) stringwidth pop sub dup
- TM moveto
- BM lineto
- } for
- RM TM moveto
- RM BM lineto
- stroke
- moveto
- } def
-
- /show_rows
- {
- /Currenty currentpoint exch pop def
- /LineHeight Currenty BM sub PhotosPerRoll 1 sub div def
- /LeftSide heading_starts 0 get ( ) stringwidth pop sub def
- /RightSide RM def
-
- % First line first...
- newpath
- LeftSide Currenty LineHeight add moveto
- RightSide Currenty LineHeight add lineto
- % Top Line
- LeftSide TM moveto
- RightSide TM lineto
- stroke
-
- 1 1 PhotosPerRoll
- {
- newpath
- LeftSide Currenty moveto
- RightSide Currenty lineto
- stroke
-
- 10 string cvs %stack: (frame_number)
- heading_starts 0 get Currenty Leading add moveto
- show
-
- Currenty LineHeight sub /Currenty exch def
- } for
- } def
-
-
- erasepage
- ResetFont
- set_widths
-
- LM TM moveto nl
- str_head1 show_heading nl
- str_head2 show_heading nl
- show_columns
- show_rows
-
- /Helvetica-Bold findfont 8 scalefont setfont
- /AuthorString (11/16/92 T. B. Kinsman) def
- RM AuthorString stringwidth pop sub BM 12 sub moveto
- AuthorString show
-
- showpage
- --
- thomas@acadia.kodak.com Voice: 716/477-2831(w) Fax: 716/722-0160
- Thomas B. Kinsman, Eastman Kodak Co., Flr 3, Bldg 65, RL, Roch., NY 14650-1816
-