Вверх ↑
Ответов: 2197
Рейтинг: 673
#1: 2014-06-04 20:53:13 ЛС | профиль | цитата
nesco, в элементах есть возможность заливки штриховыми кистями и шаблоном изображения, но нет возможности сдвига заливки. Можно все это поправить.
Вот схема для тестирования: test_offsetbrush_1.sha
В схеме прямоугольник рисуется в позиции курсора, а заливка изображением может не совпадать с началом прямоугольника, так как начала заливки начинается с позиции 0,0 и продолжается мозаично (тоже касается и штриховых кистей).
В результате видим вот такое:

Внеся небольшие изменения можно сдвигать заливку, то есть подгонять под рисуемую фигуру.Добавить свойство:
@UseOffsetBrush=Сдвигать заливку на значение OffsetBrush|14|1|True,False
и добавив точку для подачи данных для сдвига:
*OffsetBrush=Сдиг заливки (картинки при PatternStyle = True и штриховых линий Style = bsVertical и т.п.) при UseOffsetBrush = True в формате Y*65536 + X|4|1

В элементах будет добавлено только это:
#pas
if _prop_UseOffsetBrush then
begin
p := cardinal(ReadInteger(_Data, _data_OffsetBrush, 0));
SetBrushOrgEx(pDC, smallint(p and $FFFF), smallint(p shr 16), nil)
end;
Все остальное в Img_Draw.pas и ImgDrawPoint.ini как и в случае с свойствами Style и PatternStyle.

После изменений заливка картинкой постоянно подгоняется под прямоугольник (см. пример test_offsetbrush_2.sha в архиве)

В архиве файлы из последней ревизии с дополнениями и две схемы для тестирования: test_offsetbrush_01.zip
  • Для тестирования изменения внес только в Img_Rectangle, но если возражений не будет, то обновлю все элементы и выложу одним архивом для обновления.
  • карма: 11

    1
    файлы: 4image_test_1.png [3.4KB] [919], image_test_2.png [3.3KB] [911], test_offsetbrush_01.zip [6.3KB] [402], test_offsetbrush_1.sha [1.4KB] [479]
    Голосовали:miver