powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / GR32 отрисовка поверх битмапа и очистка нарисованного
5 сообщений из 5, страница 1 из 1
GR32 отрисовка поверх битмапа и очистка нарисованного
    #39697702
venza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
рисую основную подложку так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
.....
Picture.LoadFromFile('image.png');
.....
Bitmap.Canvas.Draw(50,50,Picture.Graphic);
.....
BitBlt(Form1.Image321.Bitmap.Handle,0,0,Bitmap.Width,Bitmap.Height,Bitmap.Handle,0,0, SRCCOPY);
...



Не могу сообразить как нарисовать (канвасе или битмапе или на слое) геометрическую фигуру, чтобы ее можно было стереть не трогая битмап.
пробовал так:
Код: pascal
1.
2.
3.
4.
  //////////////РИСУЕТ НА КАНВАСЕ
  image321.Canvas.Pen.Color:=clred;
  image321.Canvas.Pen.Width:=3;
  image321.Canvas.Polygon(b);


и так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 //////////////РИСУЕТ НА БИТМАПЕ
    Image321.Bitmap.BeginUpdate;
    try
      begin
        FCanvas := TCanvas32.Create(Image321.Bitmap);
        FCanvas.Brushes.Add(TSolidBrush);
        FSolid := TSolidBrush(FCanvas.Brushes[0]);
        FSolid.FillColor := SetAlpha(clred32, 500);
        FCanvas.Path.LineTo(B[0].X, B[0].Y);
        FCanvas.Path.LineTo(B[1].X, B[1].Y);
        FCanvas.Path.LineTo(B[2].X, B[2].Y);
        FCanvas.Path.ClosePath;
        FCanvas.Path.EndPath;
      end;
    finally
      Image321.Bitmap.EndUpdate;
    end;
    Image321.Bitmap.Changed;
    Image321.Refresh; // force repaint
...
Рейтинг: 0 / 0
GR32 отрисовка поверх битмапа и очистка нарисованного
    #39697705
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Либо xor, либо отдельно хранить рисунок и фигуру.
...
Рейтинг: 0 / 0
GR32 отрисовка поверх битмапа и очистка нарисованного
    #39697722
venza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanЛибо xor, либо отдельно хранить рисунок и фигуру.
Так у меня хранится отдельно(тут рисунок подложка)
Код: pascal
1.
Form1.Image321.Bitmap


Тут треугольник
Код: pascal
1.
image321.Canvas


... или я что-то не понимаю?!
...
Рейтинг: 0 / 0
GR32 отрисовка поверх битмапа и очистка нарисованного
    #39697729
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
venzaНе могу сообразить как нарисовать (канвасе или битмапе или на слое) геометрическую фигуру,
чтобы ее можно было стереть не трогая битмап.

Для рисования: сначала рисуешь подложку, потом фигуру.
Для стирания: рисуешь подложку (или, для оптимизации, только кусок, занимаемый фигурой).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
GR32 отрисовка поверх битмапа и очистка нарисованного
    #39697819
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
venzawadmanЛибо xor, либо отдельно хранить рисунок и фигуру.
Так у меня хранится отдельно(тут рисунок подложка)
Код: pascal
1.
Form1.Image321.Bitmap



Тут треугольник
Код: pascal
1.
image321.Canvas



... или я что-то не понимаю?! Я не в курсе, как в Gr32 устроено, в стандартом Image эти две сущности на самом деле одна.
Насколько я понимаю, вам во втором случае нужен метафайл. Или просто реализовать отрисовку фигуры прямо на канву экрана поверх растра.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / GR32 отрисовка поверх битмапа и очистка нарисованного
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]