极语言官方网站

位图缓存

位图是一个位数组,用于指定像素矩形数组中每个像素的颜色。

位图对象用来存储与设备无关的图像和与应用程序无关的图像的标准格式。

缓存位图对象以针对特定设备上显示进行优化的格式存储位图。

缓存位图对象简称存图

中文名称英文名称示例作用
文件取流GdipCreateStreamOnFile文件取流(名称,读写,@流)基于文件获取指向流对象接口的指针。
文件取图GdipCreateBitmapFromFile文件取图(宽文件名,@位图)基于图像文件创建位图对象。格式包括 BMP、GIF、JPEG、PNG、TIFF、Exif、WMF 和 EMF。
配置取图GdipCreateBitmapFromFileICM配置取图(宽文件名,@位图)基于ICM配置文件的图像文件创建位图对象。
数据取图GdipCreateBitmapFromStream数据取图(流,@位图)基于流创建位图对象。此函数使用ICM。
配流取图GdipCreateBitmapFromStreamICM配流取图(流,@位图)基于ICM流创建位图对象。
定位取图GdipCreateBitmapFromScan0定位取图(宽,高,步幅,格式,字节组,@位图)根据字节数组以及宽高和格式信息创建位图对象。步幅:相邻行间隔字节数;
图形取图GdipCreateBitmapFromGraphics图形取图(宽,高,图形,@位图)基于图形设备对象,宽度和高度创建位图对象。
图面取图GdipCreateBitmapFromDirectDrawSurface图面取图(驱动图面对象,@位图)基于图像对象,宽度和高度创建位图对象。
结构取图GdipCreateBitmapFromGdiDib结构取图(结构,数组,@位图)基于位图信息结构和像素数据数组创建位图对象。
位图取图GdipCreateBitmapFromHBITMAP位图取图(句柄,色板,@位图)基于图形设备接口位图的句柄和GDI调色板的句柄创建位图对象。
位图绘图GdipCreateHBITMAPFromBitmap位图绘图(位图,@句柄,背景色)从此位图对象创建Windows图形设备接口(GDI)位图句柄。
图标取图GdipCreateBitmapFromHICON图标取图(句柄,@位图)根据图标创建位图对象。
图标绘图GdipCreateHICONFromBitmap图标绘图(位图,@句柄)从此位图对象创建一个图标。
资源取图GdipCreateBitmapFromResource资源取图(实例,资源,@位图)基于应用程序或动态链接库(DLL)实例句柄和位图资源的名称创建位图对象。
裁剪位图GdipCloneBitmapArea裁剪位图(小数 左,顶,宽,高,格式,源图,@位图)通过复制该位图的一部分来创建新的位图对象。图像像素格式。左顶宽高为小数
裁剪图像GdipCloneBitmapAreal裁剪图像(左,顶,宽,高,格式,源图,@位图)通过复制该位图的一部分来创建新的位图对象。图像像素格式。左顶宽高为整数
位图取色GdipBitmapGetPixel位图取色(位图,X,Y,@颜色)获取此位图中指定像素的颜色。
位图改色GdipBitmapSetPixel位图改色(位图,X,Y,颜色)设置此位图中指定像素的颜色。
位图锁定GdipBitmapLockBits位图锁定(位图,矩形,标志,格式,数据)锁定此位图的矩形部分,并提供可用于以指定格式读取或写入像素数据的临时缓冲区。标志
位图解锁GdipBitmapUnlockBits位图解锁(位图,数据)解锁此位图之前由 位图锁定 锁定的此位图的一部分。
位图尺寸GdipBitmapSetResolution位图尺寸(位图,小数 X,小数 Y)设置此位图对象的水平和垂直分辨率大小。(以点/英寸为单位)
位图改色GdipBitmapSetPixel位图改色(位图,X,Y,颜色)设置此位图中指定像素的颜色。
图转格式GdipBitmapConvertFormat图转格式(位图,像素,抖动,色板类型,色板组,透明度)位图中的原始像素数据将替换为新的像素格式数据。像素格式,抖动类型,色板类型,色板数组类
初始色板GdipInitializePalette初始色板(@色板组,色板类型,颜色数,是否透明,位图)初始化标准、最佳或自定义调色板。色板数组类,色板类型
位图效果GdipBitmapApplyEffect位图效果(位图,效果,矩形,是否辅助,辅助数据,数据大小)通过应用指定的效果来更改此位图对象。
建效果图GdipBitmapCreateApplyEffect建效果图(位图,数量,效果,矩形,@新矩形
,@新图,是否辅助,辅助数据,数据大小)
通过将指定的效果应用于现有位图对象来创建新的位图对象。
取直方图GdipBitmapGetHistogram取直方图(位图,直方格式,元素数,数组0,数组1,数组2,数组3)为此位图对象的指定颜色通道返回一个或多个直方图。直方图格式
直方数目GdipBitmapGetHistogramSize直方数目(直方格式,@元素数)返回在调用 取直方图 函数之前必须分配的数组中元素的数目。直方图格式
创建效果GdipCreateEffect创建效果(类标识,@效果)通过类标识GUID创建效果对象。
改效果值GdipSetEffectParameters改效果值(效果,数量,参数组)设置此效果对象的参数组数值。
取效果值GdipGetEffectParameters取效果值(效果,数量,参数组)设置此位图中指定像素的颜色。
内测控制GdipTestControl内测控制(控制,@参数)指定图像处理行为中的更改。控制:0=强制双线性(参数为真且非临近插值=惰性双线性),
1=非ICM(参数为真忽略ICM配置文件),2=取版本号(参数接收)
创建存图GdipCreateCachedBitmap创建存图(位图,图形,@存图)基于位图对象和图形设备对象创建缓存位图对象。
删除存图GdipDeleteCachedBitmap删除存图(存图)清理缓存位图对象使用的资源。
绘制存图GdipDrawCachedBitmap绘制存图(图形,存图,X,Y)绘制存储在 缓存位图 对象中的图像。

