本文档介绍了如何使用VC++编程环境实现JPEG与BMP两种格式图像之间的相互转换,提供详细步骤及代码示例。
VC++ JPEG与BMP图像互转的JPG图形库包含14个函数,这些都非常有用:
1. `void init_jpeg()`:初始化JPEG API动态链接库,在调用其它JPEG API函数之前必须被调用。程序中此函数只须调用一次。
2. `void findwindow(char *title)`:取程序窗口的图形句柄用于绘图处理,`Title`为程序窗口标题的一部分即可。
3. `long showjpg(char *filename, long hwnd, long left, long top)`:显示JPG文件于指定位置。其中,`hwnd`是窗口句柄,`(left,top)`表示图像在窗口中的左上角坐标。
4. `long show_bmp(char *filename, long hwnd, long left, long top)`:类似地,用于显示BMP格式的图片,并同样需要提供窗口句柄和位置信息。
5. `long jpg_to_bmp(char *jpgfilename, char *bmpfilename)`:将JPG文件转换为BMP格式存储。
6. `long bmp_to_jpg(char *jpgfilename, char *bmpfilename,long quality)`:用于把BMP图像转换成JPEG,其中`quality`参数决定输出图片的质量(0-100之间)。
7. `long copy_to_bmp(long hwnd, char *bmpfilename, long type)`:将程序窗口内容复制到指定的位图文件中。根据类型值的不同可以拷贝整个窗口或用户区域的内容。
8. `long copy_to_jpeg(long hwnd, char *jpgfilename, long type,long quality)`:与上一个函数类似,但这里输出的是JPEG格式图像而不是BMP。
9. `long to_clip(long hwnd, long type)`:将指定类型(全部还是部分)的窗口内容复制到剪贴板中以便于粘贴操作。
10. `long clip_to_jpeg(char *name,long hl,long quality)`:从当前剪贴板获取图像并将其保存为JPEG文件,同时可以设置输出质量等级。
11. `long clip_to_bmp(char *name, long hl)`:同样地,将剪贴板中的内容转换成BMP位图格式存储到指定路径中去。
12-14函数提供了区域复制的功能(包括窗口内的特定矩形区域),可以将这些区域直接拷贝进剪贴板或另存为JPEG/BMP文件。