From 616166b6e9bac0b3280ae246353d1ec60b457039 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Wed, 31 Aug 2022 16:26:18 -0400 Subject: [PATCH] Build the handbook. Missing zinemaker step, but will later work out a bash script that builds the pages and automatically stitches a pdf for printing. --- .gitignore | 3 +- NOTES_ON_OPTICAL_PRINTER_TECHNIQUE.md | 7 + build_handbook.sh | 3 + compile_handbook.sh | 50 ++++- pdf/NOTES_ON_OPTICAL_PRINTER_TECHNIQUE.pdf | Bin 659140 -> 659139 bytes tmpl/handbook_index.html | 241 +++++++++++++++++++++ tmpl/layout.html.tmpl | 43 +++- 7 files changed, 342 insertions(+), 5 deletions(-) create mode 100644 build_handbook.sh create mode 100644 tmpl/handbook_index.html diff --git a/.gitignore b/.gitignore index f322dfc..5863a25 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -handbook \ No newline at end of file +handbook +pdf/*handbook* \ No newline at end of file diff --git a/NOTES_ON_OPTICAL_PRINTER_TECHNIQUE.md b/NOTES_ON_OPTICAL_PRINTER_TECHNIQUE.md index c4c3d55..5095997 100644 --- a/NOTES_ON_OPTICAL_PRINTER_TECHNIQUE.md +++ b/NOTES_ON_OPTICAL_PRINTER_TECHNIQUE.md @@ -51,6 +51,9 @@ date: "March 1983" | [Other Fades](#other-fades) | 16 | [Ritual and Art](#ritual-and-art) | 35 | ::: +::: {.indexTableEnd} +::: + \newpage \pagenumbering{arabic} @@ -1173,6 +1176,8 @@ Example of a joint color and brightness test: > Each line in the chart represents CC filtration to be added to an initial guess of the right CC's. At each line make a series of ND variations surrounding an initial guess of the right ND. Perhaps the guess -.50, -.40, -.30, -.20, -.10, the guese itself, +.10, +.20, and +.30. The series is lopsided because the CC filtrations are all added to the CC guess. The 37 CC variations X the 9 ND variations = a 333 frame test. +::: {.ymcTable} + | Y | M | C | |-----|-----|-----| | 0 | 0 | 0 | @@ -1213,6 +1218,8 @@ test. | 30 | 20 | 0 | | 30 | 30 | 0 | +::: + **![Diagram depicting the CC chart plotted on 3 axes: +M, +Y, +C](img/image_9.jpg)** A joint color and brightness test is a net spread over the logical region around an initial guesea, to catch the right exposure. diff --git a/build_handbook.sh b/build_handbook.sh new file mode 100644 index 0000000..918c05e --- /dev/null +++ b/build_handbook.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +convert "handbook/zine_*.jpg" -quality 100 ./pdf/NOTES_ON_OPTICAL_PRINTER_TECHNIQUE_handbook.pdf \ No newline at end of file diff --git a/compile_handbook.sh b/compile_handbook.sh index 716f9be..bff0549 100644 --- a/compile_handbook.sh +++ b/compile_handbook.sh @@ -11,13 +11,40 @@ if [ ! -f ./handbook/cmunrm.otf ]; then cd .. fi +HANDBOOK="./handbook" TMP_HTML="$(realpath ./handbook/index.html)" HTML="html/index.html" LAYOUT_PDF="handbook/layout.pdf" +BODY_HTML="handbook/body.html" +INDEX_TABLE_HTML="$(cat ./tmpl/handbook_index.html)" + +rm -f "${BODY_HTML}" + +WRITING=0 +INDEX_TABLE=0 + +while read p; do + if [ ${WRITING} -eq 0 ] && [[ "${p}" == *""* ]]; then + WRITING=1 + fi + if [ ${WRITING} -eq 1 ] && [[ "${p}" == *""* ]]; then + WRITING=0 + fi + if [ ${INDEX_TABLE} -eq 0 ] && [[ "${p}" == *"class=\"indexTable\""* ]]; then + INDEX_TABLE=1 + echo "${INDEX_TABLE_HTML}" >> "${BODY_HTML}" + fi + if [ ${INDEX_TABLE} -eq 1 ] && [[ "${p}" == *""* ]]; then + INDEX_TABLE=0 + fi + if [ ${WRITING} -eq 1 ] && [ ${INDEX_TABLE} -eq 0 ]; then + echo "$p" >> "${BODY_HTML}" + fi +done < "${HTML}" BODY_VAR="{{BODY_HTML}}" TMPL_HTML=`cat tmpl/layout.html.tmpl` -BODY_CONTENT=`cat "${HTML}"` +BODY_CONTENT=`cat "${BODY_HTML}"` FONT=`cat handbook/cmunrm.txt | tr -d '\n'` BODY_CONTENT="${BODY_CONTENT//.svg/.jpg}" @@ -37,8 +64,27 @@ chromium-browser \ cd handbook +rm -f page-*.jpg + #convert -density 600 "../${LAYOUT_PDF}" -quality 90 page-%3d.jpg -#pdftoppm "../${LAYOUT_PDF}" page -jpeg -rx 600 -ry 600 +pdftoppm "../${LAYOUT_PDF}" page -jpeg -rx 600 -ry 600 + +convert -size 5100x6601 xc:white blank.jpg + +cp blank.jpg page-0.jpg +cp blank.jpg page-00.jpg + +pages=`ls page-*.jpg` +i=-1 +for page in $pages +do + #5100x6601 + if [ ${i} -gt 0 ]; then + echo "Numbering [$i] $page" + convert "${page}" -gravity North -pointsize 180 -draw 'text 0,6450 "'${i}'"' "${page}" + fi + let i=i+1 +done cd .. #rm -f "${TMP_HTML}" diff --git a/pdf/NOTES_ON_OPTICAL_PRINTER_TECHNIQUE.pdf b/pdf/NOTES_ON_OPTICAL_PRINTER_TECHNIQUE.pdf index 1c8f417dd038837d52ad3cdabefa418f22a9ddca..95e3307959a3a0beaf27c2137eec6d1c8538cfb2 100644 GIT binary patch delta 4135 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 diff --git a/tmpl/handbook_index.html b/tmpl/handbook_index.html new file mode 100644 index 0000000..0b74002 --- /dev/null +++ b/tmpl/handbook_index.html @@ -0,0 +1,241 @@ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Magnification2Fades in Original26
Blowup & Reduction3Chart C: Neutral Density
Blowup Sharpness3and Equivalent Shutter
Printer Lenses4Angle29
Optical Zoom5Image Superposition31
Lens Aperture6Gamma & Bipack31
Focusing6Incidentally33
Focusing Aperture6Exposure Compensation35
Focusing Precision6Special Originals35
Focusing Target6Texturing36
Depth of Field7Multi-Exposure37
Bolex Prism7Multi-Pack37
Bolex Groundglass7Natural Superposition37
Defocus7Flashing38
X-Y Adjustment7Contrast Adjustment38
Exact 1:18Color Image Superposition39
Aimframe9Weighted Double Exposures40
Framelines11Dissolves41
Emulsion Position12Effects Dissolves41
Time14Fades from Negative42
Fancy Freeze15Color Exposure42
Fancy Slow15Testing43
Diffusers15CC Pack Reduction47
UV Filter16High Contrast Prints48
IR Filter16Hicon Exposure49
Green Filter17Contrast Building Steps50
Filter Location17Hicon Speckle50
Exposure17Tone Isolation51
Exposure Adjusters18Logic of Mask Combination51
Specifying Exposure19Image Spread and Bloom52
Film Speed19Mask and Countermask53
Right Exposure20Reversal/Negative Fitting53
Generations20Feathered Masks54
Bellows Formula23Image Marriage55
Fades24Mask Blackness56
Log Fade24Hicons from Color Originals56
Bolex Variable Shutter25Hicon Processing57
Linear Fade25Optical Printed Release Prints58
Other Fades25Ritual and Art59
+
\ No newline at end of file diff --git a/tmpl/layout.html.tmpl b/tmpl/layout.html.tmpl index 726d781..5e58125 100644 --- a/tmpl/layout.html.tmpl +++ b/tmpl/layout.html.tmpl @@ -1,6 +1,7 @@ - + +