Как угодно. Существует бесконечное множество способов зашифровать что-либо. Думаю простого xor`a тебе хватит в первом приближении. Пакет делится на заголовок, в котором хранится информация обо всех содержащихся в нем изображениях, и тело, в котором хранятся сами данные. В простейшем случае ты создаешь заголовок:
Code
количество_изображений
имя_первого_изображения
размер_первого_изображения
смещение_до_начала_первого_изображения
имя_второго_изображения
размер_второго_изображения
смещение_до_начала_ второго_изображения
...
Далее идут сплошные поксореные данные изображений.
Чтобы вытащить нужное изображения нужно лишь найти в заголовке инфу о нужном изображении(сравнивая поле имя_изображения), записать в буфер данные начиная с смещения_до_начала_изображения длиной в размер_изображения и поксорить их тем же ключом, что использовался для шифровки. Разумеется твой конструктор должен поддерживать загрузку изображений из памяти(если это не так, выкидывай его), иначе придется скидывать исходное изображения на диск и грузить его оттуда. А значит вся защита идет лесом.