我正在研究一个程序,根据输入绘制,将不同颜色的形状绘制到位图文件上,如果我只需绘制一个形状,它就可以很好地工作,但如果我例如采用两个或更多形状,它只是画出旧照片,旧照片会丢失,但我需要它们叠加以创建更复杂的照片。有没有办法当我写一个位图文件跳过我不想写的部分?我也尝试制作一个数组,其中保存所有像素数据,但如果我根据数组元素类型的大小采用比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. 如何更改cytoscape.js中覆盖图的形状和z-index?
- 3. 无法在Seadragon中创建多个覆盖图
- 4. 被覆盖的C#图形
- 5. 在scale_shape_manual中分配40个形状或更多形状
- 6. Vaadin树:覆盖或更多的图标
- 7. 覆盖或合并多个.ps文件
- 8. 更新/覆盖在C文件,而无需创建一个新的或临时文件
- 9. 在winforms中创建覆盖控件
- 10. C# - 在TextBlock中覆盖/更新文本
- 11. 在CSS中创建一个覆盖?
- 12. 如何为2个或更多GMap多边形创建1个mouseover事件?
- 13. Openerp在图形视图中创建2个条形图
- 14. 在BitmapData上绘制形状或创建其图形上下文
- 15. 如何在位于空中的KML中创建多边形形状?
- 16. 创建并覆盖适合JPanel的形状?
- 17. C++宏:如何创建一个覆盖?
- 18. Magento 2 - 覆盖基本视图文件
- 19. 在xaml中按形状创建文本
- 20. C++覆盖特定位置的文件中的数据
- 21. 从独立线创建的形状创建一个多边形
- 22. 如何使用Codeigniter在PHP中创建2个或更多条件的foreach?
- 23. 如何区分图形或数组中的多个形状?
- 24. 在C++中创建带有文本的形状
- 25. 覆盖在Django的ModelForm保存()方法来创建或更新
- 26. 覆盖多个图像的文字
- 27. 在Python中覆盖文件
- 28. NFS创建文件(覆盖)=零大小?
- 29. 在git中创建文件的多个状态
- 30. xlsx文件中的图形由openpyxl覆盖
800x800x3约为2兆字节,您可能达到了堆栈限制。改为在堆上分配数据。为什么不使用图像库或为什么不使用特定于操作系统的绘图函数? –
非常感谢,我没有想过这个,对我来说很愚蠢,现在一切正常。我制作了一个像素结构数组并为其分配了内存,并且它完美地工作。现在我只编辑我想编辑的数组中的像素,然后写入实际的bimap文件。 – Enizimus