我在编写程序的过程中,需要显示一些带有压缩格式的图片,但是这些图片无法使用windows自身的api来处理。
因此需要借助第三方的图形库来处理,转化为windows可以接收的格式。
其实这就是一个接口适配器,将两种工具结合起来。首先要做的是了解两边各接受的格式,然后再写程序进行转换。
首先是windows这边的api。windows这边接受DIB格式的位图,DIB英文为device independ bitmap 设备无关的位图,这是说图像文件可以存储在磁盘内,相对于DDB来说,ddb是一种存在程序中的图像。windows rc中的图像就是ddb。DIB文件的格式通常由一个BITMAPINFO 结构和一个存储像素数据的数组组成。
其次是opencv2这边的图形数据结构。opencv2中的矩阵类Mat。Mat由三部分组成,矩阵描述头,像素矩阵,引用计数。如下图所示。
那么大概的思路应该有了,首先需要得到矩阵数据的指针,并搞清楚矩阵数据的排列方式。然后自己构造BITMAPINFO结构,再将数据以正确的方式塞到位图空间。就得到了位图的转换。
具体怎么做的呢,明天更新。
阅读(914) | 评论(0) | 转发(0) |