{"id":2690,"date":"2019-03-10T13:58:17","date_gmt":"2019-03-10T13:58:17","guid":{"rendered":"http:\/\/julius-ihle.de\/?p=2690"},"modified":"2019-03-10T17:16:29","modified_gmt":"2019-03-10T17:16:29","slug":"making-image-magick","status":"publish","type":"post","link":"https:\/\/julius-ihle.de\/?p=2690","title":{"rendered":"Making Image Magic(k)"},"content":{"rendered":"<p><a href=\"https:\/\/julius-ihle.de\/?p=2690\"><img loading=\"lazy\" decoding=\"async\" class=\" size-large wp-image-2691 aligncenter\" src=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/imagemagick-1024x426.png\" alt=\"imagemagick\" width=\"1000\" height=\"416\" srcset=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/imagemagick-1024x426.png 1024w, https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/imagemagick-300x125.png 300w, https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/imagemagick.png 1280w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/p>\n<p>One of the things I found myself having to do more and more recently was creating contactsheets. This is mainly to keep an overview for myself over all the shots in every sequence for example. It usually saves me a lot of time, especially at the beginning of a show when I wasn&#8217;t neccesserely familiar yet with all the shots we had to work on.<br \/>\nCreating the contactsheets themselves however proved to be rather tedious as my workflow consisted of doing it all in Nuke. Adding, shuffling or annotating shots wasn&#8217;t really easy without some serious Python trickery. Luckily I found a great alternative.<!--more--><\/p>\n<p>So what&#8217;s the fancy title all about? The tool that I&#8217;m going to be using is an open source command line image-editing utility called <a title=\"ImageMagick official website\" href=\"https:\/\/imagemagick.org\" target=\"_blank\">Image Magick<\/a>. The beauty of it is that it can be used to batch-process a ton of images. It can seem quite overwhelming at first as it ships with a lot of utilities and options but this is what also makes it so powerful. A lot details and examples can be found in the v6 documentation <a href=\"https:\/\/imagemagick.org\/Usage\" target=\"_blank\">HERE<\/a>.<\/p>\n<p>I should preface this write-up by saying that I only touched the tip of the iceberg and am still discovering new things day by day.<\/p>\n<p>What I did know was the main purpose I wanted to use it for: Stitching thumbnails of all relevant shots from our database so that I would have a one-stop quick overview for the shots. Alongside this I wanted to have the following information displayed for each shot:<br \/>\n-annotate each thumbnail with the shotname<br \/>\n-show some info from the database about the status from relevant departments<br \/>\n-annotate each thumbnail with assigned artist<\/p>\n<p>Goal is set, so here&#8217;s a quick rundown on my humble tests. I have been using the following 3 utilities that ship with ImageMagick:<br \/>\n<strong><em>convert<\/em><\/strong><br \/>\n<strong><em>montage<\/em><\/strong><br \/>\n<strong><em>identify<\/em><\/strong><\/p>\n<p><em>convert<\/em> is pretty straight forward. It&#8217;s main purpose is to do all sort of image manipulation. Transforms, filters, color corrections, annotations &#8211; you name it.<br \/>\n<em>montage<\/em> is very useful for stitching multiple images together to create a collage.<br \/>\n<em>identify<\/em> is a useful tool for getting information about an image such as resolution, color space, etc.<\/p>\n<p>I set up a testproject with some thumbnails based on a sort-of famous movie&#8230; I made up sequence- and shot names. Alltogether I have 7 sequences, each with a couple of shots inside them. The directory structure is split up so we have <em>$PROJ\/$SEQ\/$SHOT\/thumbnail.png<\/em>:<br \/>\n.<br \/>\n\u251c\u2500\u2500 testproj<br \/>\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 FS<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0310<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 test.png<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 thumbnail.png<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0320<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 thumbnail.png<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0330<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 thumbnail.png<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0360<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 thumbnail.png<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0370<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 thumbnail.png<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 0390<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2514\u2500\u2500 thumbnail.png<br \/>\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 GR<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0040<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 thumbnail.png<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0050<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 thumbnail.png<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0060<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 thumbnail.png<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0070<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 thumbnail.png<\/p>\n<p>etc&#8230;<\/p>\n<p>The general syntax for using the image magick tools is<br \/>\n<em>magick tool inputImage [-options] outputImage<\/em><br \/>\nexample:<\/p>\n<p>[shell]magick convert thumbnail.png -resize 50% test.jpg[\/shell]<\/p>\n<p>This will shrink the input image thumbnail.png by 50% and save the output as test.jpg. Easy enough&#8230;<br \/>\n(Note that the <em>magick<\/em> prefix has only been introduced from ImageMagick v7 onwards.)<\/p>\n<p>However my thumbnails are not really thumbnails at the moment. They are massive as they are just screenshots from the BluRay. I want to resize them down from their original size of 1920&#215;1040 to 640&#215;480. 640&#215;480 is a different aspect ratio however and the default for resizing an image using <em>convert<\/em> is to resize the image to the specified width and keep the aspect ratio from the original image. I could use <em>-extent<\/em> in the following way to force the output resolution:<\/p>\n<p>[shell]magick convert thumbnail.png -resize 640&#215;480 -background black -gravity center -extent 640&#215;480 test.png[\/shell]<\/p>\n<p>This will resize the original image to 640&#215;347 (due to the different aspect ratio), extend the resolution to 640&#215;480 afterwards and fill the empty areas with black while keeping the image centered.<\/p>\n<p><a href=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_01.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-large wp-image-2694 aligncenter\" src=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_01-1024x392.png\" alt=\"im_01\" width=\"1000\" height=\"383\" srcset=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_01-1024x392.png 1024w, https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_01-300x115.png 300w, https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_01.png 1598w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>There are multiple ways to add text to an image. You can use <em>-draw<\/em> to place text exactly where you want. Preceding options can define the style and positioning of the text. This example will create white text saying &#8216;test&#8217;, outlined with black and a size of 250 in the center of the image:<\/p>\n<p>[shell]magick convert thumbnail.png \\<br \/>\n  -font DejaVu-Sans \\<br \/>\n  -pointsize 250 \\<br \/>\n  -fill white \\<br \/>\n  -stroke black \\<br \/>\n  -strokewidth 5 \\<br \/>\n  -gravity center \\<br \/>\n  -draw &#8220;text 0,0 &#8216;test'&#8221; test.png[\/shell]<\/p>\n<p><a href=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_02.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-2695 aligncenter\" src=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_02-300x163.png\" alt=\"im_02\" width=\"300\" height=\"163\" srcset=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_02-300x163.png 300w, https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_02-1024x555.png 1024w, https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_02.png 1920w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>ImageMagick&#8217;s main benefit lies in batch processing a multitude of images. I could shrink all my images and annotate them with the shot name in the same way as outlined above (in this case using bash):<\/p>\n<p>[shell]for sequence in testproj\/*; do<br \/>\n#get the sequence name from folder<br \/>\nseqName=$(basename ${sequence})<br \/>\n#create directory of current sequence inside seqSheets dir<br \/>\nmkdir -p seqSheets\/${seqName};<br \/>\n#create annotated thumbnail and export to seqSheets directory<br \/>\nfor thumb in ${sequence}\/*\/thumbnail.png; do<br \/>\n  shotName=$(basename $(dirname ${thumb}))<br \/>\n  magick convert $thumb \\<br \/>\n    -resize 640&#215;480 \\<br \/>\n    -background black \\<br \/>\n    -gravity center \\<br \/>\n    -extent 640&#215;480 \\<br \/>\n    -font DejaVu-Sans-Bold \\<br \/>\n    -pointsize 150 \\<br \/>\n    -fill rgba\\(255,255,255,0.30\\) \\<br \/>\n    -stroke black \\<br \/>\n    -strokewidth 5 \\<br \/>\n    -gravity center \\<br \/>\n    -draw &#8220;text 0,0 &#8216;${shotName}'&#8221; \\<br \/>\n    &#8220;seqSheets\/${seqName}\/${shotName}.png&#8221;;<br \/>\n  done;<br \/>\ndone[\/shell]<\/p>\n<p>This way I have a small annotated version of each thumbnail inside a newly created seqSheets folder as well:<br \/>\n.<br \/>\n\u251c\u2500\u2500 seqSheets<br \/>\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 FS<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0310.png<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0320.png<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0330.png<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0360.png<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0370.png<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 0390.png<br \/>\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 GR<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0040.png<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0050.png<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0060.png<br \/>\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 0070.png<\/p>\n<p>Now that I have each shot annotated with its name I can use <em>montage<\/em> to stack them on top of each other. I would like to do that in a specific way tough. Preferably I would like my contact sheet to be aligned at the top so I have the sequence names in one row and the shots for each sequence stacked beneath them:<br \/>\n<a href=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_03_seqsheetexample.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-2696 aligncenter\" src=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_03_seqsheetexample-300x292.png\" alt=\"im_03_seqsheetexample\" width=\"300\" height=\"292\" srcset=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_03_seqsheetexample-300x292.png 300w, https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_03_seqsheetexample.png 721w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><em>montage<\/em> is a great utility for aligning images as it features a lot of options. To be able to easily update things on a per-sequence level I decided to do an individual sheet per sequence first.<br \/>\nIf <em>montage<\/em> is not being given any options it will try to align images in a more-or-less smart manner itself:<\/p>\n<p>[shell]magick montage seqSheets\/FS\/*png test.png[\/shell]<\/p>\n<p><a href=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_04montage_no_options.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2697 size-full\" src=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_04montage_no_options.png\" alt=\"im_04montage_no_options\" width=\"384\" height=\"252\" srcset=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_04montage_no_options.png 384w, https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_04montage_no_options-300x197.png 300w\" sizes=\"auto, (max-width: 384px) 100vw, 384px\" \/><\/a><\/p>\n<p>There are a number of ways how you can set your alignment in montage. You can use the<em> -tile AxB<\/em> option to define how many rows and column your montage should have (where <em>A<\/em> are the columns and <em>B<\/em> the rows). As with a lot of options on the ImageMagick toolset it&#8217;s possible to leave out either rows or columns and montage will just force one column for example independent of how many images you have.<\/p>\n<p>[shell]montage seqSheets\/FS\/*png -tile 1x test.png[\/shell]<\/p>\n<p><a href=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_05_montage_base.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2698 size-full\" src=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_05_montage_base.png\" alt=\"im_05_montage_base\" width=\"128\" height=\"756\" srcset=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_05_montage_base.png 128w, https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_05_montage_base-51x300.png 51w\" sizes=\"auto, (max-width: 128px) 100vw, 128px\" \/><\/a><\/p>\n<p>My goal is to put all the individual sequence sheets next to each other afterwards. For this to be more straight forward I want to force each sequence sheet to have the same number of rows. I will therefore just grab the sequence with the most number of shots and set every sheet to have this number of rows:<\/p>\n<p>[shell]#grab the maximum number of shots per sequence<\/p>\n<p>maxShots=$(find testproj\/ | rev | cut -d &#8220;\/&#8221; -f2- | rev | sort | uniq -c | sort -k1n,1 | tail -n1 | sed &#8216;s\/^\\s*\/\/&#8217; | cut -d &#8221; &#8221; -f1)<br \/>\nfor sequence in $(ls -d seqSheets\/*\/); do<br \/>\n  seqName=$(basename ${sequence})<br \/>\n  magick montage ${sequence}\/* \\<br \/>\n    -background black \\<br \/>\n    -fill white \\<br \/>\n    -pointsize 18 \\<br \/>\n    -font DejaVu-Sans-Bold \\<br \/>\n    -title $seqName \\<br \/>\n    -tile &#8220;1x${maxShots}&#8221; \\<br \/>\n    &#8220;seqSheets\/${seqName}.png&#8221;<br \/>\ndone[\/shell]<\/p>\n<p>The resulting sheets will consequently all have the same dimensions so stitching them together afterwards will be pretty easy:<br \/>\n<a href=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_06FS.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-large wp-image-2699 alignleft\" src=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_06FS-100x1024.png\" alt=\"im_06FS\" width=\"100\" height=\"1024\" srcset=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_06FS-100x1024.png 100w, https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_06FS.png 128w\" sizes=\"auto, (max-width: 100px) 100vw, 100px\" \/><\/a> <a href=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_06GR.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-large wp-image-2700 alignleft\" src=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_06GR-100x1024.png\" alt=\"im_06GR\" width=\"100\" height=\"1024\" srcset=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_06GR-100x1024.png 100w, https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_06GR.png 128w\" sizes=\"auto, (max-width: 100px) 100vw, 100px\" \/><\/a> <a href=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_06MFB.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-large wp-image-2701 alignleft\" src=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_06MFB-100x1024.png\" alt=\"im_06MFB\" width=\"100\" height=\"1024\" srcset=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_06MFB-100x1024.png 100w, https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_06MFB.png 128w\" sizes=\"auto, (max-width: 100px) 100vw, 100px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>I will use <em>convert<\/em> this time instead of <em>montage<\/em> to simply append all of the images together. Reason being is that it will just keep the input formats and it&#8217;s a bit easier to control spacing using the <em>-border<\/em> option. <em>+append<\/em> stacks the images horizontally, <em>-append<\/em> would stack them vertically:<\/p>\n<p>[shell]convert seqSheets\/*png \\<br \/>\n  -background black \\<br \/>\n  -bordercolor black \\<br \/>\n  -border 25x \\<br \/>\n  +append \\<br \/>\n  final_contactsheet.png \\[\/shell]<\/p>\n<p><a href=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_07finalcontactsheet.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-2702\" src=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_07finalcontactsheet-974x1024.png\" alt=\"im_07finalcontactsheet\" width=\"974\" height=\"1024\" srcset=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_07finalcontactsheet-974x1024.png 974w, https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_07finalcontactsheet-285x300.png 285w, https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_07finalcontactsheet.png 1246w\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" \/><\/a><\/p>\n<p>Taking this further one could grab additional information from the project database. If there&#8217;s a way to access it via a Python API for example one could annotate each shot with their respective department status, assigned user, etc. This way it can provide lot&#8217;s of very useful information at a glance. I just made up something here but I hope it shows the point:<br \/>\n<a href=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_08final_contactsheet_extraInfo.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-2703\" src=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_08final_contactsheet_extraInfo-974x1024.png\" alt=\"im_08final_contactsheet_extraInfo\" width=\"974\" height=\"1024\" srcset=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_08final_contactsheet_extraInfo-974x1024.png 974w, https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_08final_contactsheet_extraInfo-285x300.png 285w, https:\/\/julius-ihle.de\/wp-content\/uploads\/2019\/03\/im_08final_contactsheet_extraInfo.png 1246w\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" \/><\/a><br \/>\n<span style=\"color: #808080;\">_________________________________________________<\/span><br \/>\n<span style=\"color: #808080;\"><span style=\"font-size: small;\"> If this post has helped you in any way you can express your gratefulness by using the <em>Donate <\/em>Button below to buy me a coffee! :)<\/span><\/span><br \/>\n<a href=\"https:\/\/www.paypal.com\/cgi-bin\/webscr?cmd=_s-xclick&amp;hosted_button_id=VH5RW3YDWDJSQ\" target=\"_blank\" rel=\"nofollow\"><img decoding=\"async\" src=\"https:\/\/www.paypal.com\/en_US\/i\/btn\/x-click-but21.gif\" alt=\"\" \/><\/a><\/p>\n<div class=\"moz-text-html\" lang=\"x-unicode\">\n<div><span style=\"font-size: small;\"><span style=\"color: #808080;\">3M5xNSV7g2NzVpHMqzYKhgoKJZ8CWa644m<\/span><\/span><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-2576\" src=\"https:\/\/julius-ihle.de\/wp-content\/uploads\/2018\/03\/bc_ldgr_qrcode.png\" alt=\"bc_ldgr_qrcode\" width=\"128\" height=\"128\" \/><\/div>\n<div><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>One of the things I found myself having to do more and more recently was creating contactsheets. This is mainly to keep an overview for myself over all the shots in every sequence for example. It usually saves me a lot of time, especially at the beginning of a show when I wasn&#8217;t neccesserely familiar [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2690","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3MXK6-Ho","jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/julius-ihle.de\/index.php?rest_route=\/wp\/v2\/posts\/2690","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/julius-ihle.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/julius-ihle.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/julius-ihle.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/julius-ihle.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2690"}],"version-history":[{"count":18,"href":"https:\/\/julius-ihle.de\/index.php?rest_route=\/wp\/v2\/posts\/2690\/revisions"}],"predecessor-version":[{"id":2719,"href":"https:\/\/julius-ihle.de\/index.php?rest_route=\/wp\/v2\/posts\/2690\/revisions\/2719"}],"wp:attachment":[{"href":"https:\/\/julius-ihle.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2690"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/julius-ihle.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2690"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/julius-ihle.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2690"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}