This page is a repository for historical news announcements. See the main makethumbs web page for information about the current makethumbs.
More portability fixes. Both scripts have been tested on Solaris 2.7 and Cygwin, and will work correctly on these OSes as long as a shell more capable than their /bin/sh can be found (e.g. ksh, bash). Two more fixes for interoperating with older versions of ImageMagick. Two or three small bug fixes in makethumbs.sh are included as well.
Portability fixes. I was using some extended regular expressions in my egrep calls which were not very portable, either to Solaris or to older versions of GNU grep. I was also using a flag to ImageMagick's identify program which was only added a couple years ago. These problems would occur for Solaris or older Linux distribution users (e.g. RedHat 6.1). Thanks to Lloyd Cha and Tom Limoncelli for the bug reports.
New .makethumbsrc variable added, preferred_image_tools. It may be set to either imagemagick or netpbm if you would prefer that makethumbs use one or the other. makethumbs will ignore your preference if only one of these two image manipulation tools are around, but if both are present, it will do as you've asked. The functionality should be the same with either tool choice, but if another portability problem comes up with makethumbs and older versions of these tools, users will have a way to direct makethumbs towards working utilities
Thanks to Alain Labarthe, French translations for makethumbs are now available. Thanks Alain!
localization is the theme of this release. Variables have been added so all of makethumbs' output can be localized to other languages. Thanks to Roberto Scliar and Paolo Priotti, translations for Portuguese and Italian are available already!
If anyone is willing to submit more languages, start with the English phrases file below. It's not difficult--it's about ten phrases plus the names of the months. The current translations are:
Put these variable settings in your ~/.makethumbsrc file and all of makethumbs' generated HTML will be localized for your language.
New variables added: boilerplate_index_after_table_before_indexlinks, this_page_created_text, image_xx_of_yy_text, image_set_n_text, image_set_all_text, reduced_image_text, large_image_text, original_image_text, index_page_title_start_html, image_page_title_end_html, slideshow_page_title_start_html, slideshow_page_title_end_html. The variable named in the form of monthname_01 were all renamed to monthname_01_text. Almost all of these are for localization; the index_page_title_start/end_html and slideshow_page_title_start/end_html are used to change the <H1> and <H2> markup used in the titles on the index and slideshow pages. Those default settings can result in some large titles, so some people may prefer more subdued titling.
makethumbs' HTML has been made closer to XHTML. I didn't change the DOCTYPE from HTML 3.2 because users who add their own markup will rarely conform to the stricter XHTML definition.
A little cleanup on boilerplate variables. The set of variables affected is
boilerplate_type_insert_in_head
boilerplate_type_before_title
boilerplate_type_after_title
boilerplate_type_end_of_page
In addition to type as "slideshow" or "index", you can omit that qualifier and have the setting take effect on both types of pages. e.g. you can set boilerplate_insert_in_head and the specified text will be inserted on both slideshow and index pages. You can still use _slideshow_ or _index_ to set the variable for only one type of page if you wish.
New variable, use_timestamps_as_captions, enabled (1) by default. makethumbs will use image timestamps as captions when there's nothing more interesting to use, but you can force this off by setting this variable to 0. This could be useful if your timestamps are wildly inaccurate, or if you just prefer they not be on the index page. Thanks to Andrew Morton for the suggestion.
The variable dont_change_file_permissions has been replaced by a variable with the inverse meaning, change_file_permissions.
boilerplate_ variables added for slideshows in addition to the index pages. So the list of variables you're likely to want to set when making makethumbs generated pages fit in with the rest of your site design:
Index pages:
print_title_on_index (boolean)
boilerplate_index_insert_in_head
boilerplate_index_before_title
boilerplate_index_after_title
boilerplate_index_end_of_page
Slideshow pages:
print_title_on_slideshow (boolean)
boilerplate_slideshow_insert_in_head
boilerplate_slideshow_before_title
boilerplate_slideshow_after_title
boilerplate_slideshow_end_of_page
On all pages:
body_tag
boilerplate_footer
Note that the boilerplate_whatever_end_of_page text is responsible for providing the </BODY></HTML> markup. The boilerplate_footer, on the other hand, is not. The boilerplate_whatever_insert_in_head is text that will be included in the <HEAD> section of the generated pages. You might use this to specify a style sheet or include some Javascript or what have you. The body_tag variable is the full HTML of the <BODY> tag you want in your files--set your page color and what have you with this one.
As always, suffixing "_FILE" to the end of any of these settings names indicates that the text to substitute is found in the filename listed. e.g. boilerplate_footer_FILE=~/.makethumbs-foot will instruct makethumbs to get the text for the footer from ~/.makethumbs-foot.
Using all of the above settings, you can customize the look of your makethumbs pages pretty well. For instance, see Daniel Eisner's car photos.
The decision of whether to use netpbm or ImageMagick is made automatically depending on what executables are in your $PATH, so don't worry about setting anything.
Please let me know if you see any problems with this. I've done a fair amount of testing on my own local system, but people with markedly different environments may have troubles and I can fix those quickly - just let me know.
Big new feature: Large image support. For images larger than 1600x1200 (i.e. from something larger than a 2mpixel digicam), create a new size reduced image size, a bounded box of 1280x1024 by default. This gives people an intermediate between the full-size original and the reduced 640x480 images with the original images getting up to 2500x2000 with the new cameras. Be sure to get rotate.sh of at least revision 1.14 (after January 23) if you're using a digicam of three megapixels or over--older revisions won't tidy up the large images correctly.
There are a few small optimizations that will reduce runtime a lot for certain sets of images.
I added a feature destined for extremely rare use: JavaScript is put in the image slideshow pages which will make "n" or "k" move to the next image and "p"/"j" move to the previous image. I stole the idea from Per Bothner's image gallery scripts and got help from Brian Smith to make the JavaScript work with both Mozilla-based browsers and Internet Explorer.
As always, lots of new options! Yay, everyone loves new options. (gotta write that documentation some day...) dont_change_file_permissions to turn off all of makethumbs' file chmod'ing behavior; file_readable_permissions, dir_transversible_permissions if you have some specific modes you'd like makethumbs to enforce. All large image creation can be disabled by setting create_large_images=0. print_img_size_on_slideshow will control whether the file sizes are displayed on the slideshow pages, and if you are doing it, you can set slideshow_image_size_across_two_lines to set whether the sizes are printed inline with the clickable links or on seperate lines -- the seperate lines looks better, but it eats up valuable vertical space. slideshow_images_are_clickable will control whether the inlined image on the slideshow pages is clickable or not. By default, it is not, but the default was 'yes' until now and some people might prefer that. slideshow_print_javascript_navigation determines whether or not the new JavaScript hotkey navigation is emitted in the slideshow pages. For the new large images, large_trigger_height and large_trigger_width define the sizes above which the large file support is triggered, and large_height and large_width are the dimensions that the large image will be reduced to.
Big new feature: Multiple index.html files when you have lots of images. makethumbs will put ten rows of images (or thirty images by default) on each index page that it creates. This will help browsers who are on a slower net connection and are presented with a lot of images. Thanks go out to Andan Lauber whose 596 image gallery pushed me to finally implement this.
There are some new variables to control the behavior, and a command line option. Using the --one-index-page command line option will disable the behavior, as will putting single_index_page=1 in your .makethumbsrc. rows_per_index_page will control how many rows will go on each index page; the default is 10.
Another new feature is that you can control the order of the images on the makethumbs-generated page via the [captions] section of the descriptions.txt file. Move the files around in the [captions] section, re-run makethumbs, and that's the order they'll be placed on the web page.
New hooks provided for customizing makethumb's text ouput: boilerlate_index_head_stuff, boilerplate_index_before_title boilerplate_index_after_tile, boilerplate_index_end_of_page. As you can guess by the names, these are all text that'll be inserted on the main index.html page for a makethumbs gallery, either in the <HEAD> section, or before/after the page title, or at the bottom of the page. If you want your makethumbs-generated galleries to match the look and feel of the rest of your site, you should be able to customize its output sufficiently with these new variables. There is also the variable print_title_on_index (default 1) to suppress the title on the index.html file, if that is necessary for your page design.
A new variable setting mostly for my own use - show_timings - which, when set, will cause makethumbs to report how many seconds each stage of its execution took.
New heuristics added for the captions on the main index.html. It's all rather involved, but the end result should be more meaningful captions in most cases. The worst case is that you'll have the same old boring captions you had in the past. I think the better cases will pleasantly surprise you. There isn't enough room in the margin of this <dd> to explain the details, but I can outline it if anyone is curious. This new facility is one of the big payoffs for all the timestamp-grubbing code I've been working on for the last few weeks. Ian Lance Taylor's captioning style got me thinking about all of this stuff - thanks!
The old .makethumbsrc variable footer_text is now called boilerplate_footer. I anticipate adding more boilerplate_ variables as people can spot good places for them. The old image_subtitle_text variable is now image_imprinting_text. It's easier to understand what it does with the new name.
More date recognition methods, plus a new dates.txt file is maintained automatically by makethumbs to cache the timestamps of images. You may edit the dates in this file by hand and makethumbs will not overwrite them.
By default, makethumbs will no longer put a "Large version" link on the index page under each image, and it won't show the filesizes. (The filesizes were really only necessary for the full-sized images). This means users will need to click through the slideshows to see the original photos. This is a good change right now, but it'll make even more sense in the future as I roll out some other little new features.
New --clean command line option to remove all makethumbs generated files. Files that you may have edited will be moved aside (foo goes to foo~) so that any changes you've made won't be lost. Regenerating all the thumbnails and reduced images can take a long time, so I wouldn't use this as a normal part of your makethumbs workflow.
A number of obscure bugs were fixed.
A new feature exists with the .makethumbsrc file for multi-line values (like the boilerplate_footer). Instead of writing
boilerplate_footer="Pages by Jason! Weee!"You write
boilerplate_footer_FILE=~/.makethumbs-footerand put
Pages by Jason! Weee!in ~/.makethumbs-footer. This works with any .makethumbsrc variable--suffix the variable name with _FILE and the value in the .makethumbsrc file is a filename where makethumbs should fetch the text from. The entries in the .makethumbsrc cannot span multiple lines, so you'll need to use the _FILE mechanism if you want multiline text.
Also some internal code reorganization to make code maintenance easier and a few minor bugs squashed.
You can subtitle reduced images with text by setting image_imprinting_text in your .makethumbsrc. This is useful for adding a copyright notice to the bottom of your images, for instance. The mogrify program from ImageMagick is used to do the text imprinting right now, so it'll only work if ImageMagick is installed. I think there was a netpbm program to do this as well, so I'll probably switch to that in the future if I can.
There were also a few minor bugfixes.
If you'd prefer the 800x600 setting (or any setting, for that matter), set the reduce_width and reduce_height appropriately in your .makethumbsrc file. Note that the reduce_trigger_width and reduce_trigger_height are set to 1024, 768 respectively. Any image larger than the trigger dimensions will be reduced; any image smaller will be left alone. The purpose of the trigger is to avoid reducing an image that's 805x600 pixels down to 800x600 -- reduction should only be done if there'll be a real benefit. If you're changing the reduce_height and reduce_width a lot, you may need to change the trigger settings as well.
Also new is the --compression command line option; use this (or the compression_level .makethumbsrc setting) to change the compression amount used when generating thumbnails and reduced images. The default is 75. Setting it to 50 can give you a 30% disk space savings in your reduced images with little visible image quality loss. Around 40 the compression artifacts start to build up. With the compression_level set to 50 instead of 75, the total size needed for 19 reduced images on the sample page shrinks from 1.7MB to 1.3MB.
The per-image slideshow pages now include a "Image xx of yy" counter to indicate how far along in the gallery a user is.
Several small bugfixes. Thanks to Andan for bug reports, thanks to Lloyd Chu for information about Olympus digicam file naming schemes.
A few more small bug fixes and slight UI changes in the slideshow pages, but the important thing is the new descriptions.txt file.
A bug fixed with the thumbnail size specifier thanks to a bug report from Meg Lauber. The max_thumb_height and max_thumb_width variables are now gone, there is a single max_thumb_size variable to control the bounding box of thumbnails. It can be set in your .makethumbsrc with a directively like max_thumb_size=nn.
A few small bug fixes. Most notably, add links to the main index by naming it explicitly instead of the old <A HREF=""> trick--both Mozilla and Mac IE are messing that up. This is also needed when writing makethumbs generated pages to a CD-ROM and browsing over the local filesystem.
--without-slideshow
, or overridden in your
$HOME/.makethumbsrc
file (``create_slideshow=0
'').
html_charset
which can be set to specify
the character set of your web pages; again you can set this in your
.makethumbsrc
with something like
``html_charset=euc-jp
'' for Japanese.
slideshow_previous_pre_link="<h2>[" slideshow_previous="previous" slideshow_previous_post_link="]</h2>" slideshow_next_pre_link="<h2>[" slideshow_next="next" slideshow_next_post_link="]</h2>" slideshow_ret_to_index_pre_link="<h2>[" slideshow_ret_to_index="index" slideshow_ret_to_index_post_link="]</h2>"For the three main navigation links. Thanks to Tim Meggs for the great suggestions.
makethumbs.sh
is now
1,300 lines long--utterly obscene. New motto for makethumbs home
page, courtesy of Tim Meggs.
$HOME/.makethumbsrc
file support; you can
override any of the internal global variables through this
file. I also added new $GLOBAL_body_tag
and
$GLOBAL_meta_tag
variables; you can override them
in the .makethumbsrc
to customize the appearance
of your HTML pages (and you won't need to keep tweaking this
script each time you download new versions!) No one person
was asking for this, but several people override the defaults
by hand.
makethumbs.sh
creates with an entry in your
.makethumbsrc
file like:
body_tag=<body bgcolor="black" text="#ffffff" link="red" alink="yellow" vlink="green">
--remove-originals
command line option,
thanks to a suggestion from Tim Meggs. This is useful if your
web site disk space is limited and you really don't need 3
million pixels of your cat. With this option, every time makethumbs
creates a reduced version of an image, the original version of
that image will be removed. Don't run this on your only copy
of images!
rotate.sh
script and modifications to makethumbs
to support it. Handy if images off your digital camera are
occasionally 90 degrees askew. The usage is to (1) run makethumbs
on your images and see what you've got. Then (2) run rotate.sh
to rotate right any images that need to be so rotated, run
rotate.sh to rotate left any images that need to be so rotated,
and then (3) remove the original index.html that makethumbs
created and re-run makethumbs.
makethumbs.sh
.