位图数据类
中文名字英文名称长度作用解释
位图数据类BitmapData24包含了位图数据相关信息的结构
位图数据类——成员表
宽度Width整数位图对象的像素宽度
高度Height整数位图对象的像素高度
步长stride整数位图对象的跨距宽度(也称为扫描宽度)
像素PixelFormat整数位图对象的像素信息格式
扫描scan0整数位图对象第一像素数据的地址
预留Reserved整数保留。 请勿使用

色板数组类
中文名字英文名称长度作用解释
色板数组类ColorPalette12+包含了位图数据相关信息的结构
色板数组类——成员表
标志Flags整数标准调色板格式标志的组合。
数量Count整数数组中的元素数。
数组Entries[1]整数ARGB 颜色数组。自定义长度


标准调色板格式标志-PaletteType标识多种标准调色板格式。

英文名称数值作用
PaletteTypeCustom0    调用方提供的任意自定义调色板。
PaletteTypeOptimal1最适合特定位图的调色板。 若要创建最佳调色板,请将 PaletteTypeOptimal、调色板中所需的颜色数以及 位图 对象的地址传递给 初始色板 方法。
PaletteTypeFixedBW2具有两种颜色的调色板。 此调色板类型适用于每个像素存储 1 位的位图。
PaletteTypeFixedHalftone83基于两个强度的调色板,每个强度 (红色、绿色和蓝色通道的关闭或完全) 。 还包含系统调色板的 16 种颜色。 由于红色、绿色和蓝色的所有 8 个开/关组合已在系统调色板中,因此此调色板与系统调色板相同。 此调色板类型适用于每个像素存储 4 位的位图。
PaletteTypeFixedHalftone274基于红色、绿色和蓝色通道的三种强度的调色板。 还包含系统调色板的 16 种颜色。 16 种系统调色板颜色中有 8 种是红、绿、蓝三种三强度组合,因此调色板中的颜色总数为 35。 如果调色板还包含透明颜色,则颜色总数为 36。
PaletteTypeFixedHalftone645基于红色、绿色和蓝色通道的四种强度的调色板。 还包含系统调色板的 16 种颜色。 16 种系统调色板颜色中有 8 种是红色、绿色和蓝色的 64 种四强度组合,因此调色板中的颜色总数为 72。 如果调色板还包含透明颜色,则颜色总数为 73。
PaletteTypeFixedHalftone1256基于红色、绿色和蓝色通道的五种强度的调色板。 还包含系统调色板的 16 种颜色。 16 种系统调色板颜色中有 8 种是红色、绿色和蓝色的 125 种五强度组合,因此调色板中的颜色总数为 133。 如果调色板还包含透明颜色,则颜色总数为 134。
PaletteTypeFixedHalftone2167基于红色、绿色和蓝色通道的六种强度的调色板。 还包含系统调色板的 16 种颜色。 16 种系统调色板颜色中有 8 种是红色、绿色和蓝色的 216 种六强度组合,因此调色板中的颜色总数为 224。 如果调色板还包含透明颜色,则颜色总数为 225。 此调色板有时称为 Windows 半色调调色板或 Web 调色板。
PaletteTypeFixedHalftone2528基于 6 个红色强度、7 个绿色强度和 6 个蓝色强度的调色板。 不包括系统调色板。 颜色总数为 252。 如果调色板还包含透明颜色,则颜色总数为 253。
PaletteTypeFixedHalftone2569基于 8 种红色强度、8 种绿色强度和 4 种蓝色强度的调色板。 不包括系统调色板。 颜色总数为 256。 如果此调色板中包含透明颜色,则必须替换 RGB 组合之一。


