Самый простой способ - использовать NSImageViews. Вы можете создать подкласс, который можно легко перетаскивать, масштабировать и поворачивать. Более сложным, но визуально лучшим вариантом будет использование слоев Core Animation (CALayer).
Пока вы сохраняете фотографии в виде отдельных объектов (так что вы можете управлять ими по отдельности), они будут использовать довольно много памяти, независимо от того, как вы их представляете. Если вы предоставите все данные, доступные на фотографиях, каждая из них может занять несколько мегабайт. Вы, вероятно, захотите уменьшить качество изображения, то есть размер в пикселях, точность воспроизведения и т. Д., За исключением случаев, когда конкретная фотография обрабатывается в деталях.
Помните, вам не нужно относиться к фотографиям как к физическим объектам, которые они имитируют. Вы просто должны создать иллюзию физических объектов в интерфейсе. Мы театральные дизайнеры, а не архитекторы. Пока ваша модель модели данных остается строгой для поставленной задачи, интерфейс может участвовать во всевозможных иллюзиях на благо пользователя.