任何人都可以共享一個示例代碼在delphi畫布中畫一個非矩形部分的圖片嗎?在delphi畫布中畫一個非矩形部分的圖片
回答
您正在尋找GDI路徑。開始here,它解釋了在這種情況下的路徑,並在左側提供了鏈接來解釋可用的功能。
谷歌可以舉出很多在Delphi中使用路徑的例子。如果你找不到它們,請在這裏發表評論,我會看到我能爲你提供什麼。
Canvas.Ellipse(0, 0, 10, 20); // not a rectangle
我們怎樣才能以任何形狀剪切圖片,你沒有回答這個問題的任何部分 – Maysam 2010-07-22 01:36:54
你的問題很模糊。但我懷疑你正在尋找的是裁剪區域。閱讀它們。將目標設備上的剪切區域設置爲所需的形狀,然後將圖像繪製到設備上。只有在裁剪區域內的圖像部分纔會被繪製。
如何在delphi中做到這一點? – Maysam 2010-07-22 01:35:50
閱讀Windows GDI的區域和剪切函數,例如CreatePolygonRGN()和SelectClipRgn()。在線使用區域剪輯輸出應該有充足的例子。它非常簡單 - 您在目標DC上定義一個要限制繪製的區域,執行繪圖(圖像,線條等),然後將裁剪區域重置爲正常。以下是MSDN庫中的一個簡單示例:http://msdn.microsoft.com/zh-cn/library/dd183437(v=VS.85).aspx – GrandmasterB 2010-07-22 19:33:52
我使用所謂的運行列表爲此功能(廣義形狀和blitting它們)。我也看到他們也叫warplists。通過將形狀定義爲一組水平線來將形狀編碼爲運行列表,並且每行是兩個整數值(跳過n個像素,複製n個像素)。
這意味着您可以繪製整條線,只留下「高度」繪製操作。因此,定義了一個矩形(第一個從頂級角到左角(「xorg」,「yorg」)的「跳過」像素,該矩形爲width_rect寬,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),
..
..
這種方式可以讓你的描繪過程相當通用的,簡單的,規則形狀(rects,圓圈)只需要輕微的數學預先計算這些列表。它簡化了我的形狀處理很大
但是我直接繪製位圖,而不是畫布,所以我無法幫助那部分。有效地繪製一行的原語以及從圖形中提取一行的方法應該就足夠了。
- 1. Android畫布 - 繪製矩形或矩形的圖片
- 2. 畫布矩形圖像
- 3. 在矩形外部填充畫布
- 4. 如何在xaml中部分填充畫布內的矩形
- 5. 圍繞畫布移動一個矩形
- 6. 在畫布上點擊點畫一個矩形wpf
- 7. 畫布上的動畫矩形
- 8. 在畫布上畫一個三角形
- 9. Android畫布繪製矩形
- 10. 畫布和繪畫圖片
- 11. 畫布:清除矩形但保留內容的其餘部分
- 12. 畫布部分不能畫部分
- 13. 在畫布上畫上一部分的畫面
- 14. 畫布中的矩形尺寸錯誤
- 15. 畫布中的比例矩形
- 16. 如何在矩形的底部svg中畫一個圓角JS
- 17. 如何調整畫布到另一個畫布的矩形邊界?
- 18. 如何在視圖框內顯示一半的矩形畫布
- 19. 圖像的非矩形部分的FFT
- 20. 畫布中的動畫片動畫
- 21. 畫布3d圖形
- 22. 在不同的x,y位置畫布重繪一個矩形
- 23. 更改tkinter的畫布部件中的矩形的寬度
- 24. 我們如何將圖像放在畫布上的矩形中
- 25. 如何繪製一個矩形上一個WPF畫布
- 26. WorldWindJava畫布上的2D圖形動畫?
- 27. 畫畫。像CameraPreview(SurfaceView)中的矩形
- 28. 矩形動畫
- 29. 在畫布上畫一個視圖,但沒有畫任何畫
- 30. 如何在HTML5畫布動畫中改變正方形的矩形
也許Mghie在這裏的答案有幫助嗎? http://stackoverflow.com/questions/1728141/tbitmap-drawing-transparent-image-in-delphi-2009 – 2010-07-21 20:21:01
實際上並不相關 – Maysam 2010-07-22 03:04:57