Программно изменить цвет изображения PNG / PSD в .Net - PullRequest
2 голосов
/ 16 января 2012

У меня есть несколько веб-элементов управления, которые состоят из изображений PNG.Самым простым является кнопка.

Мне нужно иметь возможность генерировать эти элементы управления с разными цветами в зависимости от цвета, выбранного клиентом.

Изображения представляют собой файлы .PSD, наслоенные перед экспортом вPNG.

Моя идея состояла в том, чтобы позволить клиенту выбрать один цвет и использовать фильтр слоев в psd, чтобы изменить общий цвет изображения и программно экспортировать .PSD в PNG на сервере.Я изучал использование интерфейса Photoshop CS через COM, но не задумывался, кто-нибудь еще использовал его для аналогичной задачи?

В качестве альтернативы я мог бы прочитать png в память и выполнить замену цвета,но это кажется действительно сложным для того, что читается как простая задача (ish).

Большое спасибо заранее

1 Ответ

2 голосов
/ 16 января 2012

.PSD - довольно сложный и плохо документированный формат файла, который постоянно получает новые функции от Adobe, поэтому редактирование их - отнюдь не простая задача.

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

Одна из отправных точек может быть: http://www.webdesignerdepot.com/2008/11/photoshop-droplets-and-imagemagick/

Другим способом было бы попробовать составные слои, используя c #, это означает, что у вас есть несколько готовых слоев (текстуры / границы / и т. Д.), Некоторые будут созданы во время выполнения, и все эти слои будут объединены во время выполнения с использованием c #.

...