图像像素格式常量

中文名称英文名称数值作用
像素1位索引PixelFormat1bppIndexed$30101指定格式为每像素 1 位,已编制索引。
像素4位索引PixelFormat4bppIndexed$30402指定格式为每像素 4 位而且已创建索引。
像素8位索引PixelFormat8bppIndexed$30803指定格式为每像素 8 位而且已创建索引。
像素16位灰度PixelFormat16bppGreyScale$101004指定格式为每像素 16 位灰度。
像素16位均色PixelFormat16bppRGB555$21005指定格式为每像素 16 位;红色、绿色和蓝色分量各使用 5 位。 剩余的 1 位未使用。
像素16位偏绿PixelFormat16bppRGB565$21006指定格式为每像素 16 位;红色分量使用 5 位,绿色分量使用 6 位,蓝色分量使用 5 位。
像素16位透明PixelFormat16bppARGB1555$61007指定格式为每像素 16 位;1 位用于 alpha 分量,5 位分别用于红色、绿色和蓝色分量。
像素24位均色PixelFormat24bppRGB$21808指定格式为每像素 24 位;红色、绿色和蓝色分量各使用 8 位。
像素32位均色PixelFormat32bppRGB$22009指定格式为每像素 32 位;红色、绿色和蓝色分量各使用 8 位。 剩余的 8 位未使用。
像素32位透明PixelFormat32bppARGB$26200A指定格式为每像素 32 位;alpha、红色、绿色和蓝色分量各使用 8 位。
像素32位左乘PixelFormat32bppPARGB$E200B指定格式为每像素 32 位;alpha、红色、绿色和蓝色分量各使用 8 位。 根据 alpha 分量,对红色、绿色和蓝色分量进行自左乘。
像素48位均色PixelFormat48bppRGB$10300C指定格式为每像素 48 位;红色、绿色和蓝色分量各使用 16 位。
像素64位透明PixelFormat64bppARGB$34400D指定格式为每像素 64 位;alpha、红色、绿色和蓝色分量各使用 16 位。
像素64位左乘PixelFormat64bppPARGB$1C400E指定格式为每像素 64 位;alpha、红色、绿色和蓝色分量各使用 16 位。 根据 alpha 分量,对红色、绿色和蓝色分量进行自左乘。


位图锁定标志-传递给 位图锁定 函数的 标志 参数的标志。

英文名称数值作用
ImageLockModeRead0x0001指定锁定图像的一部分以便读取。
ImageLockModeWrite0x0002指定锁定图像的一部分以便写入。
ImageLockModeUserInputBuf0x0004指定由用户分配读取或写入像素数据时使用的缓冲区。如果设置了此标志则 数据 参数为输入,否则为输出


位图抖动类型标志-标识转换位图时用于抖变的可用算法。DitherType

英文名称数值作用
DitherTypeNone0    未执行抖振。 源位图中的像素映射到由 Bitmap::ConvertFormat 方法的调色板参数指定的调色板中最近的颜色。 此算法可以与任何调色板一起使用。 如果 调色板参数指定的调色板 没有 PaletteType 枚举中列出的标准固定格式之一,请将 PaletteTypeCustom 传递给 palettetype 参数。
DitherTypeSolid1未执行抖振。 源位图中的像素映射到由 Bitmap::ConvertFormat 方法的调色板参数指定的调色板中最近的颜色。 此算法可以与任何调色板一起使用。 如果 调色板参数指定的调色板 没有 PaletteType 枚举中列出的标准固定格式之一,请将 PaletteTypeCustom 传递给 palettetype 参数。
DitherTypeOrdered4x42可以使用此算法根据其中一个标准固定调色板中的颜色执行抖动。 还可以使用此算法将位图转换为没有调色板的每像素 16 位格式。
DitherTypeOrdered8x83使用其中一个标准固定调色板中的颜色执行抖动。
DitherTypeOrdered16x164使用其中一个标准固定调色板中的颜色执行抖动。
DitherTypeSpiral4x45使用其中一个标准固定调色板中的颜色执行抖动。
DitherTypeSpiral8x86使用其中一个标准固定调色板中的颜色执行抖动。
DitherTypeDualSpiral4x47使用其中一个标准固定调色板中的颜色执行抖动。
DitherTypeDualSpiral8x88使用其中一个标准固定调色板中的颜色执行抖动。
DitherTypeErrorDiffusion9抖动是基于 图转格式函数的调色板参数指定的调色板执行的。 此算法可以与任何调色板一起使用。 如果 调色板参数指定的调色板 没有 PaletteType 枚举中列出的标准固定格式之一,请将 PaletteTypeCustom 传递给 palettetype 参数。
DitherTypeMax10TBD


直方图格式标志-HistogramFormat指定表示位图颜色通道的直方图的数量和类型。

英文名称数值作用
HistogramFormatARGB0    指定 取直方图 函数返回四个直方图:透明、红色、绿色和蓝色通道各一个直方图。 透明 通道直方图写入 取直方图 函数的 数组0 参数指向的缓冲区。 红色通道直方图将写入 数组1 参数指向的缓冲区。 绿色通道直方图将写入 数组2 参数指向的缓冲区。 蓝色通道直方图写入 数组3 参数指向的缓冲区。
HistogramFormatPARGB1指定 取直方图 函数返回四个直方图:透明、红色、绿色和蓝色通道各一个直方图。 创建直方图之前,红色、绿色和蓝色通道分别乘以 透明 通道。 当颜色通道乘以 透明 通道时,位图不会永久更改;该乘法仅用于创建直方图。 透明 通道直方图写入 取直方图 函数的 数组0 参数指向的缓冲区。 红色通道直方图将写入 数组1 参数指向的缓冲区。 绿色通道直方图将写入 数组2 参数指向的缓冲区。 蓝色通道直方图写入 数组3 参数指向的缓冲区。
HistogramFormatRGB2指定 取直方图 函数返回三个直方图:红色、绿色和蓝色通道各一个直方图。 红色通道直方图写入 取直方图 函数的 数组0 参数指向的缓冲区。 绿色通道直方图将写入 数组1 参数指向的缓冲区。 蓝色通道直方图将写入 数组2 参数指向的缓冲区。 数组3 参数必须设置为 0。
HistogramFormatGray3指定将每个像素转换为 0 到 255 范围内的灰度值,然后根据这些灰度值返回一个直方图。 位图不会因转换为灰度值而永久更改;计算这些值只是为了创建直方图。 灰度直方图写入 取直方图 函数的 数组0 参数指向的缓冲区。 数组1、数组2 和 数组3 参数必须设置为 0。
HistogramFormatB4指定 取直方图 函数返回蓝色通道的直方图。 蓝色通道直方图写入 取直方图 函数的 数组0 参数指向的缓冲区。 数组1、数组2 和 数组3 参数必须设置为 0。
HistogramFormatG5指定 取直方图 函数返回绿色通道的直方图。 绿色通道直方图将写入 取直方图 函数的 数组0 参数指向的缓冲区。 数组1、数组2 和 数组3 参数必须设置为 0。
HistogramFormatR6指定 取直方图 函数返回红色通道的直方图。 红色通道直方图写入 取直方图 函数的 数组0 参数指向的缓冲区。 数组1、数组2 和 数组3 参数必须设置为 0。
HistogramFormatA7指定 取直方图 函数返回 透明 通道的直方图。 透明 通道直方图写入 取直方图 函数的 数组0 参数指向的缓冲区。 数组1、数组2 和 数组3 参数必须设置为 0。