Concatenating images into image strips

I needed a quick and easy way to make image strips.

 package require Tk

 proc CombineImages {width height output_name image_names} {
    set fullwidth [expr {[llength $image_names] * $width}]
    set img_tar [image create photo -height $height -width $fullwidth]

    set img_ndx 0
    foreach image_name $image_names {
       set img_in [image create photo -file $image_name]
       set dest_x [expr $img_ndx * $width]
       set dest_x2 [expr $dest_x + $width]
       $img_tar copy $img_in -to $dest_x 0 $dest_x2 $height
       image delete $img_in
       incr img_ndx
    }

    $img_tar write $output_name
 }

 # Example usage:
 CombineImages 16 16 battleship.gif [list stearn_norm.gif mid1_norm.gif mid2_norm.gif bow_norm.gif \
                                          stearn_dead.gif mid_dead.gif bow_dead.gif \
                                          hit.gif miss.gif]

Note: As-is, this code will only make strips. A few changes could turn it into a big 2d map maker.

This will be very handy for anyone wanting to write games or place there tool-bar icons into strips.

A nice utility is just a few lines. Yet another example of the power and ease of our un-cool language.