Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Recipe: Processing each file in a directory with a specific extension
Last updated at 11:04 am UTC on 31 May 2016
Problem
I wanted to import some images of kanji characters, but ones I got off the web had white background (with exception of color words, which had the corresponding color bg). So I wanted to mass convert them to be transparent.

Solution
I ran the following code:
 "read all gif images, make all colors, except black, transparent, open as a SketchMorph - like from FileList menu"
 | slash dir image transparent black dirName |
 slash _ FileDirectory slash.
 black _ Color r:0 g:0 b: 0.
 dirName _ (FileDirectory default pathName), slash, 'kanji', slash, 'matrix_kanji', slash.
 dir _ FileDirectory on: dirName.

 dir fileNames withIndexDo: [:fname :fid | (fname asLowercase endsWith: '.gif')
  ifTrue: [image _ GIFReadWriter formFromFileNamed: dirName, fname.
    transparent _ (image colors select: [:c | c isTransparent]) first.
    image colors withIndexDo: [:c :i |
      (c isTransparent not and: [(c = black) not])
         ifTrue: [image colors at: i put: transparent]].

   World addMorph: (image _ SketchMorph new form: image).
   image position: (fid*10)@(fid*10)]].

Source: Squeak mailing list - Bolot Kerimbaev -
Subject: [GOODIE] selecting multiple morphs, kanji fun
Date: Wed, 17 Nov 1999

See also

Recursively visit sub-directories
Recipe: Doing something with each line in a file