Юрий Писарев дата публикации 28-02-2003 13:12 Компонент TGraphicsManager
Содержание:
Маска изображения, выделенные диапазоны |
Компонент позволяет работать с выделенными диапазонами. Маска изображения это дополнительное изображение, равное по площади редактируемому изображению. Выделенный диапазон это тот диапазон, который на дополнительном изображении (маске) отмечен белым цветом (не обязательно белым, этот цвет определяется свойством компонента PositiveColor). Таким образом, маска изображения совместима с маской, используемой в Corel Photo Paint. На рисунке видно, как осуществляется поворот изображения по маске:
Поворот без использования маски изображения: |
Поворот с использованием маски изображения: |
Настройка цветовой информации |
В компоненте реализована технология гибкой настройки цветовой информацию изображения. Изображение разбивается на информационные столбцы, причем ширина каждого столбца равна одному пикселю, а высота равна высоте изображения. На графике отображается процентное содержание каждого составляющего пикселя в каждом столбце. по сути это сильно детализированная гистограмма:
Исходное изображение: |
Гистограмма изображения: |
В программе GraphicsDemo чтобы изменить цветовую информацию изображения, следует щелкнуть мышью на любой вертикальной оси графика и, не отпуская, дотащить курсор до конца противоположной оси. В процессе перетаскивания будет отображаться траектория. По завершении перетаскивания линия траектории заменит собой цветовую информацию рисунка. Какая именно информация будет заменена, определяется настройками в левой верхней части страницы "информация":
Измененная цветовая информация: |
Можно сохранить цветовую информацию, как для каждого составляющего пикселя в отдельности, так и для всех вместе. Для этого предназначены кнопки "Импортировать" и "Экспортировать" программы GraphicsDemo. Причем та информация, что была сохранена, может использоваться для любых изображений, даже отличающихся по размерам от исходного изображения.
В программе GraphicsDemo используется компонент TBmpChart. Его необходимость обусловлена созданием более удобной системы управления цветом. Этот компонент создан на базе компонента TChart, таким образом можно увеличить любой фрагмент гистограммы для ее детального рассмотрения. Для этого необходимо щелкнуть мышью на графике и, не отпуская, протащить курсор вправо и вниз, выбрав тем самым область просмотра. Чтобы отменить увеличение, необходимо щелкнуть мышью на графике и, не отпуская, протащить курсор влево и вверх на любое расстояние.
Компонент позволяет инвертировать любой набор каналов изображения:
Исходное изображение: |
Инвертированное изображение: |
Замена (фильтрация) цвета и рисование |
Компонент позволяет легко и быстро заменять цвета. Чтобы лучше понять технологию замены цвета, рекомендую поэкспериментировать с демонстрационной программой GraphicsDemo.
Исходное изображение: |
Отфильтрованное изображение: |
В программе GraphicsDemo на странице "Замена цвета" кнопка "Рисовать" открывает диалоговое окно для рисования отфильтрованного изображения на поверхности рабочего стола
Компонент позволяет:
- Повернуть изображение влево.
- Повернуть изображение вправо.
- Перевернуть изображение.
- Зеркально отразить изображение.
- Перевернуть и зеркально отразить изображение.
- Повернуть изображение на любой угол.
Компонент позволяет увеличивать или уменьшать значения любого набора каналов:
Исходное изображение: |
Измененное изображение: |
Компонент позволяет быстро устанавливать во всем изображении значения любого набора каналов. В случае если устанавливаются сразу все значения каналов, то это простое заполнение изображения цветом.
Компонент позволяет работать с прозрачностью:
Первое изображение: |
Второе изображение: |
Эффект прозрачности: |
Компонент позволяет сглаживать любой набор каналов:
Исходное изображение: |
Эффект сглаживания: |
Компонент позволяет увеличивать резкость любого набора каналов:
Исходное изображение: |
Эффект резкости: |
Компонент позволяет загружать в изображение информацию из потоков. При этом изменяются последние биты составляющих пикселя, таким образом, визуально заметить разницу между изображениями невозможно, даже если они сплошного цвета, например черные. Есть ряд настроек, связанных с тем, как информация будет распределяться внутри изображения. Можно добиться того, чтобы информация равномерно заполнила все пространство рисунка. Можно самостоятельно задать начало распределения и шаг распределения. Я решил показать, как информация распределяется внутри изображения. Для этого я взял полностью черное изображение и загрузил в него некоторую информацию. Далее я убрал из изображения все цвета, которые не являются стопроцентно черными (R = 0, G = 0, B = 0), именно они появляются в изображении в результате загрузки в него информации:
Исходное изображение: |
Изображение c информацией: |
Программа GraphicsDemo после загрузки информации в изображение передает размер информации в компонент leDataSize страницы "Криптография". Чтобы извлечь информацию, необходимо чтобы все компоненты имели те же параметры что и при загрузке.
Коллекция действий основана на компоненте TGraphicsManager и предназначена для выполнения быстрых операций над изображением. Целевым компонентом является компонент типа TImage, который должен содержать в свойстве Picture.Bitmap изображение.
Т е с т и р о в а н и е и о б с у ж д е н и е |
|