C# 通过仅使用GDI+指定大小来创建Dib;和网络
我最近发现了GDI+中不同构造函数之间的差异。去:C# 通过仅使用GDI+指定大小来创建Dib;和网络,c#,.net,gdi+,C#,.net,Gdi+,我最近发现了GDI+中不同构造函数之间的差异。去: var bmp=新位图(宽度、高度、像素格式) 创建DDB(设备相关位图),而: var bmp=新位图(someFile) 创建DIB(独立于设备的位图)。这通常并不重要,除非在处理非常大的图像时(DDB将耗尽内存,并根据机器及其视频内存的不同大小耗尽内存)。我需要创建DIB而不是DDB,但需要指定高度、宽度和像素格式。有人知道如何在DotNet中做到这一点吗。另外,是否有关于由哪个位图构造函数创建哪种类型的位图(DIB或DDB)的指南?执行
var bmp=新位图(宽度、高度、像素格式)代码>
创建DDB(设备相关位图),而:
var bmp=新位图(someFile)代码>
创建DIB(独立于设备的位图)。这通常并不重要,除非在处理非常大的图像时(DDB将耗尽内存,并根据机器及其视频内存的不同大小耗尽内存)。我需要创建DIB而不是DDB,但需要指定高度、宽度和像素格式。有人知道如何在DotNet中做到这一点吗。另外,是否有关于由哪个位图构造函数创建哪种类型的位图(DIB或DDB)的指南?执行此操作的最佳方法似乎是自己分配内存,然后使用以下方法创建位图:
var bmp = new Bitmap(width, height, stride, format, scan0)
通过这种方式,您可以创建巨大的位图,而不会出现内存不足错误。如何从Dib创建较小的位图?你能帮我检查一下这个问题吗?