In this lesson, you learn more about how to show bitmaps.
In the computer world, a bitmap is simply a file containing an image. All your digital photos are bitmaps (although digital photos are typically much larger than the ones used in PsyToolkit). |
The standard "screen" size of PsyToolkit is 800 x 600 pixels. You can change this, but make sure that your bitmaps are always smaller than your screensize. |
Telling PsyToolkit which bitmap files to use
There is a "bitmaps" section. In this, you tell PsyToolkit which bitmaps to use. By default, PsyToolkit assumes that bitmaps are saved as PNG files. If you want a different format, you can tell PsyToolkit.
In the example below, I show you the bitmaps section with two files. The first one just has the name smiley, and PsyToolkit assumes there is a file smiley.png. In the case of house, you specify the jpeg filename.
bitmaps
smiley
house house.jpg
There are rules on the names: |
-
Filesnames are not allow to have spaces
-
Filenames cannot start with a number
-
Filenames cannot have special characters, such as the & sign.
Showing just a bitmap
The simplest command is just as this:
show bitmap smiley
Note, by default, the bitmap is shown at location 0,0, which is screen center.
Showing a bitmap at a specific location
You can add X/Y coordinates following the name of the bitmap.
show bitmap smiley 0 0
Of course, that is fairly pointless. But you can change 0 0 in anything.
Showing multiple bitmaps simultaneously
You can show bitmaps exactly at the same time by putting them between draw off and draw on.
draw off
show bitmap smiley -200 0
show bitmap house 200 0
draw on
Basically, as soon as PsyToolkit see draw off it will stop drawing the bitmaps until draw on is called. Without the commands draw off and draw on, the bitmpas would be shown one after another (there can be a 10 to 20 ms delay between them).
show bitmap smiley -200 0
show bitmap house 200 0
Showing a different bitmap in different conditions
Of course, you often want to show a different bitmap depending on the experimental condition you are in. In PsyToolkit, you can create a table with the different conditions. For example, you can show one of three different bitmaps in different trials.
A table with conditions
First, make sure you create a table with for each condition one line. In the example below, we have three conditions. We have three different bitmaps (smiley, house, and tree). We show them on different locations as well.
table mytable
smiley -200 0
house 200 0
tree 0 0
What you put in a table is entirely up to you. The example below has 3 columns, but you can have as many as you want, and you can decide whatever information you put in it (numbers, strings, stimuli names, etc). |
Refering to the table
By default, PsyToolkit choose a table row at random each time it carries out a task (you can change this default behaviour, as is explained elsewhere).
In the task, you know only one table row is being used. You refer to the columns with the @ sign. Thus @1 refers to the first column, @2 to the second, etc.
Thus if you want to show a bitmap at positions x y, you do it as follows:
show bitmap @1 @2 @3
This can mean that you show smiley at coordinates -200 0, or that you show the house at 200 0, etc.
Using bitmaps in animation
Sometimes, you want to capture people’s attention with animated stimuli. For example, if you want that people really look at the fixation point, you can animate it.
Make sure that you have bitmaps fixpoint1, fixpoint2, and fixpoint3. Fixpoint1 is smallest and Fixpoint3 is largest (see image above).
show bitmap fixpoint1
delay 80
show bitmap fixpoint2
delay 80
show bitmap fixpoint3
delay 80
clear 1 2 3
Load bitmaps from the internet
Instead of uploading bitmap files on PsyToolkit, you can also put them somewhere else. For this you need the complete URL of the file.
In the example below, we take the image tree from dropbox. In this case, note the ending on ?raw=1. This is important (you can also use dl=1 instead). |
bitmaps
tree https://www.dropbox.com/s/aunobj8stq3tb3u/tree.png?raw=1
Changing the coordinate system
By default X/Y coordinate refers to the center of the screen. You can change this using the option "origin". If you set it to "topleft", the coordinates 0 0 refer to the top left corner of the screen.
options
origin topleft
Running the code
This "task" is not really a task, because no keypresses are required. All we do here is just show various bitmaps. |
The downloading of the images can be a bit slow, because Dropbox is involved. Normally, starting up an experiment is much faster. But if you have very large images, Dropbox might be better. Try out what works best for you. |
The complete file
bitmaps
smiley
house house.jpg
tree https://www.dropbox.com/s/aunobj8stq3tb3u/tree.png?raw=1
fixpoint1
fixpoint2
fixpoint3
table mytable
smiley -200 0
house 200 0
tree 0 0
task mytask
table mytable
show bitmap fixpoint1
delay 80
show bitmap fixpoint2
delay 80
show bitmap fixpoint3
delay 80
clear 1 2 3
delay 100
show bitmap @1 @2 @3
delay 500
clear screen
block test
tasklist
mytask 10
end