Как обрабатывать изображения во время разработки программного обеспечения - PullRequest
9 голосов
/ 31 августа 2009

Для разработки программного обеспечения часто нужны изображения. Но когда я начинаю работать над изображением, я очень быстро получаю десятки версий, например,

  • Начните с хорошего крупномасштабного изображения, скажем, фото с моей камеры (x.nef)
  • Я делаю некоторые корректировки для коррекции экспозиции и баланса белого, конвертирую их в x.jpg
  • начинайте добавлять некоторые мелочи, копируя различные фрагменты из двух других изображений. (a.jpg, b.jpg, в результате чего получается многослойное изображение x.pdn
  • Теперь я масштабирую его до нужного размера и сохраняю как x_small.jpg

На данный момент у меня есть 6 различных файлов изображений, и никто, кроме меня, не знает, что за ними стоит.

Итак, вопрос: как вы обрабатываете изображения в процессе разработки?

Edit: Спасибо за отличный вклад. Я объединил различные вопросы с моим личным лучшим ответом. Но я принял ответ jiinx0r, потому что он действительно содержал отсутствующую для меня идею применить соглашение об именах для типа сделанных изменений.

Ответы [ 7 ]

6 голосов
/ 31 августа 2009

Вы можете просто поставить свои изображения под контроль источника.

Это будет обрабатывать историю изменений и заметки. Если вам действительно нужно хранить все переходные версии изображения и не хотеть этого в папке вашего проекта, большинство деревьев управления исходным кодом имеют область «инструменты» для такого типа вещей.

EDIT: Если вы хотите отслеживать различные размеры (миниатюры и т. Д.), Я бы согласился с настройкой конфигурации и внедрил бы единую систему имен файлов (или каталогов).

Например, я бы, вероятно, имел отдельные папки для версий 100 и 500 пикселей одного и того же изображения. Или, может быть, я бы поместил их в одну папку со специальным соглашением об именах: logo-100.jpg и logo-500.jpg ... В любом случае, возможно, все в порядке, просто примите решение и будьте уверены, что вы будете последовательны на протяжении всего проекта .

Еще одна мысль: некоторые люди любят включать тонну метаданных в имя файла. Для меня это зависит от объема вашей деятельности и ваших индивидуальных потребностей. Я лично предпочел бы подход «меньше - больше» - если вы думаете об инвестициях в поддержание чего-то подобного (или создании инструмента, который сделает это за вас), убедитесь, что это действительно чистый выигрыш времени, а не просто что-то для Ваш OCD, чтобы работать с!

Как разработчики, мы склонны делать вопиющие ошибки в этой области. Я знаю, что я был виновен много раз.

4 голосов
/ 31 августа 2009

именование файлов должно обрабатываться в соответствии с соглашением об именах.

{name}-{mod type}-{size}-{version}-{create date}.png
{name}-final.png

e.g. 
file-white_balance-800x600-v01-20090831.png
file-white_balance-800x600-v02-20090831.png
file-final.jpg

реальная цель состоит в том, чтобы создать согласованную конвенцию, в которой люди видят ценность в следующем (однако простой / сложный необходим для вашей группы). В моей организации мы делаем это для файлов данных ввода / вывода, изображений, сценариев и т. Д. (Не одно и то же соглашение обязательно для всех, но они следуют тому, что было согласовано)

Надеюсь, это поможет.

3 голосов
/ 31 августа 2009

Я изо всех сил стараюсь иметь только одно «исходное» изображение, а затем вливаю все изменения в короткий скрипт Python или какой-то другой фрагмент кода, чтобы я мог воссоздать эффекты и / или настроить их в любое время позже.

Исходное изображение сохраняется либо в формате PNG, либо в формате TIFF (чтобы избежать потери качества из-за сохранения) и преобразуется в последний тип как самый последний шаг. Это также время, когда я делаю масштабирование и другие операции с потерями.

2 голосов
/ 31 августа 2009

Мы разработали загружаемую веб-игру с несколькими сотнями графических ресурсов, большинство из которых были сохранены в виде psd-файлов во время разработки. Для релизной версии игры нам потребовались версии jpg и png, а для веб-версии - jpg и png более низкого качества.

Мы проверили оригиналы в системе контроля версий для обработки версий.

Чтобы оставаться гибкими и иметь возможность изменять оригинал без необходимости повторной упаковки изображения после каждого обновления, у нас был скрипт Perl / ImageMagick, который автоматически обновлял упакованные изображения.

Имя файла оставалось прежним, но сжатые изображения попадали в разные каталоги, в зависимости от версии игры, для которой было упаковано каждое изображение.

1 голос
/ 31 августа 2009

Я согласен с тем, что контроль версий может быть вашим лучшим выбором для этого. Однако обычный источник контроля не совсем подходит для изображений.

Вы смотрели на http://www.alienbrain.com?

Он коммерческий, но может быть чем-то, что может помочь. Я также искал и видел кое-что о Photoshop или Imageready с контролем версий. Вы можете посмотреть на это.

1 голос
/ 31 августа 2009

Обычно к имени добавляются заголовок и разрешение изображения.

myimage_800_600.png

таким образом, все подобные изображения сгруппированы вместе в представлении папки, и вы можете легко выбрать нужный размер без необходимости блуждать, что означает «средний».

0 голосов
/ 02 сентября 2009

Я собрал все фрагменты из разных ответов для системы, которая соответствует моим потребностям:

  1. Изображения попадают в систему контроля версий. Это включает в себя изображения или промежуточные шаги.
  2. Если требуется несколько изображений на основе одного исходного изображения, но с различными преобразованиями, это можно интегрировать в автоматические сборки (масштабирование, сжатие, тонирование)
  3. На основе соглашения об именах или структуры папок файлы можно разделить на следующие категории: источник (например, исходная фотография), промежуточный (для различных этапов обработки), базовый (изображение, которое фактически используется в программном обеспечении или возможно после автоматической обработки как на шаге 2)
  4. Для этапов обработки соглашение об именовании должно гарантировать, что тип обработки может быть распознан, а также порядок этапов. Таким образом, можно было бы перейти от исходного изображения через различные этапы обработки к конечному изображению.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...