Extensions and Scripts
   

MAX files (plug-ins)
MAX_DigiCam
Standard version and Unicode version
Extracts image information from EXIF/JPG files taken with digital still cameras.
Many digital cameras create image files that store information about the image and the camera that took it. Information about shutter speed, aperture, focal length is typically included.
With this MAX, MyAlbum will add these informations to the album when reading the image.

MAX_DigiCam should work with pictures taken by any camera that produces JPEG/Exif files. Nikon, Minolta, Olympus, Fuji, Ricoh, Kodak and Toshiba cameras use this format. It also works with cameras that produce App-12 files (Agfa, Epson, Olympus and Sanyo).
MAX_PhotoPC
Standard version
Interface to the PhotoPC program.
PhotoPC is a control and dowloading software for digital cameras, it works with certain camera models from Agfa, Epson, Olympus, Nikon and Sanyo.
PhotoPC is a small freeware application written by Eugene Crosser & Bruce D. Lightner and can can be found at:
http://photopc.sourceforge.net

With this MAX, MyAlbum is be able to control a PhotoPC compatible digital camera.
MAX_Scanner
Standard version
Basic scanner interface.
Uses the Wang/Kodak ActiveX control to control Twain compatible scanners.
The Wang/Kodak ActiveX control is supplied with Micosoft Windows.
MAX_WinLIRC
Standard version and Unicode version
Plugin for receiving WinLIRC commands.
Control the slideshow with a standard infra-red remote control and a WinLIRC compatible device.
   More info on LIRC (Linux Infrared Remote Control).
   More info on WinLIRC (port for Windows of the above).
Can also be used with the MyAlbum Viewer.
MAX_JPSView  
Standard version and Unicode version
Plugin for viewing stereoscopic JPS files.
Use this plugin to view JPS files (JPS are Stereo JPEG files with both the left and the right pictures stored in the same file) with MyAlbum. Viewing can be done in parallel, cross-eyes or with anaglyph (red-cyan or blue-yellow) glasses.
A set of keyboard shortcuts can be defined to easily change the viewing method or to exchange the left and right picture without leaving the full-screen display.
Can also be used with the MyAlbum Viewer.
See the 3D page for more explanations.

Utilities
TheScroller

TheScroller is a small application that will scroll a very wide picture (panorama) back and forth.
TheScroller is a VisualBasic application that uses MyAlbum for displaying a panorama picture. The picture is chosen from an album and will be displayed full screen scrolling from left to right and back with a selectable speed. The application will need the Microsoft VisualBasic 6 runtime to execute (you can download it at the Microsoft web site).
Sources included.
MyAlbumInfo

Infotip shell extension for the album files.
MyAlbumInfo will display a quick description of an MyAlbum album file when, in the Microsoft Windows Explorer, the mouse is placed over the file.
ATI Remote Wonder™ plugin      Visit the ATI web site for more info on this remote control.

Use the ATI Remote Wonder™ remote control with MyAlbum.
Control the MyAlbum slideshow with this wireless remote control.
Most of the keys of the remote control can be mapped to a standard or user-defined MyAlbum functions.

Scripts
You have written some useful scripts, why not share them with other users?
, I'll add them to this list.


Scripts are grouped in categories, to download a script, right-click its name and choose "Save target as" in the pop-up menu.
Alternatively, you can download the whole collection in zip format by clicking this link.
AlbumScripts manipulating an album and its pictures.
AlbumsScripts manipulating a set of albums.
DemoScripts often without practical use but useful for understanding the object model and building other scripts.
ExternalScripts using external applications or modules
FilesScript dealing with files.
MiscMiscelaneous scripts.
PictureScripts manipulating pictures (or dealing with pictures).
StereoScripts related to stereophotography (and panorama too).
VideoScripts dealing with video files or sound.
WebScripts related to the Internet (Web, mail,…).

Denotes new or updated scripts.
Script written in VBScript.
Script written in JavaScript / JScript / ECMAScript.
Script written in Perl / PerlScript.
Script written in Python.
Script written in Ruby.


Album
Scripts manipulating an album and its pictures.

AddAudioFile.vbs Scan the current album and add wav audio files that match (in a specified sub-folder) the picture names.
AlbFile.vbs Displays the current album file name.
AlbTitlePic.vbs This script takes the current picture and generates a new one as Title Page with:
- a (green) border according number of pixel (0)
- 3 blocks of text in (blue) color are printed
  - the album title - 1 line of text in the upper half (48) pixel
  - the album copyright info - up to 8 lines of text in the middle (36) pixel
  - an album subComment - 1 line of text in the lower half (28) pixel; options are:
    - the album comment
    - the album creation date
- the text blocks are separated by a gap of (40) pixel
- the filename is derived from the original picture with "_tit" appended
- and will be moved to the first position of the album
- all values in (..) can be adjusted according the personal preferences
Written by Diedrich Hesmer

AutoTab.vbs This script analyses the current album and create a keyword tab for every folder a picture is found in.
ChangeSpeed Before the 2.0 version, you cannot set a different delay for each picture, the delay you specify in the "Album Info" dialog box will be for all the pictures in the album. However, you can modify the delay on the fly with the following Play Command:
   script|app.GetCurrentAlbum().nDelaySlideshow=100|-|2
will set the delay to 10 seconds for the next pictures.

CopyCF.vbs
Advance to the next picture and copy keywords and custom fields from previous picture.
Export2PowerPoint.vbs This script exports the current album as a Microsoft PowerPoint presentation.
Export2ProShow.vbs
This script exports the current album as a Photodex Proshow Gold slideshow.
Tested with Proshow Gold 1.2

