将jpg格式的图片转为bmp格式的图片
之前看到一篇博文,说用cvLoadImage
函数读出来的是IplImage
类的值,同时cvSaveImage
的输入也是IplImage
类的值,这就可以通过这两个函数将jpg格式的图片转为bmp格式的图片。
具体代码实现 jpg2bmp
注:编译代码时,请将opencv配置到你的Visual Studio 中
博主本人使用的环境是 OpenCV2.4.13+VS+Win10 配置教程
#include <cstdlib>#include <iostream>#include <vector>#include <string>#include <fstream>using namespace std;#include <cv.h>#include <cxcore.h>#include <highgui.h>int main(int argc, char *argv[]){//system("dir /b jpg > jpglist.txt");system("dir *.jpg /b > jpglist.txt");//将当前文件夹内的所有.jpg格式的图片的文件名填入jpglist.txt文档中ifstream jpglist("jpglist.txt");string file;int picnum = 0;string geshi = ".bmp"; //图片格式后缀while(getline(jpglist, file)){picnum++;cout << "正在加载第" << picnum << "张图片" << endl;const char *stri = file.c_str();IplImage *src = cvLoadImage(stri);if (!src){cout << "can not load the image : " << file << endl;break;}// file.erase(file.end() - 4);//这个函数的作用是,将从后数第四位的符号删除file = file.substr(0, file.length() - 4);//这个函数的作用是将string类的file变量的后四位删除file += geshi;cvSaveImage(file.c_str(), src);cvReleaseImage(&src);}jpglist.close();system("PAUSE");return EXIT_SUCCESS;}
大概写的是最简单的实现jpg转bmp格式的C++代码吧(蜜汁自信)
欢迎各位大神前来指导评论,十分感谢
至于实现bmp转jpg格式,我想只要大家看懂上面的代码,都应该能自己实现这个功能了吧,博主偷个懒,溜了溜了~~