gbCloud
gbCloud is a freeware utility for creating tag clouds, also known as word clouds.
A tag cloud is usually generated from a document by extracting the individual words within
the document and displaying them in a way to emphasize the most frequently used terms in
the document. A typical tag cloud uses word size and color to indicate the frequency of a
word in it's source document.
gbCloud generates tag clouds and provides various placement options (such as random, linear,
or shape-constrained placement), to create a visually attractive display - while allowing the
user to modify size, fonts, colors and other aspects of the tag cloud design. Hyperlinks are
supported.
gbCloud uses a single main screen, toolbar, dropdown menus and context menus to allow the user to define/modify
the tag cloud output. Here are a few examples of the types of tag clouds which may be generated.
Key Features
gbCloud provides a variety of features that allow manipulation of the tag cloud design.
- Random, linear, or mask-constrained word placement
- Manually reposition words (left-mouse drag, arrow keys, context menus)
- Enter words manually, read words from a text file, or drag and drop a file or shortcut
- Gradient, random, full spectrum, or custom color list word color selection
- Random, frequency, and length horizontal word placement
- Select font name, font size range, and bold/italic font styles
- Vertical rotation of words
- Hyperlink support (URls and documents)
- Define minimum word width to be displayed
- Define minimum word frequency to be displayed
- Maximum number of words to display
- Exclude specified words
- User-defined allowable character list
- Background color selection
- Background image, including grayscale display of the image
- Copy cloud image to clipboard or file
Using gbCloud
Using gbCloud couldn't be simpler.
- Add text to the words textbox (from clipboard or text file)
- Press the "Create Cloud" button
That's it. All other features of gbCloud allow you to modify/tweak the way the tag cloud
looks - word positioning, word removal, fonts (font/size/style), colors, placement masks,
background images, and word placement patterns.
Words
gbCloud defines a word as a string consisting of characters from an allowed character list.
A default allowed character list is provided, but may be changed by the user. Several settings
may be used to restrict which words are shown. Words are always displayed as lowercase.
A file (exclude.txt) is used to contain words which may optionally be ignored (not displayed).
The file might contain common words, such as "the", "and", or "for". Or the exclusion list
might include profanity or other words the user chooses to prevent from being displayed.
Three other criteria may be used for restricting the display of words:
- Width - words below a minimum length are not displayed
- Count - maximum number of unique words to display in the cloud
- Frequency - words of a minimum frequency are not displayed.
Word Margin
The gap between words (horizontally and vertically) may be specified. By default,
the horizontal border is 5 pixels and the vertical border is 0 pixels.
Rotation
By default, words are oriented horizontally in a cloud. However,the Allow Rotation option
directs gbCloud to randomly rotate words (+/-90 degrees). When rotation is allowed, approximately
1/3 of all words will be rotated. Rotated words are rotated approximately evenly between
+90 and -90 degrees.
Word TextBox
gbCloud uses the words found in the words textbox, located at the top of the application window.
The words textbox can be filled by typing in the words, by pasting in content, loading the
content of an existing text file, loading default text built into gbCloud, restoring
previously saved content of the words textbox or by dragging/dropping a file or shortcut onto gbCloud.
See the section below on the context menu for the words textbox for more information.
Word Navigation
When the mouse is moved over a word, the word will be underlined. It will stay underlined
until the mouse is moved over another word, until the Patterns toolbar button is pressed,
or until another action is taken to change the word content/positioning.
Also, when the mouse is moved over a word, the word and it's frequency is displayed in the
the statusbar.
Context Menu
Right-click on a word to get the following context menu.
The context menu options affect only the selected word
- Information - popup message with word information
- Set Target - input box for entering a word hyperlink target
- Open Target - opens hyperlink target using the computer's default client
- Clear Target - remove the hyperlink target for the selected word
- Clear All Targets - remove the hyperlink target for all words
- Remove From Cloud - removes word from cloud
- Move Up - move the word position 100 pixels towards the top of the screen
- Move Down - move the word position 100 pixels towards the bottom of the screen
- Move Left - move the word position 100 pixels towards the left side of the screen
- Move Right - move the word position 100 pixels towards the right of the screen
- Change Color - change the color of the selected word
- Change Font Size - change the font size of the selected word
- Rename Word - change the text of the selected word
- Add Similar Word - manually add a word to the cloud
- Remove Rotation - draw word horizontally
- Set Rotate CCW - draw word from bottom of screen to top of screen
- Set Rotate CW - draw word from top of screen to bottom of screen
In addition to moving a word with the arrow keys, you can left-mouse drag a word to a new position.
You can also use the Ctrl-Arrow keys to move word positions just one pixel at a time. This works
only on the currently underlined word. If no word is currently underlined, just run the mouse over
the desired word to underline it.
When using the Add Similar Word command, the new word takes on the color/freq/fontsize of the selected word.
Use the Ctrl-Arrow keys to move the new word to the desired location.
Hyperlinks
As noted above, you can right-mouse click on a word to get a context menu that provide four
hyperlink menu options - set/open/clear/clear all.
A hyperlink can also be opened by double-clicking on a word.
If the hyperlink target is empty, the gbCloud will use the word itself as the hyperlink text.
CAUTION: If you make a change to the word list, then use a gbCloud command that recreates the
cloud using the new list, all hyperlinks will be lost (randomly reassigned).
Locking a Design
gbCloud offers a number of options which automatically set information about a word in the
cloud - which words to show, word position and other properties (size/color/rotation). Some of
the gbCloud commands also allow manually setting some of those properties.
But if the user issues one of the commands which automatically set word information, the manual
changes may be lost. As protection against accidentally making such changes, the toolbar Lock button
is provided. It prevents all automatic commands from affecting the cloud display.
It does not prevent the user from issuing such commands. Rather, it simply locks the word
properties. When Lock is on, if a user issues commands or changes settings which would otherwise
automatically change word properties, the effects of those commands/changes will not be seen until
the user turns Lock off and updates the cloud by issuing any of the commands which automatically
update the cloud design.
When Lock is on, and if a user issues one of the automatic commands, gbCloud will beep twice
(and not update the screen).
Lock does not apply to any manual changes made to a word's properties, such as by using the
commands in the word context menu.
Colors
Word colors are assigned according to one of four color themes:
- Gradient
- Random
- Full Spectrum
- Custom List
With the Gradient color theme, the user selects two colors. Words are then assigned
colors between the two selections according to the frequency of the word.
With the Random color theme, words are simply assigned a random color from all possible
colors.
The Full Spectrum color theme works exactly like the Gradient color theme, except that
the two colors are set to Violet and Red, corresponding to the two colors seen at the
edges of a rainbow.
The Custom List color theme assigns colors to words from a list of ten colors. Default
colors are assigned, but may be overridden by the user using this simple color list
selection dialog.
The user just clicks on one of the colors to open a color selection dialog.
The colors are 1-5 in the first row, and 6-10 in the second row. Words with the
highest frequency get color 1. Words with the lowest frequency get color 10.
Images
The background of a cloud may be chosen as a specific color, or an image may be chosen
for the background. When a background image is shown, it may also be shown as grayscale.
These images show the options:
Images may be *.bmp, *.jpg, *.gif, and *.png.
A background image does not have to match the size of the gbCloud cloud area. The image
will be sized to fit the cloud area. However, to minimize distortion of the image, the
cloud area and background image should have the same aspect ratio.
Fonts
All words in the cloud use the same font type, but words with higher frequency are assigned
larger font sizes - from a range of font sizes selected by the user. By default, the font size
range is 8pt to 48pt.
Font size and word color are both assigned according to a word's frequency.
The user selects a font from this custom Font Selection dialog. Bold/italic styles are set
via the toolbar.
Word Patterns
There are three ways in which words may be positioned in the cloud area:
- Random Positioning
- Mask-Constrained Positioning
- Linear Positioning
These images demonstrate the three options - random, mask-constrained, linear:
When using horizontal (linear) placement, several options are available. By default, words are
randomly selected, then placed left-to-right, wrapping to a new line as words reach the width
of the cloud area.
For horizontal placement, word order may be chosen from three options:
- Random placement
- Longest words first
- Word with highest frequency first
These images demonstrate the three options - random, longest, frequency:
By default, words in a line are aligned along a common center. The user can also select to have words
aligned with a common baseline.
Masks
One of the more interesting features of gbCloud is that you can constrain the placement of
words into specific areas of a cloud, such as in these examples:
In particular, an "exclusion" color can be defined for each cloud design and gbCloud will
not place words within areas of that color. In the two examples above, the exclusion color
is white so words are placed in non-white areas.
The area of exclusion is not a color on the displayed background image, but instead is a color
on a mask which is selected for the cloud design. The exclusion colors is applied to the
cloud design mask, not to the selected background image. gbCloud does allow the mask
to be displayed as the background image, but it is not a requirement, as this next example
shows. Here, both images are constrained to the tree mask, but one uses the mask for a
background images while the other does not.
The gbCloud distribution includes a small set of symbol masks, a few of which are shown
here:
Note that masks do not have to be black on white. The only constraint on colors is that
words in the cloud will not be drawn over the color that is set as the "Mask Exclusion" color.
Also, the exclusion area consist of several different, non-contiguous, areas of the mask.
The size of the map does not have to match the size of the gbCloud cloud area. Whatever
mask image size you provide will be mapped to fit the cloud area. However, to minimize
distortion of the mask effect, the cloud area and mask image should have the same aspect
ratio.
Mask images must be *.bmp files and must be kept in a subfolder "masks" found in the folder
where the gbCloud EXE is placed. Available masks can be viewed in the menu under the
Patterns toolbar button. Compression-based image files such are *.jpg are not suitable for
masks because they may contain interpolated colors within areas that (to the eye) appear to
be a solid color.
Toolbar
Almost all of the commands and settings available in gbCloud are accessed through
the toolbar and the dropdown menu associated with several of the toolbar buttons.
New
Clears the current tag cloud design. First requests user permission. Does not
monitor changes.
Open
Opens a dialog from which to select a gbCloud design file (*.gbc) to open. It
is the user's responsibility to save the current design if desired.
Save
Saves the current design without prompting for user approval.
The following dropdown menu is available:
- Save Cloud As - Opens a dialog for selecting a file name/location where the
current tag cloud design will be saved.
Create Cloud
Press this button to generate a new tag cloud using current settings. For random
and mask placement modes, words will be assigned a new position. For horizontal modes,
words are always placed in the same order.
Patterns
Press this button redraw the current cloud design. Normally, the cloud design automatically
refreshes, so this button should not be necessary.
The following dropdown menu is available:
- Random
Sets the placement mode to random positioning. Words are placed randomly within the
cloud area. In this mode, gbCloud will only display words which will fit in the visible
area of the cloud.
- Horizontal (Frequency)
Sets the placement mode to horizontal display of words. When a cloud is generated, words
will be placed left-to-right in the cloud area, wrapping to a new line as needed. Words
are added in order of highest-to-lowest frequency.
If the Allow Rotation setting is enabled, it is ignored when doing horizontal word placement.
In horizontal placement modes, word placement will continue downwards until all words are
placed, and may results in lines of words that are outside the visible area of the cloud.
- Horizontal (Random)
Sets the placement mode to horizontal display of words. When a cloud is generated, words
will be placed left-to-right in the cloud area, wrapping to a new line as needed. Words
are added in random order.
If the Allow Rotation setting is enabled, it is ignored when doing horizontal word placement.
In horizontal placement modes, word placement will continue downwards until all words are
placed, and may results in lines of words that are outside the visible area of the cloud.
- Horizontal (Length)
Sets the placement mode to horizontal display of words. When a cloud is generated, words
will be placed left-to-right in the cloud area, wrapping to a new line as needed. Words
are added in order of longest-to-shortest word.
If the Allow Rotation setting is enabled, it is ignored when doing horizontal word placement.
In horizontal placement modes, word placement will continue downwards until all words are
placed, and may results in lines of words that are outside the visible area of the cloud.
- Mask
Sets the placement mode to mask constrained placement. When a cloud is generated, words
will be placed randomly within the cloud and within the area which corresponds to the currently selected
mask. The currently selected mask is placed in () on this menu item.
- Select Mask
Provides a dropdown selection list of the masks found in the mask folder.
- Open Mask Folder
Opens Windows Explorer to the mask folder
In this mode, gbCloud will only display words which will fit in the visible area of the cloud.
Words
Press this button to add word frequency to the display. Frequency is displayed as a
subscripted numerical value at the end of each word.
The following dropdown menu is available:
- Min Word Width
Set the minimum word width that will be displayed in a word cloud.
- Max Word Count
Set the maximum number of unique words that will be displayed in a word cloud.
- Minimum Frequency
Set the minimum word frequency that will be displayed in a word cloud.
- Word Margin (Hor)
Opens an input box where the user can set the number of pixels (margin) above
and below each word.
- Word Margin (Vert)
Opens an input box where the user can set the number of pixels (margin) to the left
and right of each word.
- Allowed Character List
Opens an input box where the user can edit the list of characters that gbCloud
will accept as an acceptable word character.
- Excluded Words
Using notepad, opens the file "exclude.txt" that contains a list of words which
gbCloud can be directed to ignore in the word source. The "Exclude Selected Words"
setting must be selected for the exclusion list to apply.
- Exclude Selected Words
Directs gbCloud to not display any word found in the "exclude.txt" file.
- Display Frequency
Same as pressing the word button on the toolbar. Adds word frequency to the display.
Frequency is displayed as a subscripted numerical value at the end of each word.
- Allow Rotation
Enables gbCloud to rotate words (approximately 30% by default) in the cloud display.
Rotation will be +/-90 degrees.
- Fast Word Removal
Changing the lowest allowed frequency or the minimum word length settings normally requires
repositioning of words in the cloud. But in the special case of random positioning
and mask-constrained positioning, a user may want to change the two settings without
changing the word position. When Fast Word Removal is set, words are removed in response
to lowering the minimum frequency or raising the minimum word length - without changing
the position of existing words. With Fast Word Removal, remaining words may not be as
randomly dispered as when a cloud is initially created. But the results may still be useful
to the user. This option only takes affect under the Random and Mask-Constrained pattern modes.
- Baseline Alignment (Hor)
Forces alignment of words to common baselines in any of the
horizontal placement modes. Has no effect on random or mask placement modes.
Font
Press this button to select the font to be used in the tag cloud.
The following dropdown menu is available:
- Select Font
Selects the font to use for displaying all words.
- Min Font Size
Provides the user with an input box for entering the font size to use for words with
the lowest frequency.
- Max Font Size
Provides the user with an input box for entering the font size to use for words with
the highest frequency.
- Bold
Displays all words as bold style. This is additive with the italic setting.
- Italic
Displays all words as italic style. This is additive with the bold setting.
- Fixed Font
Displays all words as the same font size
- Fixed Font Size
Font size used when "Fixed Font" option is enabled
Image
Press this button to toggle the display of the background image.
The following dropdown menu is available:
Colors
Press this button to set the background/foreground colors to their default values.
The following dropdown menu is available:
- Background
Sets the background color of the cloud display.
- Lowest Frequency Word
Sets the color of words with the lowest frequency. This applies to the Gradient color theme only.
- Highest Frequency Word
Sets the color of words with the highest frequency. This applies to the Gradient color theme only.
- Custom List
Enables the use of a user-defined list of 10 colors. Default colors are provided.
- Mask Exclusion
Sets the color gbCloud will treat an exclusion area on a symbol mask.
- Gradient
Sets color theme to Gradient. Each time a cloud is generated, words will be assigned a
color value between the Lowest Frequency Word color and Highest Frequency Word color based
on the frequency of the word.
- Random
Sets color theme to Random. Each time a cloud is generated, words will be assigned a
random color.
- Full Spectrum
Sets color theme to Spectrum, which is a predefined color range of Red to Violet. Each time
a cloud is generated, words will be assigned a value between the two colors based on the
frequency of the word.
- Color List
Sets color them to Color List. Each time a cloud is generated, words will be assigned a color
from the list based on the frequency of the word.
Settings
Press this button to toggle display of the words textbox.
The following dropdown menu is available:
- Hide TextBox
Hide the words textbox.
- Show Filename in Caption
Includes the current cloud design filename in the caption of the main screen.
- Time Limit
Directs gbCloud to limit the time spent making word placements. The default
limit is 7 seconds.
Help
Opens the user's default browser at the gbCloud online Help page.
The following dropdown menu is available:
- Cloud Settings
Display a message box that shows settings for the current cloud design.
- Word List (Alpha)
Save a sorted (by word) list of the displayed word to a text file, then opens that file with Notepad.
- Word List (Freq)
Save a sorted (by frequency) list of the displayed word to a text file, then opens that file with Notepad.
Context Menu
A context menu, available by right clicking the words textbox, provides options
for loading/manipulating content of the source text.
- Cut
Remove selected text and place the text on the clipboard
- Copy
Copy selected text to the clipboard
- Paste
Paste text content of the clipboard at the cursor in the words textbox
- Delete
Delete the selected text
- Clear All
Remove all text from the words textbox
- Replace All With Sample Data
Replace content of the words textbox with default sample text
- Replace All From Clipboard
Replace content of the words textbox with the text content
from the clipboard
- Get Word List from File
Select a text file whose content will replace the content
of the words textbox
- Save Words
Saves content of words textbox to a file, words.txt.
- Restore Words
Places content of the file words.txt into the words textbox.
Keyboard ShortCuts
The following key combinations are available to the user to access gbCloud features:
- F1 - Open Online Help
- Ctrl-H - Copy background image to clipboard
- Ctrl-I - Copy tag cloud image to clipboard
- Ctrl-M - Copy mask image to clipboard
- Ctrl-S - Display current content of CFN (current tag cloud design)
- Ctrl-T - Toggle display of word boundaries
Word Placement Algorithm
When random or mask-constrained word placement is used, gbCloud uses a brute force
technique to place words. It randomly generates coordinates for a word until a position
if found that does not overlaps an already-placed word boundary. In the case of
mask-constrained placement, the word boundary is also checked to confirm that it does
not fall within the exclusion area as defined by the mask.
This random-place-and-check-for-valid-position is repeated up to 100,000 times per
word. Any word which cannot be fit within that number of trials is left out of the cloud
and reported to the user as a "no-placement" word.
Additionally, a limit on the time it takes to place all words is observed. A default
time limit of 7 seconds to place all words is applied.
Other Comments
This sections contains miscellaneous additional information about using gbCloud.
Beep
There are several occasions when gbCloud will issue a beep:
- Background image file is not found
- Source word count exceeds maximum words settings allow to be displayed
- Empty word list when displaying alpha or frequency word lists (Help submenu)
- Maximum placement time exceeded (mask-constrained or random word placements)
- Assignment of invalid max word count (1000 is upper limit)
- Restore Words function fails because words.txt file is missing
INI File
When gbCloud is closed, the state of the current session is saved and will be restored when gbCloud
is restarted. Information about the current design is saved to a temporary
file, session.gbc. gbCloud application settings are saved in an INI file.
Comments and suggestions are welcome!