怎么使用C++打开一个JPG文件,并利用C++调用另一可执行程序对其处理~
如何使用C++打开一个JPG文件,并利用C++调用另一可执行程序对其处理~?
如题,想利用C++调用另一个可执行程序对一 "*.jpg "的文件进行格式转换,并返回另一个 "*.tiff ",可执行程序为 "convert.exe *.jpg -compress none *.tiff ".
通过convert.exe 把*.jpg 转变为*.tiff.(-compress none为convert.exe的参数) 实现方式是用c++调用*.jpg,最后返回给主函数一个*.tiff
------解决方案--------------------
char command[]= "convert.exe *.jpg -compress none *.tiff ";
system(command);
------解决方案--------------------
func()
{
char command[]= "convert.exe *.jpg -compress none *.tiff ";
system(command);
return *.tiff;
}
------解决方案--------------------
#include "windows.h "
void main()
{
// 假设你的 convert.exe 在C盘
// 图片叫a.jpg也在c盘
//
char command[] = "C:\\convert.exe C:\\a.jpg -compress none C:\\a.tiff ";
WinExec(command, 1);
}
------解决方案--------------------
CString CDataProcessing::JPG2TIFF(CString pszSrcFilename)
{
if(pszSrcFilename == " ")
return pszSrcFilename;
else if(pszSrcFilename.Right(3) == "jpg " || pszSrcFilename.Right(4) == "jpeg ")
{
CString pszDstFilename;
//AfxMessageBox( "jpg! ");
pszDstFilename = pszSrcFilename + ".tif ";//jpg2tiff
//AfxMessageBox(pszDstFilename);
GDALAllRegister();
GDALDataset *poSrcDS =
(GDALDataset *) GDALOpen( pszSrcFilename, GA_ReadOnly );
GDALDataset *poDstDS;
const char *pszFormat = "GTiff ";
GDALDriver *poDriver;
poDriver = GetGDALDriverManager()-> GetDriverByName(pszFormat);
//AfxMessageBox(CPLGetLastErrorMsg());
poDstDS = poDriver-> CreateCopy( pszDstFilename, poSrcDS, FALSE,
NULL, NULL, NULL );
//AfxMessageBox(CPLGetLastErrorMsg());
if( poDstDS != NULL )
delete poDstDS;
return pszDstFilename;
}
else
{
return pszSrcFilename;
}
}
看不明白+我qq 我告诉你 327845486
------解决方案--------------------
WinExec
ShellExecute
这2个函数都可以用的,不过一个是作为子进程,一个不作为子进程运行
------解决方案--------------------
如题,想利用C++调用另一个可执行程序对一 "*.jpg "的文件进行格式转换,并返回另一个 "*.tiff ",可执行程序为 "convert.exe *.jpg -compress none *.tiff ".
通过convert.exe 把*.jpg 转变为*.tiff.(-compress none为convert.exe的参数) 实现方式是用c++调用*.jpg,最后返回给主函数一个*.tiff
------解决方案--------------------
char command[]= "convert.exe *.jpg -compress none *.tiff ";
system(command);
------解决方案--------------------
func()
{
char command[]= "convert.exe *.jpg -compress none *.tiff ";
system(command);
return *.tiff;
}
------解决方案--------------------
#include "windows.h "
void main()
{
// 假设你的 convert.exe 在C盘
// 图片叫a.jpg也在c盘
//
char command[] = "C:\\convert.exe C:\\a.jpg -compress none C:\\a.tiff ";
WinExec(command, 1);
}
------解决方案--------------------
CString CDataProcessing::JPG2TIFF(CString pszSrcFilename)
{
if(pszSrcFilename == " ")
return pszSrcFilename;
else if(pszSrcFilename.Right(3) == "jpg " || pszSrcFilename.Right(4) == "jpeg ")
{
CString pszDstFilename;
//AfxMessageBox( "jpg! ");
pszDstFilename = pszSrcFilename + ".tif ";//jpg2tiff
//AfxMessageBox(pszDstFilename);
GDALAllRegister();
GDALDataset *poSrcDS =
(GDALDataset *) GDALOpen( pszSrcFilename, GA_ReadOnly );
GDALDataset *poDstDS;
const char *pszFormat = "GTiff ";
GDALDriver *poDriver;
poDriver = GetGDALDriverManager()-> GetDriverByName(pszFormat);
//AfxMessageBox(CPLGetLastErrorMsg());
poDstDS = poDriver-> CreateCopy( pszDstFilename, poSrcDS, FALSE,
NULL, NULL, NULL );
//AfxMessageBox(CPLGetLastErrorMsg());
if( poDstDS != NULL )
delete poDstDS;
return pszDstFilename;
}
else
{
return pszSrcFilename;
}
}
看不明白+我qq 我告诉你 327845486
------解决方案--------------------
WinExec
ShellExecute
这2个函数都可以用的,不过一个是作为子进程,一个不作为子进程运行
------解决方案--------------------