FlagPicturesWithoutComment.vbs Flag all the pictures in the current album that have en empty comment.
The flag is also cleared for the pictures with comment defined.

GetCreationDate.vbs MyAlbum is normally using the "last modified date" of the pictures but some users may want to have access to the "creation date" of the files.
This script will retrieve the creation date & time of the picture and store it in two Custom Fields.
Add to the album two custom fields:
- CreationDate of type Date
- CreationTime of type Time

ListFileDates.vbs This script will list for each picture of the current album the different dates:
- date stored in the album (normally the same as the last modified date),
- date the file was created,
- date the file was last modified,
- date the file was last accessed.

ListPictureDelay.py List for each picture in the album its display time (Python).
LoadListFileToAlbum.vbs Build an album from a text file listing the pictures to add.
LoadListFileToAlbum2.vbs
Build an album from a text file listing the pictures to add.
The text file contains the list of the picture to load in the current album, one per line.

MoveFlaggedPicHere.vbs Move all the flagged pictures after the current picture.
The flags are erased and the moved pictures are selected.

PictureDelay.pls List for each picture in the album its display time
or
Reset the display time for all the pictures in the album

PictureDelay.vbs List for each picture in the album its display time
or
Reset the display time for all the pictures in the album.

PicWithoutKW.vbs This script selects the pictures in the current album that have no keyword assigned.
RenameToDate.js Rename all selected pictures to the Custom Fields date and time filled from the EXIF header (YYYY.MM.DD-HH.MM.SS.xxx),
Thanks to Gottfried Koschel.

SaveLoadComments.vbs This script can export all the comments associated to the pictures of the current album in a text file.
It can also reload the comments from the file and assign them to the pictures of the current album (comment are assigned to pictures having the same filename).

ScriptDisplayString.js This script is an example of user defined Display String generation.
The use the macro code %SF will call a function with the following parameters:
- zAlb: a reference to the current album (an "Album" object),
- zPic: a reference to the current picture (a "Picture" object).
- zInfo: integer value (unused, reserved for future use).
The function MUST return a string containing the generated text.
Note: loading and executing a script function can be slow, this macro should be used for Display Strings used for printing and HTML generation rather than screen display.
This example computes the amount of megapixel the picture contains.
The %SF macro needs two parameters: the script file (use a complete path) and the name of the function to call:
%SF["ScriptDisplayString.vbs",MegaPixels]

ScriptDisplayString.pls This script is an example of user defined Display String generation.
The use the macro code %SF will call a function with the following parameters:
- zAlb: a reference to the current album (an "Album" object),
- zPic: a reference to the current picture (a "Picture" object).
- zInfo: integer value (unused, reserved for future use).
The function MUST return a string containing the generated text.
Note: loading and executing a script function can be slow, this macro should be used for Display Strings used for printing and HTML generation rather than screen display.
This example computes the amount of megapixel the picture contains.
The %SF macro needs two parameters: the script file (use a complete path) and the name of the function to call:
%SF["ScriptDisplayString.vbs",MegaPixels]

ScriptDisplayString.rb This script is an example of user defined Display String generation.
The use the macro code %SF will call a function with the following parameters:
- zAlb: a reference to the current album (an "Album" object)
- zPic: a reference to the current picture (a "Picture" object).
- zInfo: integer value (unused, reserved for future use).
Note: loading and executing a script function can be slow, this macro should be used for Display Strings used for printing and HTML generation rather than screen display.
This example computes the amount of megapixel the picture contains.
The %SF macro needs two parameters: the script file (use a complete path) and the name of the function to call:
%SF["ScriptDisplayString.rb",MegaPixels]

ScriptDisplayString.vbs This script is an example of user defined Display String generation.
The use the macro code %SF will call a function with the following parameters:
- zAlb: a reference to the current album (an "Album" object),
- zPic: a reference to the current picture (a "Picture" object).
- zInfo: integer value (unused, reserved for future use).
The function MUST return a string containing the generated text.
Note: loading and executing a script function can be slow, this macro should be used for Display Strings used for printing and HTML generation rather than screen display.
This example computes the amount of megapixel the picture contains.
The %SF macro needs two parameters: the script file (use a complete path) and the name of the function to call:
%SF["ScriptDisplayString.vbs",MegaPixels]

SetCommentOnSelectedPictures.vbs Set the comment of all the selected pictures in the current album to a given text.
SetPhotographer.vbs This script will scan the current album and will set the "Photographer" custom field to a predefined string if the field is not already defined.
SlideshowTimer.vbs This script allows you to easily time your slideshow by assigning to each picture a different display time.
Assign this script to a keyboard shortcut (say Ctrl+U).
Select the first picture and press Ctrl+U, the slideshow will start, to move to the next picture, press again Ctrl+U, the time the picture has been displayed will then be recorded.

SortOnCFDate.vbs Sort the current album. The 'Date' and 'Time' Custom Fields are used to sort pictures.
Usefull for sorting pictures taken by a digital camera using the true date/time the picture was taken.

SortOnCFDateFr.vbs Tri d'un album : Les champs personnalisés Date et Heure sont utilisés pour le tri.
SortOnCFs.vbs
Sort the current album using two Custom Fields.
SortOnCreationDate.vbs Sort the current album using the CreationDate of the files.
SortOnKeyword.vbs Sort the keywords in the current album (thanks to Chris A Harris)
StorePositionInCF.vbs This script will store for all the pictures in the current album the picture position (from the start of the album) in a Custom Field named "Position".
SwapCustomFields.vbs
Swap the values of two string custom fields for the pictures of the current album.


Albums
Scripts manipulating a set of albums.

