As you might know, DataTypes on the Amiga is a universal system for managing files in different formats. This lets an application query the datatypes.library to load or save a file, while the OS takes care of converting the format. If a user installs new DataTypes on their computer, all existing programs using the DataTypes system will instantly work with the new format.

For a more in-depth explanation on how to use DataTypes in your application, I suggest checking out this link:
https://wiki.amigaos.net/wiki/Datatypes_Library
Since DataTypes are based on BOOPSI, a DataType object essentially is as a Gadget and can therefore be added to a Window. This isn’t the approach I’m aiming for in this article. Instead, I’ll demonstrate how to load an image from a file and populate a BitMap for further processing with graphics.library. The example below will open a window, load a .png file, and copy it to the window’s rastport for display. The result is a small program that’s similar to the MultiView utility, but much simpler.
When using datatypes.library, it’s a good idea to test your code on different versions of AmigaOS. For example, ApolloOS will automatically handle high-color images, while AmigaOS 3.2 needs to be explicitly told to use newer modes. These small differences between AmigaOS variants can be tricky to anticipate without thorough testing.
Support for high-color pictures was introduced in datatypes.library version 43, which means you’ll need AmigaOS 3.5 or later. You can refer to this table to see which versions of DataTypes are included in different AmigaOS releases.
| OS | version of datatype.library |
| AmigaOS 3.0 | v39 |
| AmigaOS 3.1 | v40 |
| AmigaOS 3.5 | v43 |
| AmigaOS 3.9 | v44 |
| AmigaOS 3.2 | v47 |
| ApolloOS | v45 |
I’ll let the actual source code speak for itself. Here’s how to load pictures into a Bitmap using DataTypes in assembler.

