Grayscale и Disabled Image

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Grayscale и Disabled Image

Сообщение kreator »

Вынесу в отдельную тему проблему.
Я казалось бы молодец! Разобрался с алгоритмом Grayscale (не так сложно судя по Википедии, есть две формулы, для PAL/SECAM и для HDTV, различаются коэффициентами, что не суть). Разобрался с алгоритмом Disabled (тоже дополнительный нелинейный коэффициент). Но есть засада. Очень медленная работа с блобом. Массив в 1200000 символов (фото - ~500x600 пикселей) циклом проходится за 4 секунды. Никуда не годится. Не ожидал. Вроде в оперативной памяти всё. Можно этому блобу ускорение дать?
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7375
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Grayscale и Disabled Image

Сообщение Игорь Столяров »

1. Не хотите попробовать FreeImage ? Там всё это давно есть и бесплатно. Но за скорость не скажу ...
2. Можно попробовать переписать обработку в памяти на вставочку в сях ...
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3133
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Grayscale и Disabled Image

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

GDI+ наше всё.
4 секунды это просто перебор байтов блоба, без всякой обработки?
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Grayscale и Disabled Image

Сообщение kreator »

Дед Пахом писал(а): 09 Декабрь 2022, 21:33 4 секунды это просто перебор байтов блоба, без всякой обработки?
Да. Обработка там минимальная, на скорость не влияет. Может в байтовый массив перекинуть? Через prop:Handle.
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Grayscale и Disabled Image

Сообщение kreator »

Игорь Столяров писал(а): 09 Декабрь 2022, 21:11 1. Не хотите попробовать FreeImage ? Там всё это давно есть и бесплатно. Но за скорость не скажу ...
Мне монохром не нужен. Мне нужен Disable.
We are hard at work… for you. :)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3133
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Grayscale и Disabled Image

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

kreator писал(а): 10 Декабрь 2022, 20:25 Может в байтовый массив перекинуть? Через prop:Handle.
А как это через prop:Handle?
Вообще-то обычный способ быстро работает:

Код: Выделить всё

sData &= new string(blobSize)
sData = blob[0 : blobSize-1]
loop i=1 to blobSize
  ProcessByte(sData[i])
end
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Grayscale и Disabled Image

Сообщение kreator »

Дед Пахом писал(а): 10 Декабрь 2022, 21:33 А как это через prop:Handle?
Это я уж придумываю. По аналогии как в блоб из картинки информацию пишем. Попробую через new. Но пока не попробовал, непонятно чем string от blob отличается?
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Grayscale и Disabled Image

Сообщение kreator »

Вроде всё получилось. Добился скорости в несколько сотых секунды. ДП, спасибо.
На всякий случай алгоритм во вложении. Вдруг кому тоже надо. Крайняя левая картинка сразу в режиме Disable. Крайняя правая становится Disabled при нажатии. На мой взгляд неотличимо.
Вложения
TI.ZIP
(139.26 КБ) 35 скачиваний
We are hard at work… for you. :)
Ответить