AssignPictureToAlbum.vbs This script is for sorting pictures stored in an album by moving picture to one album in a set of target albums.
Assign the script to Ctrl key + 0-9 keys on the numerical keypad.
Pressing one of these shortcuts will move the current picture to the corresponding target album and will also move the picture file to the album folder.

CopyComents.vbs
Copy picture comments from one album to another. Two albums must be open in MyAlbum.
The script will check each picture in the first album: if the picture comment is empty, check if the picture is present also in the second album and gets its comment.

linkAlbum.vbs Sample script to load an album from the script associated to a picture to make a continuous slideshow between two albums.
MergeAlbums.vbs Merges two albums.
All the selected pictures from one album are copied to the second.
Picture comment, keywords and custom fields are preserved.

MergeAlbumsXML.vbs Merges two albums using XML export/import methods.
All the selelected pictures from one album are copied to the second.
Picture comment, keywords and custom fields are preserved.

nbAlbum.vbs Lists the albums that are currently open in MyAlbum.
SearchInAlbums.vbs This VBScript searches for a string in the albums in the current album.
The current album should contain other albums, each of these albums is opened and the specified string is searched in the comments of the pictures the album contains. The comparison is case sensitive.



Demo
Scripts often without practical use but useful for understanding the object model and building other scripts.

99Beer.js The classic "99 Bottles of Beer on the Wall" program in JavaScript for MyAlbum.
99Beer.rb 99 Bottles of beer, in Ruby
by Nathan Ricci, May 1, 2002 (adapted for MyAlbum)
See www.rubycentral.com for info on the language.

99Beers.pls The classic "99 Bottles of Beer on the Wall" program in Perl for MyAlbum.
99Beers.py The classic "99 Bottles of Beer on the Wall" program in Python for MyAlbum.
ChangeDisk.vbs Shows how to change the access path to the picture (here changing drive C: to D:)
ClearVideo.vbs Clear the Video flag in the picture status.
CvtName.vbs Convert the filenames of the pictures.
Set all the names to .jpg (why did I wrote this script ???)

DemoJScript.js Simple JScript script for MyAlbum: Get the current album, list all pictures and select them
DemoPerlScript.pls Simple PerlScript script for MyAlbum : Get the current album, list all pictures and select them
DemoPythonScript.py Simple Python script for MyAlbum : Get the current album, list all pictures and select them
DemoVBScript.vbs Simple VBScript script for MyAlbum: Get the current album, list all pictures and select them.
DemoVBScript2.vbs Another simple demo.
DemoVBScript3.vbs Another example.
DemoVBScript4.vbs Another simple demo.
Fix_CFDateTime.vbs
This script was used to fix incorrect date & times stored in an album.
ListCFDateTime.vbs
Simply list the Date and Time custom fields for the pictures of the current album.
RenameFile.vbs Test for copying and renaming a picture.
SaveAndLoadKw.vbs Save the keywords to a text file. Create a new album. Add the keywords by reading back the generated text file.
ShellObject.vbs How to use the Shell object. Recursively browses the specified drive.
TestCaptureScreen.vbs Test for the CaptureScreen method. Get a rectangle from the screen and paste it to a new picture in the current album.
TestDateAlbum.vbs Demo on the reading and modification of the album creation and modification dates.
TestDateTime.vbs Playing with date and time.
TestDB.vbs Sample script to show how to read and write data to a external database.
TestDeleteKW.vbs Example on how to delete a keyword or a custom field from an album.
TestGetFilename.vbs Just a demo of the use of the GetFilename method (MyAlbum 2.2)
TestHTMLDialog.vbs Test of the HTML Dialog (IE4 must be installed).
TestMargin.vbs Example on how to adjust the margin size (space between the thumbnails)
TestNewTrace.vbs This script demonstrates the new parameters for the app.Trace method for MyAlbum 2.3
Text color can be selected and an icon can be placed at the begining of each line.
The script lists the available icons.

TestShuffleSlideshow.vbs
Script written to check that in Shuffle slideshow mode, all the pictures are displayed.
TestSlideshow.vbs Starting a slideshow with a script.
TestStamp.vbs Test script for "stamping" pictures.
TestWIA.vbs Some tests with the WIA API of Windows ME/XP…
TestWIA_TakePicture.vbs
Some more tests with the WIA interface…
TestWIA2.vbs
Some more tests with the WIA interface…


External
Scripts using external applications or modules

EditPicture.vbs
Starting the editor from a script.
ImportFromExcel.vbs
Import a list of picture from a Microsoft Excel sheet.
In this demo, the Excel sheet is assumed to have a header line with the following columns:
   File name, Size, Quality, Comment, City/State
The file name is just the base file name of the picture, pictures are assumed to be located in the sBaseFolder folder.

