PerfectPhotos – обработка фотографий на WPF

Хочу представить Вам один из моих последних проектов – программу для обработки фотографий PerfectPhotos. Программа содержит большое количество средств для комплексного улучшения изображений и призвана избавить фотографа от необходимости муторной работы с фотошопом там где это возможно. Более подробное описание возможностей можно найти на сайте.

 

Отмечу лишь, что вся обработка ведется с 16-битным цветом (16 бит на канал).

С версии 1.0.1.96 программа поддерживает напрямую формат цифровых зеркальных камер Canon (.cr2), и с успехом может быть использована в качестве raw-конвертора.

Программа написана на WPF (.Net 3.0) и потому ее интерфейс отличается в лучшую сторону от конкурентов.

  • http://romanpushkin.blogspot.com Roman Pushkin

    Мощно)

    Вот, кстати, тоже мой проектик, ядро которого на WPF: http://picbite.com

  • http://vitiy.info Victor Laskin

    Роман, приятный проектик – особенно кот мне понравился на главной )

  • http://romanpushkin.blogspot.com Roman Pushkin

    Спасибо! Это кошка, сам фоткал :)

  • Alex

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

  • http://vitiy.info Victor Laskin

    Спасибо
    Полные исходники не дам – но меня можно спросить что как сделано и я попробую объяснить с кусками кода.
    Насчет ассоциаций файлов согласен – доделаю.

  • Alex

    Сейчас я бы больше хотел знать как красиво органично вписать работу с wpf и общую логику (т.е. интересует архитектура), но на днях взялся за “WPF Unleashed”, после прочтения думаю часть вопросов отпадет, потом можно двигаться дальше.

  • Alex

    Привет, Виктор! Могу похвастаться, что уже кое-чего знаю в WPF :)
    Хочу задать такие вопросы по “Perfect Photos”.

    1. Разделение по функциям справа сверху – это TabControl?
    2. Выбрал сверху Color, справа – Add glow, при клике правой кнопкой мыши появляется всплывающее окно с кусочком предпросмотра картинки после наложеного фильтра – это ToolTip?
    3. Вообще насколько много у Вас XAML-кода, а насколько процедурного? Хотя бы в процентном соотношении. (Имею ввиду определение стилей, контролов, биндинг, как проводите локализацию текста, etc)

    Обнаружил еще одно:
    – открыл фото
    – выбрал сверху справа Color
    – справа по центру все пункты свернуты, развернул Color adjustments, при промотке скролом открытый пункт (может Canvas, не знаю что за панелька) проматывается мгновенно, немного неуютно смотрится. Насколько знаю для плавной промотки надо поставить свойство ScrollViewer.CanContentScroll для ListBox в значение False.

  • http://vitiy.info Victor Laskin

    1. Не – это пара StackPanel
    2. Это PopUp.
    3. Трудно конечно оценить… но думаю, что соотношение между процедурным кодом (только тот, что касается УИ) и хамлом где то 50 на 50. Но это все может варьироваться сильно. Могу посоветовать держать стили и ControlTemplate для каждого контрола в отдельных файлах.

    Про скролл – когда он проматывает сразу панельки это удобно если колесом мыши скроллить, но привыкнуть трудно все равно. Проблема в том, что:

    The culprits are mainly the Panels like StackPanel and ScrollContentPresenter that don’t implement smooth scrolling animations.
    (http://serialseb.blogspot.com/2007/09/wpf-tips-7-smooth-scrolling.html)

    То есть то, что для листбокса сработает, для стекпанел не покатит. Я еще не искал решения этой проблемы – как найду, отпишусь.

  • Ruslan

    1. Выглядит сыровато (дизайн)
    2. Интерфейс среднепонятный – опять же юзабилити среднее.
    3. Функционал нормальный

  • http://vitiy.info Victor Laskin

    Да, есть еще над чем работать, особенно над ‘среднепонятностью’ уи
    К сожалению, иногда понятно и удобно – разные вещи

  • B)anifacy

    Привет, Виктор! Для ознакомления WPF какими базовыми знаниями должен обладать? Относится ли сюда C#, xml? Или какую литературу нужно почитать перед изучение WPF??

  • http://vitiy.info Victor Laskin

    Перед изучением WPF необходимо изучить язык C#. Для начала можно прочитать любую основательную книжку по шарпу, например Троелсена, пропустив в ней все, что касается Windows Forms.

    XML не нужно изучать досконально, достаточно простого представления об его структуре.