Во-первых, здесь ImageList врядли получиться использовать, потому что для его использования объект должен это поддерживать.
Во-вторых, подход со временным файлом не так уж и страшен, потому что доступ на ту директорию, которая используется для хранения этого файла - временная, и доступна пользователю в любых обстоятельствах.
И выгружать его форма будет только один раз - при инициализации. Поэтому и проблем с производительностью тоже нет особо.
Вот формочка.
В init() дописана одна строчка.