我正在研究一個程序,根據輸入繪製,將不同顏色的形狀繪製到位圖文件上,如果我只需繪製一個形狀,它就可以很好地工作,但如果我例如採用兩個或更多形狀,它只是畫出舊照片,舊照片會丟失,但我需要它們疊加以創建更復雜的照片。有沒有辦法當我寫一個位圖文件跳過我不想寫的部分?我也嘗試製作一個數組,其中保存所有像素數據,但如果我根據數組元素類型的大小採用比800x800大的位圖,那麼該數組無法工作。任何建議和評論我都樂意接受。先謝謝你。在C中創建的位圖文件中覆蓋2個或更多形狀?
-1
A
回答
0
您需要使用透明背景來繪製第二個圖形,您將如何完成該任務完全取決於您,因爲您沒有提供任何關於您使用的技術的信息。
+0
對不起,沒有提到所有的細節,我這樣做在C和只使用標準的C庫。我想通了,但我不知道該怎麼做才能獲得透明背景。謝謝。 – Enizimus
+0
您需要另一個位圖作爲掩碼。在該位圖中將值設置爲要繪製第二個形狀的所有1,其他位置爲0。最後,將第一次繪製的結果與第二次繪製的結果合併:res1 [i] =(res1 [i]&〜mask [i])| (res2 [i]&mask [i])。這裏'res1'是第一次繪製的結果,'res2'是第二次,'mask'是我描述的掩蔽位圖,'i'是像素索引,這將從第二次繪製發生的res2中選擇新值並且來自res1其他地方的現有價值。 – SoronelHaetir
相關問題
- 1. 在C#中爲多邊形創建形狀文件(.shp)
- 2. 創建覆蓋MKMapView中當前區域的方形覆蓋圖
- 3. Python:試圖在同一個文件中創建2個不同的形狀
- 4. 將圖像裁剪爲矢量或覆蓋圖形的形狀
- 5. C++在Linux中創建2個文件
- 6. 如何更改cytoscape.js中覆蓋圖的形狀和z-index?
- 7. 被覆蓋的C#圖形
- 8. 無法在Seadragon中創建多個覆蓋圖
- 9. 在scale_shape_manual中分配40個形狀或更多形狀
- 10. 覆蓋或合併多個.ps文件
- 11. Vaadin樹:覆蓋或更多的圖標
- 12. 在java中創建覆蓋
- 13. 更新/覆蓋在C文件,而無需創建一個新的或臨時文件
- 14. 在winforms中創建覆蓋控件
- 15. 使用PHP創建或覆蓋圖像
- 16. C# - 在TextBlock中覆蓋/更新文本
- 17. 着色圖片中的利用覆蓋或填充多邊形
- 18. 在CSS中創建一個覆蓋?
- 19. 從大型文件中創建許多形狀文件。
- 20. XUL:覆蓋狀態不會在多個窗口中更新
- 21. 如何爲2個或更多GMap多邊形創建1個mouseover事件?
- 22. 在ORMLite中爲一個類創建2個或更多表格
- 23. Openerp在圖形視圖中創建2個條形圖
- 24. 在BitmapData上繪製形狀或創建其圖形上下文
- 25. 多個svg文件覆蓋
- 26. 創建形狀或圖像的筆劃
- 27. 如何在位於空中的KML中創建多邊形形狀?
- 28. 在覆蓋Python中現有的Excel文件時丟失圖形
- 29. 創建並覆蓋適合JPanel的形狀?
- 30. C++宏:如何創建一個覆蓋?
800x800x3約爲2兆字節,您可能達到了堆棧限制。改爲在堆上分配數據。爲什麼不使用圖像庫或爲什麼不使用特定於操作系統的繪圖函數? –
非常感謝,我沒有想過這個,對我來說很愚蠢,現在一切正常。我製作了一個像素結構數組併爲其分配了內存,並且它完美地工作。現在我只編輯我想編輯的數組中的像素,然後寫入實際的bimap文件。 – Enizimus