Страница 1 из 1
Grayscale и Disabled Image
Добавлено: 09 Декабрь 2022, 20:57
kreator
Вынесу в отдельную тему проблему.
Я казалось бы молодец! Разобрался с алгоритмом Grayscale (не так сложно судя по Википедии, есть две формулы, для PAL/SECAM и для HDTV, различаются коэффициентами, что не суть). Разобрался с алгоритмом Disabled (тоже дополнительный нелинейный коэффициент). Но есть засада. Очень медленная работа с блобом. Массив в 1200000 символов (фото - ~500x600 пикселей) циклом проходится за 4 секунды. Никуда не годится. Не ожидал. Вроде в оперативной памяти всё. Можно этому блобу ускорение дать?
Grayscale и Disabled Image
Добавлено: 09 Декабрь 2022, 21:11
Игорь Столяров
1. Не хотите попробовать FreeImage ? Там всё это давно есть и бесплатно. Но за скорость не скажу ...
2. Можно попробовать переписать обработку в памяти на вставочку в сях ...
Grayscale и Disabled Image
Добавлено: 09 Декабрь 2022, 21:33
Дед Пахом
GDI+ наше всё.
4 секунды это просто перебор байтов блоба, без всякой обработки?
Grayscale и Disabled Image
Добавлено: 10 Декабрь 2022, 20:25
kreator
Дед Пахом писал(а): 09 Декабрь 2022, 21:33
4 секунды это просто перебор байтов блоба, без всякой обработки?
Да. Обработка там минимальная, на скорость не влияет. Может в байтовый массив перекинуть? Через prop:Handle.
Grayscale и Disabled Image
Добавлено: 10 Декабрь 2022, 20:40
kreator
Игорь Столяров писал(а): 09 Декабрь 2022, 21:11
1. Не хотите попробовать FreeImage ? Там всё это давно есть и бесплатно. Но за скорость не скажу ...
Мне монохром не нужен. Мне нужен Disable.
Grayscale и Disabled Image
Добавлено: 10 Декабрь 2022, 21:33
Дед Пахом
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
Grayscale и Disabled Image
Добавлено: 11 Декабрь 2022, 17:59
kreator
Дед Пахом писал(а): 10 Декабрь 2022, 21:33
А как это через prop:Handle?
Это я уж придумываю. По аналогии как в блоб из картинки информацию пишем. Попробую через new. Но пока не попробовал, непонятно чем string от blob отличается?
Grayscale и Disabled Image
Добавлено: 12 Декабрь 2022, 21:38
kreator
Вроде всё получилось. Добился скорости в несколько сотых секунды. ДП, спасибо.
На всякий случай алгоритм во вложении. Вдруг кому тоже надо. Крайняя левая картинка сразу в режиме Disable. Крайняя правая становится Disabled при нажатии. На мой взгляд неотличимо.