Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
9 / 9 / 1
Регистрация: 04.07.2012
Сообщений: 209
1

Как рисовать на канве с альфаканалом? XE

05.06.2016, 21:34. Показов 1153. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую!

Реализую интерфейс IThumbnailProvider, там нужно передать системе картинку в формате ARGB. Новый делфи умеет работать с PNG, поэтому делаю так:

Delphi
1
2
Bitmap1.assign(image1.picture.graphics);
Result:=Bitmap1.Canvas.Handle;
Всё отлично. Теперь пытаюсь дорисовать поверх что-нибудь:

Delphi
1
2
3
4
5
6
7
Bitmap1.Canvas.Pen.Color:=$FFFFFFFF; 
Bitmap1.Canvas.MoveTo(0,10);
Bitmap1.Canvas.LineTo(10,10);
 
Bitmap1.Canvas.Pen.Color:=$00000000;
Bitmap1.Canvas.MoveTo(0,20);
Bitmap1.Canvas.LineTo(10,20);
На экране две совершенно одинаковых полностью прозрачных полосы. Никакие pf32bit, afPremultiplied не помогают... Что делать? По части XE гугл пока не специалист, гуглится со скрипом...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2016, 21:34
Ответы с готовыми решениями:

как правильно рисовать на канве
компоненты мигают при таймере с интервалом в 33 ((( dablebuffer или как там он называется не...

Рисовать на канве в NetBeans
Добрый вечер! Я нашел аналог TImage в NetBeans, но вот проблема, я не понимаю как на ней рисовать....

Можно ли средствами OpenGL рисовать на канве?
Всем доброго времени суток. Можно ли средствами OpenGL рисовать скажем на конве формы? Если можно...

Чем рисовать? JS на канве или PHP (библиотека JD)
Требуется нарисовать всякую графику, расчтитываемую на стороне сервера. Есть 2 возможности. Что...

5
9 / 9 / 1
Регистрация: 04.07.2012
Сообщений: 209
05.06.2016, 21:38  [ТС] 2
Пример
Миниатюры
Как рисовать на канве с альфаканалом? XE  
0
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
07.06.2016, 15:34 3
Никак. И дело не в XE. Используйте GDI+.

Не по теме:

Всё-таки получилось? :) Мои поздравления! Научите? :-[

0
Postscripter
08.06.2016, 05:49  [ТС]
  #4

Не по теме:

Получилось, только без прозрачности. Причешу немножко и выложу. Там заминка вышла - постоянные AV... Долго думал и пришёл к выводу, что дурак не я, а TChart. Пришлось вручную рисовать.

0
BOGG ART
08.06.2016, 17:40
  #5

Не по теме:

Вы выкладывайте обе версии, а я посмотрю что можно сделать, может поправлю и чарт этот. Как вы вообще его рисуете интересно, ПэйнтТу?

0
9 / 9 / 1
Регистрация: 04.07.2012
Сообщений: 209
09.06.2016, 17:42  [ТС] 6
BOGG ART,
Через PaintTo нельзя, можно словить белый квадрат, если Chart не успел построиться. Есть классный метод Draw, он позволяет перестроить график под любой указанный размер. Но отрисовка в обоих идёт через gdi, поэтому отсутствует сглаживание, картинка будет отличаться от той, что на форме.

Вот тут проект с примерами:
Как в редакторе tlb (COM) указать тип параметра "HBITMAP *p"

PS тема неактуальна, альфаканал убрал.
0
09.06.2016, 17:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2016, 17:42
Помогаю со студенческими работами здесь

Получить цвет пикселя с альфаканалом
Здравствуйте. Как получить цвет указанного пикселя с альфаканалом из файла png? Так...

Как на канве правильнее сделать линию
procedure TForm2.Image1Click(Sender: TObject); begin ...

Как сделать перемещение линии на канве?
Допустим есть линия, которая соединяет два каких то объекта. Как сделать чтобы при перемещении...

Как на канве fabric js сделать непересекаемые области?
вот тут есть пример ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru