-
要渲染的第三个参数是ECC算法中的p 256曲线规范
资源介绍
函数需要传入 4 个参数,第一个参数是被进行缩放的图片帧;第二、第三个参数是要渲染
的实际宽度和高度;第四个参数是指定对要缩放的图像进行采样和过滤的模式,有 5 种方
式可以选择,本列赋值为 WICBitmapInterpolationModeCubic,表示选择双立方插值算
法,即通过最近的十六个象素中的 4×4 栅格的加权平均计算出最终的目标像素值。其他
值本列不讨论。
DirectX 的像素格式有很多种类型,图片加载到内存以后,就需要将其转换到指定的像
素格式,声明一个 IWICFormatConverter 类型的对象,用来将图像数据进行像素格式转
换。创建此对象的方法通过 IWICImagingFactory:: CreateFormatConverter ()函数来完
成。对象创建成功后再通过 IWICFormatConverter:: Initialize()函数对自身进行初始化。此
函数需要传入 6 个参数,第一个参数是前一段讲解的 IWICBitmapScaler 类型的对象;第
二个参数是像素格式全局唯一标识符,本列选择 GUID_WICPixelFormat32bppPBGRA;
第三个参数表示当两个像素格式进行转换时所应用的抖动算法类型,本列选择
WICBitmapDitherTypeNone,表示不使用抖动算法;第四个参数是调色板的使用,本列不
需要使用调色板,所以赋值为空;第五个参数是用于转换的一个透明阀值,本列没有特别
的用法,默认赋值为 0;第六个参数是个枚举值,指定调色板转换类型,它有 14 个值可以
选择,本列选择 WICBitmapPaletteTypeMedianCut,表示使用平均切割算法生成的最佳调
色板。
仅仅为了加载一张图片,却费了九牛二虎之力进行了各种设定,现在终于可以调用
ID2D1DeviceContext ::CreateBitmapFromWicBitmap()函数创建一个张位图了。此函数有
3 个参数,第一个参数就是前一段所讲解的 IWICFormatConverter 类型的对象;第二个参
数是一个位图属性结构,本列赋值为空,没有特殊指定;如果函数执行成功,第三个参数
就能返回一个可用的位图指针。从磁盘加载图片并解码,然后生成位图的具体代码如下所
示:
HRESULT LoadBitmapFromFile(
ID2D1DeviceContext *pRenderTarget,
IWICImagingFactory *pIWICFactory,