Может ли кто-нибудь поделиться образцом кода, чтобы нарисовать непрямоугольную часть изображения в холсте delphi?Рисование не прямоугольной части изображения в холсте delphi
ответ
Вы ищете пути GDI. Запустите here, в котором объясняется, какие пути находятся в этом контексте, и содержит ссылки слева, чтобы объяснить функциональность, доступную с ними.
В Google может появиться множество примеров использования путей в Delphi. Если вы не можете найти их, напишите комментарий здесь, и я посмотрю, что я могу вам помочь.
Canvas.Ellipse(0, 0, 10, 20); // not a rectangle
как мы можем вырезать картинку с любой формой, вы не отвечаете на любую часть этого вопроса – Maysam
Ваш вопрос довольно расплывчатый. Но я подозреваю, что вы ищете отсечения регионов. Прочитайте их. Установите область отсечения на целевом устройстве в нужную вам форму и затем нарисуйте изображение на устройстве. Будет нарисована только часть изображения, которое будет находиться в области отсечения.
как я могу это сделать в delphi? – Maysam
Ознакомьтесь с областью и функциями отсечения Windows GDI, такими как CreatePolygonRGN() и SelectClipRgn(). В Интернете должно быть множество примеров использования регионов для вывода результатов. Его действительно довольно просто - вы определяете область на целевом DC, которую хотите ограничить рисованием, выполнить свой рисунок (изображения, линии и т. Д.), А затем вернуть область отсечения в нормальное состояние. Вот простой пример в библиотеке MSDN: http://msdn.microsoft.com/en-us/library/dd183437(v=VS.85).aspx – GrandmasterB
Я использую так называемые runlists для этой функции (обобщенные фигуры и blitting их). Я видел, как они тоже назывались warplists. Форма кодируется как список, определяя ее как набор горизонтальных линий, а каждая строка представляет собой два целочисленных значения (пропускать n пикселей, копировать n пикселей).
Это означает, что вы можете нарисовать целые линии, оставив при этом только операции рисования по высоте.
Так определен прямоугольник (первые «пропускающие» пиксели от верхнего уровня к левому углу (xorg, yorg). Прямоугольник шириной шириной шириной, а width_pixels идет дальше. Width_pixels может быть шире ширины картины (выравнивание байты)
(yorg*width_pixels+xorg , width_rect),
(width_pixels-width_rect , width_rect),
(width_pixels-width_rect , width_rect),
(width_pixels-width_rect , width_rect),
..
..
Таким образом, вы можете сделать свой рисунок процедуру довольно общими, так и для простых, обычных форм (прямоугольников, кружки) она занимает лишь небольшую математику предвычислять эти списки. Это упрощенные мою форму
Однако я рисую непосредственно на растровые изображения, а не на холсты, поэтому я не могу помочь с этой частью. Примитив, который эффективно рисует строку, и способ извлечь строку из графика должен быть достаточным.
- 1. Обнаружение определенной прямоугольной части изображения
- 2. Аффинное преобразование не прямоугольной части изображения
- 3. рисование изображения на холсте html5
- 4. Рисование изображения в холсте удаляет фон Fll
- 5. Рисование части изображения (Java)
- 6. Рисование изображения на холсте не работает
- 7. Рисование части изображения в Direct2D
- 8. Рисование изображения в холсте с использованием DataURL
- 9. Рисование изображения в холсте с десятичными значениями
- 10. Android - Рисование растрового изображения в холсте
- 11. Рисование определенной части изображения SWT
- 12. Рисование изображения на холсте от компьютера
- 13. Рисование изображения на холсте с дисплеем Retina
- 14. Рисование части изображения/шрифта в Allegro5
- 15. Рисование изображения на холсте при нажатии кнопки не работает
- 16. рисунок части растрового изображения на холсте Android
- 17. Рисование иконок на холсте cytoscape.js
- 18. Рисование теней на холсте
- 19. Сохранение части изображения, всегда видимой на холсте
- 20. Рисование «дыр» на холсте
- 21. Рисование больших изображений на холсте
- 22. Рисование градиента на холсте
- 23. Рисование видео на холсте
- 24. Рисование на холсте
- 25. Рисование на холсте не происходит в javascript
- 26. Рисование анимированных кривых в холсте
- 27. Рисование фигур на холсте
- 28. Рисование Тень объекта в холсте
- 29. Рисование прямоугольной формы с цветной закругленной рамкой
- 30. Рисование в холсте становится смещенным
Возможно ответ Mghie здесь полезен? http://stackoverflow.com/questions/1728141/tbitmap-drawing-transparent-image-in-delphi-2009 –
не связано фактически – Maysam