imio模块主要提供不同格式的读写功能,将保存在磁盘等物理介质的不同格式如JPEG,BMP, GIF,TIFF文件读取到RVB格式的图象对象中,或者将RVB格式的图象对象输出到文件,并可以编码为不同格式的文件。
imio2.0版本是对开源项目freeimage v3.15.3版进行再封装而生成的模块,使用freeimage提供的编解码功能,可实现将磁盘文件或内存文件装载到RVB的图像对象里面等功能。
表1 位图文件格式
标志 | 描述 |
---|---|
RV_iff_BMP | "bmp" |
RV_iff_JPG | "jpg" |
RV_iff_JPEG | "jpeg" |
RV_iff_GIF | "gif" |
RV_iff_PNG | "png" |
RV_iff_MNG | "mng" |
RV_iff_TIF | "tif" |
RV_iff_TIFF | "tiff" |
RV_iff_TGA | "tga" |
RV_iff_PCX | "pcx" |
RV_iff_WBMP | "wbmp" |
RV_iff_JP2 | "jp2" |
RV_iff_PGM | "pgm" |
RV_iff_PPM | "ppm" |
RV_iff_ICO | "ico" |
RV_iff_RAS | "ras" |
RV_iff_DEFAULT | 输入图片格式为空,即为 NULL |
表2 内存位图格式
标志 | 描述 |
---|---|
RV_IMF_DEFAULT | 内存位图为空,即为 NULL |
RV_IMF_BMP | bmp 格式 |
RV_IMF_ICO | ico 格式 |
RV_IMF_JPEG | jpeg 格式 |
RV_IMF_MNG | mng 格式 |
RV_IMF_PGM | pgm 格式 |
RV_IMF_PNG | png 格式 |
RV_IMF_PPM | ppm 格式 |
RV_IMF_RAS | ras 格式 |
RV_IMF_TIFF | tiff 格式 |
RV_IMF_WBMP | wbmp 格式 |
RV_IMF_GIF | gif 格式 |
RV_IMF_JP2 | jp2 格式 |
RV_IMF_RAW | raw 格式 |
RV_IMF_TGA | tga 格式 |
表6 按位图页数的分类
位图标志 | 描述 |
---|---|
HIMAGEPAGE | 单页位图 |
HMULTIIMAGEPAGE | 多页位图 |
声明:IMIO_API RvImage rvLoadImage(const char *strFileName, const char* strFormat=RV_IFF_DEFAULT, int flag=0);
描述:从指定的位置装载不同格式的图象文件,并创建一个新的RVB图象对象。
参数:1、const char *strFileName -- 要载入的位图文件的路径名称; 2、const char* strFormat=RV_IFF_DEFAULT -- 载入位图文件的格式,默认为RV_IFF_DEFA ULT; 3、int flag=0 -- 标志,默认为0。
返回:新的RVB图像对象。
声明:IMIO_API BOOL rvLoadImageEx(RvImage image, const char *strFileName, const char* strFormat=RV_IFF_DEFAULT, int flag=0);
描述:指定的位置装载不同格式的图象文件,将图象数据装载到指定的RVB对象。
参数:1、RvImage image --指定的RVB图像对象; 2、const char *strFileName -- 要载入的位图文件的路径名称; 3、const char* strFormat=RV_IFF_DEFAULT-- 载入位图文件的格式,默认为RV_IFF_DEFA ULT; 4、int flag=0-- 标志,默认为0。
返回:装载成功则返回TRUE,否则返回FALSE。
声明:IMIO_API BOOL rvSaveImage(const RvImage image, const char *strFileName, const char* strFormat=RV_IFF_DEFAULT , int flag=0);
描述:将指定的RVB对象的图象数据进行编码,并保存为指定格式的文件。
参数:1、const RvImage image -- 指定的RVB对象;
2、const char *strFileName -- 要保存的位图文件的名称;
3、const char* strFormat=RV_IFF_DEFAULT -- 要保存的位图文件的格式,默认为RV_IFF_D EFAULT;
4、int flag=0 -- 标志,默认为0。
返回:编码并保存成功则返回TRUE,否则返回FALSE。
声明:IMIO_API RvImage rvLoadImageInMemory(void* pData, UINT size, int nFormat=RV_I MF_DEFAULT, int flag=0);
描述:读取内存中的图象,创建新的RVB图象。
参数:1、void* pData -- 内存中的图像数据的地址指针;
2、UINT size -- 内存图像数据大小;
3、int nFormat=RV_IMF_DEFAULT -- 内存图像数据格式,默认为RV_IMF_DEFAULT;4、int flag=0 -- 标志,默认为0。
返回:新的RVB图像对象
描述:读取内存中的图象,将图象数据保存到已有的RVB图象对象里面。
参数:1、RvImage image -- 指定的RVB图像对象;
2、void* pData -- 内存中的图像数据的地址指针;3、UINT size -- 内存图像数据大小;
4、int nFormat=RV_IMF_DEFAULT -- 内存图像数据格式,默认为RV_IMF_DEFAULT;
5、int flag=0 -- 标志,默认为0。
返回:若成功将内存中的数据保存到已有的RVB图像里面则返回TRUE,否则返回FALSE。声明:IMIO_API UINT rvExportImageToMemory(RvImage image, int nFormat, void* pBuffer, UINT size, int flag =0);
描述:将RVB图象对象转换成指定的格式,并输出到内存。参数:1、RvImage image -- 指定的RVB图象对象
2、int nFormat -- RVB图像的格式
3、void* pBuffer -- 内存缓存区指针
4、UINT size -- 缓存区大小
5、int flag =0 -- 标志,默认为0。
返回:缓存区大小值。声明:IMIO_API HMULTIIMAGEPAGE rvOpenMultiImagePage(const char *strFileName, const char* strFormat=RV_IFF_DEFAULT, int flag=0, int fio=0);
描述:打开多页文件如TIF,GIF等,创建多页对象。参数:1、const char *strFileName -- 指定的多页位图文件名;
2、const char* strFormat=RV_IFF_DEFAULT -- 位图文件的格式,默认为RV_IFF_DEFAULT;3、int flag=0 -- 解码标志,默认为0
4、int fio=0 -- 设置打开模式是否有效的标志,默认为0。
返回:创建的多页位图对象。 rvOpenMultiImagePageInMemory
声明:IMIO_API HMULTIIMAGEPAGE rvOpenMultiImagePageInMemory(const char *data, UINT size, int nFormat=RV_IMF_DEFAULT,int flag=0); 描述:打开内存中的多页文件(如TIF,GIF等)的数据,创建多页对象。参数:1、const char *data -- 内存中的多页文件数据指针;
2、UINT size -- 内存中的多页文件数据大小;
3、int nFormat=RV_IMF_DEFAULT -- 内存中的多页文件格式,默认为RV_IMF_DEFAULT;4、int flag=0 -- 解码标志。
返回:创建的多页位图对象。
描述:销毁多页对象
参数:HMULTIIMAGEPAGE hMultiImagePage -- 指定的多页对象。
返回:无。
描述:获取多页图象中的页数。
参数:HMULTIIMAGEPAGE hMultiImagePage -- 指定的多页对象。
返回:
描述:将指定的多页图象中的某一页锁住,并返回该页。注意由该函数返回的单页必须由 rvUnlockMultiImagePage解锁。
参数:1、HMULTIIMAGEPAGE hMultiImagePage -- 指定多页对象 2、int index -- 多页对象某一页的索引。
返回:单页对象。
参数:1、HMULTIIMAGEPAGE hMultiImagePage -- 指定多页对象; 2、HIMAGEPAGE hImagePage -- 多页中的单页对象; 3、BOOL bChanged=FALSE -- 单页对象是否被更改,默认为FALSE。
返回:无。参数:1、const char *strFileName -- 指定位置的图像文件名; 2、const char* strFormat=RV_IFF_DEFAULT -- 图像文件的格式,默认为RV_IFF_DEFAULT; 3、int flag=0 -- 标志,默认为0。
返回:单页对象。参数:1、const char *data --内存区的数据对象指针; 2、UINT size -- 内存区的数据大小; 3、int nFormat=RV_IMF_DEFAULT -- 内存区的数据对象格式,默认为RV_IMF_DEFAULT; 4、int flag=0 -- 标志,默认为0。
返回:单页对象。描述:关闭单页对象。
参数:HIMAGEPAGE hImagePage -- 指定单页对象。
返回:无。
描述:获取单页的图象数据区的开始地址。
参数:HIMAGEPAGE hImagePage -- 指定的单页对象。返回:单页的图象数据区的开始地址。
描述:获取单页的图象的像素位(每个像素由多少位组成)。
参数:HIMAGEPAGE hImagePage -- 指定的单页对象。返回:单页的图象的像素位。
描述:以像素为单位返回位图宽度。
参数:HIMAGEPAGE hImagePage -- 指定的单页对象。
返回:位图宽度。描述:以像素为单位返回位图高度。
参数:HIMAGEPAGE hImagePage -- 指定的单页对象。
返回:位图高度。
描述:以字节为单位返回位图宽度。
参数:HIMAGEPAGE hImagePage -- 指定的单页对象。
返回:位图宽度。
参数:HIMAGEPAGE hImagePage -- 指定的单页对象。
返回:对齐到下一个32位字节边界的位图宽度。
参数:HIMAGEPAGE hImagePage -- 指定的单页对象。
返回:内存中一个FIBITMAP的DIB分量的大小。
描述:获取指向位图调色板的指针。
参数:HIMAGEPAGE hImagePage -- 指定的单页对象。
返回:指向位图调色板的指针。如果位图没有调色板(即当像素的位深度大于8时),则返回NULL。
声明:IMIO_API int rvGetImagePageColorsUsed(HIMAGEPAGE hImagePage);
描述:获取在一个位图中使用的颜色数。
参数:HIMAGEPAGE hImagePage -- 指定的单页对象。
返回:在一个位图中使用的颜色数。对于配色位图,该函数返回调色板大小,而对于多色位图(high-colour bitmap)返回0。
参数:HIMAGEPAGE hImagePage -- 指定的单页对象。
返回:指向一个FIBITMAP中的DIB分量的BITMAPINFOHEADER结构的指针。
参数:HIMAGEPAGE hImagePage -- 指定的单页对象。
返回:指向一个BITMAPINFO结构的指针。
描述:读取单页图象的属性,该属性数据类型为整数类型。
参数:1、HIMAGEPAGE hImagePage -- 指定的单页对象; 2、int nModel -- 位图的元数据模型; 3、 const char* strName -- 元数据域名(在一个元数据模型内唯一); 4、 int* pVal -- 单页图像属性值指针。 返回:读取成功返回TRUE,否则返回FALSE。返回:读取成功返回TRUE,否则返回FALSE。
QQ技术交流群:
微信技术交流群:
Marklab工作室
研发中心: 广东省东莞市大岭山镇元岭小区翠云街1巷16号
商务中心: 广东省东莞市松湖智谷B6栋225b
Marklab工作室 版权所有 粤ICP备13082990号-2 友情链接 hao123 绿盟 搜狗 站长之家 太平洋下载 天极下载 淘宝店 软云动力
赞助和协作单位 广东省科学院自动化研究所 深圳市东百胜技术有限公司