Import-LivingAlbum2000.vbs This script can import albums created with Club Photo's Living Album 2000.
(http://www.clubphoto.com/tools/la_soft.php)
Pages are converted in MyAlbum as tabs (keywords with the Tab option).
The following data is imported:
- Photo caption --> First line of comment
- Photo description --> Appended to the caption in the comment
- Date Taken --> Date custom field
- Place Taken --> Place custom field
- Photo Web Url --> URL field
- Marked --> Flagged/Marked flag
- Linked sound --> Play command
Note: The Photo description is a RTF string, we are using Microsoft Word (if installed) to convert it to plain text for MyAlbum.

MyAlbumExternal.vbs This script shows how to call MyAlbum from the "outside" (i.e. from another application or the script host for instance).
Command: cscript MyAlbumExternal.vbs

PhotoPC.vbs Demo of the PhotoPC MAX extension. Takes 3 photos and adds them to the current album.
PhotoPCGetPictures.vbs Demo of the PhotoPC MAX extension. Downloads all the pictures of the camera and add them to the current album.
RotatePic.vbs This script will rotate the selected pictures 90° clockwise.
These pictures must be JPEG pictures.
You must install the jpegtran program first.
Please make a backup of your pictures first as they will be replaced,



Files
Script dealing with files.

BatchResize.vbs Peter Gordon
ChangeFileForThumbnail.vbs Use this script to relink a thumbnail to a specific file (for instance in the case the file has been renamed outside of MyAlbum.
Needs MyAlbum 2.2

DeleteFlaggedFiles.vbs Peter Gordon
GetMavicaPictures.vbs This script will scan a source folder (a floppy for instance) and move the found pictures (*.jpg files) to the hard disk.
The pictures will be renamed using the date of the file :
[mm_dd_yy][hh_mn_ss].jpg
Change the value of the "sTargetFolder" constant to the full path of the target folder (this folder must exist).

Rename_JPG_to_jpg.vbs This script will rename the JPEG pictures that have an uppercase suffix to a lowercase one.
The file is renamed on the disk and in the album.

TransfertPictures.vbs
This script will transfert pictures and videos from a digital camera.
A dialog box asks the user to select a camera. If you are always using the same camera you can select it by its ID. Replace the first "Const" with the actual value for your camera.
The user is prompted for a target folder and the pictures are copied there.
Optionnaly the pictures can be automatically erased from the cameras (set the "bDeletePicAfterTransfer" constant to "True", not all cameras support this).
Note: Windows XP SP1 needed and the WIAAut.dll DLL is required (to use the WIA Automation Layer), see:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wiaaut/wia/wiax/overviews/gettingstartedsamples.asp



Misc
Miscelaneous scripts.

AddCustomTool.vbs This script shows how to create "custom tools" from a script.
Three custom tools are created using VBScript, JavaScript and Perl (if installed as first additional script engine) with the following shortcuts: Ctrl+B, Ctrl+C and Ctrl+E.
The user is then prompted if he want to keep them or remove them.

ChangeType.vbs Change the type of the current picture. A dialog box helps selecting the proper type.
Thanks to …

CloseMyAlbum.vbs This script is for closing MyAlbum from a slideshow on the last picture.
Use this script so MyAlbum exits when the last picture is displayed,

CopyCFields.vbs Advance to the next picture and copy keywords and custom fields from previous picture.
Usefull when assigned to a keyboard shortcut.

CopyPicPathname.vbs
This script copies the full pathname of the current picture to the Windows clipboard.
Usefull when associated to a keyboard shortcut.

CountSelPics.vbs Count the selected pictures and displays the result on the status bar.
DuplicatePic.vbs Takes the first picture in the album and duplicates it 20 times in the same album.
FindOrphans.vbs Select the thumbnails that don't link to a picture.
GetSetDateFormat.vbs
Accessing the Windows registry to read/write the MyAlbum date format setting.
HideShowPic.vbs Hide or Show the current picture.
HideStatusbar.vbs Shows how to hide the MyAlbum status bar and the re-bar.
ListAlbum.js This is a simple album lister in JavaScript.
Builds a text file containing the listing of album and displays it when finished.

PictureScript.vbs Example of a picture-level script. When run, it will hide the picture comment displayed in full-screen mode.
RegisterTypeLibrary.vbs Run this script to register the MyAlbum TypeLibrary file (MyAlbum.tlb) in case the type library has not been registered correctly.
With the type library registered, the MyAlbum constants can be used in a script.

StartSlideshow.vbs Start a slideshow from a script.
Send a message directly to the MyAlbum main window to start a slideshow of the selected pictures.
Use the other constants for the other slideshow types.

TestRelPath.vbs Lists for each picture its original path and relative path.
TestXMLExport.vbs This script shows how to use the xmlEncode and xmlDecodePicture methods.


Picture
Scripts manipulating pictures (or dealing with pictures).

35mmFilm.vbs
Builds a fake 35mm film strip by pasting the selected pictures on the strip.
This script tries to create a realistic looking 35mm film strip with accurate dimensions and markings (frame number, film maker name,...).
If you own a digital camera and are nostalgic of "old" film cameras, this script for you!
Examples:
   - Digital film strip
   - Make people believe you own an expensive panoramic camera!

AnnotatePic.vbs Create an annotated picture:
This script takes the current picture and generates a new one with:
- a green border: small on the top, left and right, large at the bottom
- the comment of the picture is printed on the large bottom border
- its name is derived from the original picture with "_cmt" appended.

ApplyGrayscaleMask.vbs This script applies a grayscale mask on the selected pictures.
The mask is a gray scale image that indicate how the origibnal image should be masked: white pixels will let the color go thru the mask and the black ones will block the color. Gray pixel will let pass a fraction of the color intensity depending on the intensity of the gray pixel.
Only pictures and masks with at least 256 colors can be used.
Masked picture are saved as JPEG files with a name combining the name of the original picture and the name of the mask.
Sample grayscale masks can be found at: http://graphicssoft.about.com/library/free/blfree_frames.htm

CopyRcCrop.vbs Advance to the next picture and copy the cropping rectangle from previous picture
CropPic.vbs Crop the selected picture to the specified rectangle.
FindDateInRange.vbs
This script will ask the user for a date (e.g. 2/22/03), range of days (e.g. 4) and will select all photos in the album that fall within that range.
FontSampler.vbs This script creates pictures showing a demo text written using the specified fonts.
(if anyone knows how to find all the available fonts installed on the computer from a script, please let me know!).
Each picture:
- has a grey background
- the text is written using style (size, weight,...) specified in the fontStyle constant
- its name is built after the name of the font and saved in a PNG file.

IncreaseColors.vbs Takes the selected pictures from the album (B&W or low-color pictures) and save them in new full-color BMP files.
InfoBox.vbs Displays a message box containing the title and full comment of the selected picture.
Once in place, this script can be activated either manually by a function key assigned in Tools/Customize menu, or automatically
via the Play field in Picture Information (F7)
Thanks to Edward Bean.

ListIPTCInfo.pls
This script lists the defined IPTC fields stored in JPEG pictures.
It uses the IPTCInfo package from Josh Carter that can be downloaded from http://multipart-mixed.com/photo/iptc.html
Note: Only the selected pictures are listed and the listing shows only the most common IPTC fields.

MergePictures.vbs This script will "merge" the two selected pictures in the current album to generate a new one.
The merge is done by taking, for each pixel, the max intensity of the R, G, and B component of the two pictures.
Note: the two pictures to be merge must have the same size.

Paste2Th.vbs Replace the thumbnail of the current picture with the content of the Windows clipboard.
PrintAlbum.vbs Get the current album, print all pictures. Print one tab at a time. (thanks to Chris A Harris)
RecordSound.vbs Record a wav sound file with the same name as the current picture.
SaveThumbnails.vbs Create thumbnail files that look like the thumbnails in MyAlbum.
This script will process all the selected pictures and will create a 3D looking thumbmnail file with a reduced picture in it a caption below.

SetFPXR.vbs This script will check each picture in the current album to see if it has an embedded sound (fpxr extension).
If so, the Play Command of the picture is set to "fpxr" so the sound will be played when the picture is displayed.

SetKeyword.vbs Assign a keyword to the selected pictures.
SetPictureDelay.vbs Set the "picture level" delay of the current picture to a specified value.
SetTypeHTML.vbs Set the current picture to the 'HTML' type. By setting the picture type to HTML, you instruct MyAlbum to use Microsoft
Internet Explorer to view the file. With the proper plugins installed you will
then be able to view Adobe Acrobat (pdf) files, Macromedia Shockwave Flash (swf)
animations and many other files without leaving MyAlbum!

SimpleContactSheet.vbs This script shows how to generate "by hand" a contact sheet in VBScript.
It will generate contact sheets from the set of selected pictures.
Modify the first block of const(ants) to adapt the contact sheets to your needs.
The contact sheet can have a plain color background or a textured one using a bitmap file to tile the background.
A fading effect can be applied on the edges of the thumbnails (MyAlbum 2.1).
Note: this script is constantly using the Clipboard for the temporary pictures, so use of the clipboard should be avoided while the script is running.
See an example of generated contact-sheet: CS_Sample.jpg (160 KB).

SmoothZoom.vbs This script allows fine zooming of a picture.
It should be assigned to the + and - keys on the numerical keypad.
The pressed key is tested in the script, so one script is sufficient for both zoom in and zoom out.

TestCreatePic.vbs Test creating a picture.
This demo takes the current picture and generates a new one with:
- a green border: small on the top, left and right, large at the bottom
- the comment of the picture is printed on the large bottom border
- its name.

WIA_PrintPic.vbs
This scritp uses the WIA interface for printing the currently selected pictures.
The standard Photo Printing Wizard will show up to allow you to select the printer, the page layout and start the printing.
Note: Windows XP SP1 or better required.

WordSpellCheck.vbs Uses Microsoft Word to spell-check a picture comment.
Code adapted from Microsoft Product Support Service.



Stereo
Scripts related to stereophotography (and panorama too).

Add_JPS_Shortcuts.vbs
This script will create keyboard shortcuts for easily controlling the MAX_JPSView extension.
Press the Ctrl key and one of number key on the top of the keyboards
  Ctrl-0 display the pictures side by side.
  Ctrl-1 display only one picture.
  Ctrl-2 display the pictures one on the top of the other (KMQ, over/under).
  Ctrl-4 cycle between color anaglyph and B&W anaglyph (for red-cyan glasses).
  Ctrl-5 swap left and right pictures.
  Ctrl-6 mirror the first picture.
  Ctrl-7 mirror the second picture.
  Ctrl-8 display a horizontaly interlaced image (should be used with zoom 1:1).
  Ctrl-9 back to the default setting (no mirror, no swap, side by side).

ChangeJPSMax.vbs
This script is used to control from the keyboard the MAX_JPSView extension.
Define shortcuts to this script for the keys: Ctrl+0 to Ctrl+9

CreateStereoPair.vbs This script will create a stereo pair picture using the two selected pictures.
The pair can be generated for parallel or crossed eyes viewing.
Note: the two pictures must have the same size.

JoinPictures2.vbs
This script will join two pictures by placing them side-by-side (either horizontally or vertically). Parallel viewing is assumed (left picture on the left, or top).
It will create a joint picture for each of the selected pairs of pictures in the current album.

JoinPicturesFr.vbs
Ce script permet de joindre deux images en une seule en les plaçant côte-à-côte (soit horizontalement soit verticalement). Les vues sont supposées être rangées dans l'album dans l'ordre : image gauche puis image droite.
Il est possible de générer des couples pour vision parallèle, vision croisée, haut- bas (ViewMagic par exemple) ou appliquer un effet mirroir sur les images (si un mirroir est utilisé pour la visualisation par exemple).
Une image jointe sera créée pour chaque couple d'images sélectionnées dans l'album courant.

JoinPicturesFrSBee.vbs
Ce script permet de joindre deux images en une seule en les plaçant côte-à-côte (soit horizontalement soit verticalement). Les vues sont supposées être rangées dans l'album dans l'ordre : image gauche puis image droite.
Il est possible de générer des couples pour vision parallèle, vision croisée, haut-bas (ViewMagic par exemple) ou appliquer un effet mirroir sur les images (si un mirroir est utilisé pour la visualisation par exemple).
Une image jointe sera créée pour chaque couple d'images sélectionnées dans l'album courant.
Il est possible de spécifier un décallage pour l'image droit, indiquer ce décallage dans une Champ Personnalisé appelé 'Offset' :
Exemple: Offset: 10,-15
(ce qui veut dire que l'image droite doit être décallée vers la droite de 10 pixels et vers le haut de 15 pixels).
Version pour StereoBee (visualisateur java de AnaBuilder http://anabuilder.free.fr)

jps2stereoview.vbs
Create an stereocard from a JPS or jpeg crossview format file.
This script takes the current picture and generates a new one with:
  - left and right images are arranged to print the stereocard
  - the comment of the picture is printed on the picture
  - its name is derived from the original picture with stereocard type appended.
Supported stereocard formats:
  - new Holmes (Thorpe standard)
  - new Holmes cabinet (Thorpe standard)
  - thorpe 6x13 (Thorpe standard)
  - classic Holmes stereocard
  - 6x13 eurocard
Author: Jose Carlos Fernandez (josecarlosfernandez@terra.es)
http://www.geocities.com/josecarlosfernandez

MakeAnaglyph.vbs Now obsolete, use MakeAnaglyph2.vbs instead.
This script will build anaglyph 3D pictures from a pair of left and right pictures.
It will create an anaglyph for each of the selected pairs of pictures in the current album.
Three types of anaglyph can be generated:
- B&W anaglyph to be used with Red and Green glasses,
- B&W anaglyph to be used with Red and Blue glasses,
- Pseudo-color anaglyph to be used with Red and Cyan glasses.
Change the value of the "nAnaType" variable to generate the wanted type.
The right image can have an offset, specify it in Custom Field named Offset:
Example: Offset: 10, -10
Note that the script can be VERY SLOW (vbscript is an interpreted language) on large pictures. It will take about 22 seconds for two 1024x768 pictures and 2'20 for two 5 megapixel pictures (P4 @ 2.4 GHz).

MakeAnaglyph2.vbs This script will build anaglyph 3D pictures from a pair of left and right pictures.
It will create an anaglyph for each of the selected pairs of pictures in the current album.
The following types of anaglyph can be generated:
- B&W anaglyph to be used with Red and Green glasses,
- B&W anaglyph to be used with Red and Blue glasses,
- Pseudo-color anaglyph to be used with Red and Cyan glasses.
- Interlaced picture to be used with LCD shutter glasses.

Mire3D.vbs
Ce script créé une mire d'alignement pour la projection stéréo avec deux projecteurs.
La mire est composée de deux images de 1024x768 placées côte-à-côte en vision croisée et comporte les éléments suivants:
  - Grand rectangle pour les réglages de taille et de déformation (trapézoïde,...)
  - Croix centrale pour l'alignement
  - Echelle de chiffres en profondeur décroissante.
  - Grandes lettres G et D pour bien différencier les deux projecteurs.
  - Optionnellement une échelle de gris pour les réglages contraste et luminosité (ce dégradé est très long à tracer !).
Makes an alignment picture used to setup a stereo projection with 2 projectors.

PanoramaApplet.vbs This script will build a web page for viewing panorama pictures using the ptviewer Java Applet from Professor Helmut Dersch (www.fh-furtwangen.de/~dersch/).
Download first the applet from ... site.

RenameStereoPairs.vbs Rename all selected pictures as stereo pairs (assuming that the set of selected pictures contains, alternatively, left and right pictures).
The user is asked for a base name and the pictures will be renamed as follow:
_L. and _R.

SplitBeamSplitterPair.vbs This script will split a stereo pair picture in a Left and a Right picture.
The pair is a photo taken with my beam-splitter that left a wide black band in the middle of the picture.
Parallel viewing is assumed when naming the left and right pictures.

SplitStereoPair.vbs This script will split a stereo pair picture in a Left and a Right picture.
The pair will be cut in the middle of the picture.
Parallel viewing is assumed when naming the left and right pictures.

StackPicPano.vbs
I needed a picture showing how a stereo panoramic picture can be produce by the frames taken by a rotating camera. So I wrote this script that process a panoramic picture to build a picture showing a stack of frames.
Start_StereoPhotoMaker.vbs
This script will launch the StereoPhoto Maker application.
Two methods are used:
- if only one picture is selected, it is assume that this picture is the left one and the next is the right picture. Offset information is written back in the "Offset" Custom Field of the right picture allowing the alignment done in StereoPhoto Maker to be stored in the album.
- if more than two pictures are selected, a slideshow script is created with all the pairs of defined pictures and StereoPhoto Maker is started with this script.
Download StereoPhoto Maker at http://stereo.jpn.org/eng.

Start_StereoscopicPlayer.vbs
Use this script to start the Stereoscopic Player from MyAlbum.
The Stereoscopic Player is a free (for non-commercial use) player by Peter Wimmer for displaying stereoscopic videos. It can be found at:
http://mitglied.lycos.de/stereo3d

Start_StereoView.vbs
This script will launch the StereoVue*|*3D / StereoView application.
Select the first picture of the pair (the left one) and start the script. StereoVue will start and load the left and right pictures.
Offset information is written back in the "Offset" Custom Field of the right picture allowing the alignment done in StereoVue to be stored in the album.
StereoVue is available at: http://ggrillot.free.fr/stereovue

StartStereoscopeApplet.vbs This script will launch the Stereoscope Java Applet on the current picture (assuming it contains both left and right view).
The Stereoscope Java Applet from Andreas Petersik (http://www.stereofoto.de/sapplet/) is a very cool applet for viewing stereo pictures.
Download it first from Andreas Petersik's site.

StereoContactSheet.vbs
This script shows how to generate "by hand" a contact sheet in VBScript.
This version of the script generate stereo 3D contact sheets that can be used with the StereoBee applet by Etienne Monneret (part of the AnaBuilder package (http://anabuilder.free.fr)).
It will generate contact sheets from the set of selected pictures.
Modify the first block of const(ants) to adapt the contact sheets to your needs.
The contact sheet can have a plain color background or a textured one using a bitmap file to tile the background.
A fading effect can be applied on the edges of the thumbnails.
Note: this script is constantly using the Clipboard for the temporary pictures, so use of the clipboard should be avoided while the script is running.
Updated: Each thumbnail can receive a sequence number in the upper-left corner.
See: http://perso.wanadoo.fr/myalbum/3D/Photos for a gallery built with this script.

StereoPages.vbs
This script will build a web gallery for viewing stereo photographs using the Stereoscope Java Applet from Andreas Petersik (http://www.stereofoto.de/sapplet/).
Select pairs of L/R pictures in the album and launch the script.
The resulting gallery is segmented in pages based on the values of the "pageField" Custom Field (that is pictures having the same pageField will appear in the same page in the gallery).
The html page is a two-frame page with the left frame used to select the pages.
Download first the applet from Andreas Petersik's site.
Modify the values in the block of const(ants) to suits your configuration and needs.
See: http://perso.wanadoo.fr/myalbum/3D for a gallery built with this script.

StereoscopeApplet.vbs This script will build a web page for viewing stereo photographs using the Stereoscope Java Applet from Andreas Petersik,
Select pairs of L/R pictures in the album and launch the script.
Download first the applet from Andreas Petersik's site.
Modify the values in the block of const(ants) to suits your configuration and needs.

Titler3D.vbs
Use this script to build 3D stereo title pages for your slideshow.
Build a crossed-view double picture (default is 2XGA 2048x768) and put lines of text on it. The resulting picture is added to the current album.
Modify / delete / add "DrawLine" line to draw your own text.
Syntax :
   DrawLine nLine, sText, sFont, cColor, n3D, nShadow
with:
    nLine : vertical position in % of the picture height
    sText : text to print (centered by default)
    sFont : specifies the font to use
    cColor : RGB color of the text
    n3D : 3D effect (depth positionning of the text)
    nShadow : offset of the text shadow (0 = no shadow)
A background picture can also be used to tile the background of the picture: define the "bgPicFile" constant with the name of the background picture to use.

Titreur3D.vbs
Creation d'une page de titre stéréo 3D pour vos diaporama.
Crée une double image en vision croisée (par défaut 2XGA 2048x768) et place des ligne de texte dessus. L'image résultante est ajoutée à l'album courant.
Modifier/ajouter des lignes "DrawLine" pour dessiner votre texte.
Syntaxe :
  DrawLine nLine, sText, sFont, cColor, n3D, nShadow
avec :
    nLine : position verticale en % de la hauteur de l'image
    sText : texte à imprimer (centré par défaut)
    sFont : descriptif de la police à utiliser
    cColor : couleur RGB du texte
    n3D : effet 3D (positionnement en profondeur du texte)
    nShadow : décallage de l'ombre du texte (0 = pas d'ombrage)
On peut également utiliser une image pour "paver" le fond de l'image : définir la constante "bgPicFile" avec le nom de l'image de fond à utiliser.

TransfertStereoPic.vbs
This script will transfert pictures and video from a pair of digital cameras.
When connected to the computer each camera has a unique ID that the script is using to distinguish the left camera from the right camera. Replace the two first "Const" with the actual values for your cameras.
To determine the ID, plug the cameras and run the script once. You should get a message saying "Number of camera(s) found = 2". If not check the connexions ant the cameras settings. If ok, you will see two lines with the ID at the end. Copy the ID in the script for the left and right camera IDs.
The user is prompted for a target folder and the pictures are copied there appending a _L or _R to the filenames. The script will also try to place the right picture after the left one in the album (or the left before the right one) by trying to locate a picture in the album with the same number (so the two cameras should be in sync when numbering their pictures).
Optionnaly the pictures can be automatically erased from the cameras (set the "bDeletePicAfterTransfer" constant to "True".

Notes:
1) Windows XP SP1 needed and the WIAAut.dll DLL is required (to use the WIA Automation Layer), see:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wiaaut/wia/wiax/overviews/gettingstartedsamples.asp
2) Some cameras have to be set in the USB / PTP mode (see your camera manual).
3) To have a constant ID, you will generally have to plug each camera in the same USB port each time.
4) All camera do not support deleting the pictures inside the camera, you will get a warning message and will have to erase the picture from the camera.



Video
Scripts dealing with video files or sound.

BuildVideoTh.vbs This script is used to replace the default thumbnail used for the video files with a screenshot taken from the video.
Associate this script to a keyword shortcut.
When viewing the video, press the shortcut to capture the current video frame (in non DirectShow mode).
It can be also be used from the thumbnail view, to replace the thumbnail of any picture of the album with an arbitrary picture placed on the Windows clipboard.

PlaySound.vbs Test the PlaySound command.
SaveFPXRSound.vbs This script will analyze the selected pictures. If an embedded sound (FPXR extension in JPEG file) is found, the sound is save in a file have the same name as the picture (with a .wav extension).
Usefull for digital cameras that allow sound recording.

VCDbuilder.vbs Build VCD and SVCD with this script!
You will need first to install the free VCDEasy package that can be found at http://www.vcdeasy.org/. Well now, it is not as free as it uses to be, but the "free limited version" is enough for the script ast it uses the FREE tools that are included in VCDEasy: Mjpegtools for MPEG compression and VCDImager for generating the VCD image.
The script will generate BIN/CUE image files that can be burnt to a CD.
You have the choice between VCD 2.0 and SVCD 1.0, both offering 704x576 "high" picture resolution for PAL TV.
The CD can contain only the pictures (that will be played in sequence) or the pictures and a set of menu pages that can be use to easily access a large set of pictures. This menu pages can be built from the Contact Sheet generated by the Tool > Export Album command (or the SimpleContactSheet.vbs script).
Video can be included if they are to a MPEG format suitable for (S)VCD. The album can reference .mpg video files or other video format as long as there is also a MPEG file with the same name (eg: Vid001.avi and Vid001.mpg) in the same folder.
To build a (S)VCD:
- Open your album and select the pictures you want to include on the CD. Note that it must be a bitmap pictures or a video (other formats not supported).
- Create a new empty folder that will be used for the temporary files (for instance d:\tmpVCD). That will be our work folder.
- If you want to have menu pages, build the contact sheets for the selected pictures and save them in the work folder.
- Start the script, a dialog box will open offering some settings:
   . selection between VCD and SVCD.
   . as TV generally do not show the full resolution, you can specify the size of the black margin around each picture.
   . Enter the same number of thumbnails per page as in the generated contact sheets.
The script can take some time to process: convert the pictures and the contact sheets to MPEG, build the XML project file and generate the VCD image files.
The script can be further customized by modifying the first block of constants (and the rest of the code if you want too!).



Web
Scripts related to the Internet (Web, mail,…).

AutoTOC.vbs This script builds a HTML table of content for the current album and place it at the beginning of the album.
HTML_Frames_page_generator with pic sound.vbs A HTML genrator that builds a two-frame page with picture info ind drop-down lists under each thumbnail (version with sound).
Thanks to Phil Morneault.

HTML_Frames_page_generator.vbs A HTML genrator that builds a two-frame page with picture info ind drop-down lists under each thumbnail.
Thanks to Phil Morneault.

HTML-Slideshow.vbs This script generates a slideshow from the current album.
Input fields are time delay in seconds and picture size in Pix. (900 is fine for 1024x768).
Thanks to Karel Sebela

HTML-TIME-Slideshow.vbs This is a HTML slideshow generator written in VBScript.
It generates a slideshow from the selected pictures of the current album.
The HTML code uses the new HTML+TIME (Timed Interactive Multimedia Extensions) so Microsoft Internet Explorer 5.5 or later is needed to view the slideshow.
This script should not be used on large slideshow as IE loads all the pictures in memory…
See the online demo.

JavascriptHTMLSlideshow.vbs This script will generate an HTML slideshow with some javascript code to do the animation.
The generated code uses standard DHTML code and will run under Netscape 6, IE and Konqueror.
The HTML file will be written in the folder where the album file is present.
Note: Pictures are loaded in memory as they are displayed so big slideshows will consume all available memory. So pictures are freed and only the last nbMaxPictureToKeep pictures are kept.

MailPic.vbs Send the selected picture by email. This script uses the mapi setting to send the selected pictures of the current album by email.
Metal_HTML_Generator.vbs This is a HTML generator written in VBScript that build pages having a somewhat "metal" look.
It uses the current album or a user specified album to build a Framed HTML file.
This file processes all the selected pictures.
It cames with a set of graphics use in the generated pages.

QuoteOfTheDay.vbs Will connect on the http://www.quotationspage.com web site and request a list of quotes on a specified key word.
The found quotes are extracted from the return HTML stream and displayed in the trace window.

SelectPicWithURL.vbs Selects the pictures that have an URL field defined.
SimpleHTMLGenerator.vbs This is a simple HTML generator written in VBScript. It uses the current album or a user specified album to build a basic HTML file.
As the HTML file can be very memory consumming, the number of pictures processed is limited to 20.
The pictures are displayed half size.

TestHTTPGet.vbs This script retrieves a simple html page from the web, analyses it looking for <img src=... tags. Pictures are then loaded, saved to disk and added to the current album.
Notes:
- The URL of the "src=" should be relative to the one of the html page.
- The parsing of the html page is very limited in this demo.

TestMapi.vbs Demo on how to send a email with a script
WorldMap.vbs I use this script to put tiny red dots on a world map on the places I have visited.
Along with generating a new picture, an HTML map is built to make the dots clickable in the web browser.
It may not be usable as-is but contains anyway some interresting things:
- Creating and drawing on a new picture, saving it,
- Reading data from an Excel spreadsheet,
- Generating HTML code,…

Xara3D-renderurl.js JScript calling the "Xara 3D Graphics Generator" WebService to generate a 3d caption.
Code based on "renderurl.js" from xara (www.xara.com).
SOAP toolkit runtime needed.

Xara3D-renderurl2.vbs Script calling the "Xara 3D Graphics Generator" WebService to generate 3d captions.
The script retrives from the service the list of avalaible templates and the list of avalaible fonts. It will generate a picture for each template-font couple (that might take a while on a slow Internet connection).
Code based on "renderurl.js" from xara (www.xara.com).
SOAP toolkit runtime needed.


Web design by:
Jean-Luc ARMAGNACQ
Updated: 2004/09/01
Pierre MEINDRE