GDI+

Программы на Clarion, шаблоны, библиотеки и пр.

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
atashe3
Посетитель
Сообщения: 33
Зарегистрирован: 26 Декабрь 2021, 13:32
Благодарил (а): 2 раза
Поблагодарили: 3 раза

GDI+

Сообщение atashe3 »

А можете пример показать как размытие по гаусу сделать
Т.к. в МСДН все примеры на с# классах из них понять не получилось
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3319
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 53 раза
Контактная информация:

GDI+

Сообщение Дед Пахом »

Я так понимаю, чтобы к картинке применить эффект размытия, надо в метод TGdiPlusBitmap.ApplyEffect передать TGdiPlusBlurEffect. Параметры размытия описаны тут:
https://learn.microsoft.com/ru-ru/windo ... blurparams
С уважением, ДП
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3319
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 53 раза
Контактная информация:

GDI+

Сообщение Дед Пахом »

Работает.
Вложения
screenshot.png
С уважением, ДП
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3319
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 53 раза
Контактная информация:

GDI+

Сообщение Дед Пахом »

Обновление:
- Исправлены методы CreateMatrix.
- Добавлены вызовы очистки перед созданием объектов.
- Добавлены комментарии к параметрам эффектов.
С уважением, ДП
Аватара пользователя
atashe3
Посетитель
Сообщения: 33
Зарегистрирован: 26 Декабрь 2021, 13:32
Благодарил (а): 2 раза
Поблагодарили: 3 раза

GDI+

Сообщение atashe3 »

Спасибо Пахом
Все прекрасно получилось
gopstop2007
Полимат
Сообщения: 1834
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 29 раз
Поблагодарили: 10 раз

GDI+

Сообщение gopstop2007 »

Попробовал запустить Ваш Image Selector пример Demo1, выдает ошибку
Spoiler
C:\Clarion10\Accessory\libsrc\win\imgsel.clw(370,23) : Error : Variable expected
Build Failed.
Указывает на ошибку в pRawData
Spoiler
IF image.FromString(pRawData) <> GpStatus:Ok
В чем может быть проблема?
Спасибо.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3319
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 53 раза
Контактная информация:

GDI+

Сообщение Дед Пахом »

gopstop2007 писал(а): 31 Март 2023, 20:50 В чем может быть проблема?
В атрибуте CONST.
Перезалил ImageSelector.
С уважением, ДП
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3319
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 53 раза
Контактная информация:

GDI+

Сообщение Дед Пахом »

Пример использования: https://github.com/mikeduglas/PhotoCorr ... rector.exe.

- Можно выделить область и применить к ней какой-нибудь цветовой эффект (размытие, яркость, контраст, цветовой баланс, обесцвечивание, много чего ещё) или поворот/отражение
- Можно скопировать выделенную область в буфер обмена и вставить в Paint или в письмо
- Можно вставить в выделенную область буфера обмен из Paint или снимок экрана
- Само собой, можно все эти изменения сохранить в файле или блобе
С уважением, ДП
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3319
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 53 раза
Контактная информация:

GDI+

Сообщение Дед Пахом »

Здесь в zip: https://github.com/mikeduglas/PhotoCorr ... master.zip
Добавил вывод текста, улучшил графику.
GDI+ рулит.
С уважением, ДП
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5424
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 15 раз
Поблагодарили: 68 раз

GDI+

Сообщение finsoftrz »

Интересная штука получилась, спасибо автору. Немного посмотрел сегодня. Можно рисовать на заданной области (контрол типа region). Причем сабклассить только его. Прикрепил небольшой тестовый класс надстройку, как это делается. Весь код манипуляций с region убирается в класс, без явных процедур сабклассинга и виртуальных методов, как в примерах Михаила.
Подключается, как обычно, после глобальных include:
INCLUDE('fsGdiPlus.inc'), ONCE
В области данных оконной процедуры объявляем экземпляр класса:
FsGdiPlusL FsGdiPlus
Поле открытия окна инициализируем:
FsGdiPlusL.init(window,?Region)
На кнопку для тестирования вешаем код вида:
FsGdiPlusL.OperCur=1 !в классе варианты вывода 1 и 2
FsGdiPlusL.Refresh

gdiplus.png
gdiplus.png (6.82 КБ) 27 просмотров
Вложения
fsGdiPlus.zip
(2.64 КБ) 1 скачивание
C6/C12, ШВС, tps/btrieve.
Ответить