je souhaitre enregistrer un CBitmap ( class MFC ) en JPEG grace à la GFL. Après de multiples tentatives et recherche sur le forum je me retrouve sans cesse avec GFL_ERROR = 10 ( i.e. GFL_ERROR_BAD_FORMAT_INDEX), lorsque j'appelle la fonction GFLC_BITMAP::saveIntoFile(...).
Code: Select all
BOOL CGraph::WriteJpg(CString strPath, int iQuality)
{
BOOL bReturn = FALSE;
GFLC_SAVE_PARAMS gflParams;
gflParams.setFormat(gflGetFormatIndexByName("jpeg")); // renvoit toujours -1 :|
gflParams.setQuality((GFL_INT16) Quality);
gflParams.setFlags(GFL_SAVE_ANYWAY);
gflParams.setProgressive(GFL_FALSE);
HBITMAP hBmp = (HBITMAP) this->GetSafeHandle();
GFLC_BITMAP * pGflBmp = new GFLC_BITMAP();
GFL_ERROR gflError = pGflBmp->create(GFL_RGB, this->width, this->height);
if(gflError == GFL_NO_ERROR)
{
gflError = pGflBmp->setHBITMAP(&hBmp); // [*]
if(gflError == GFL_NO_ERROR)
{
gflError = pGflBmp->saveIntoFile(strPath.GetBuffer(), gflParams);
if(gflError == GFL_NO_ERROR)
{
bReturn = TRUE;
}
}
}
if(gflError != GFL_NO_ERROR)
{
CString strMsg;
strMsg.Format("Erreur lors de la Sauvegarde en JPEG :\n%s", gflGetErrorString(gflError));
AfxMessageBox(strMsg, MB_OK | MB_ICONINFORMATION);
}
delete pGflBmp;
return bReturn;
}
Code: Select all
[*]Code associé :
inline GFL_ERROR GFLC_BITMAP::setHBITMAP(HBITMAP * hFrame)
{
ERROR_Check(m_gflBitmap, "");
return gflConvertDDBIntoBitmap(*hFrame, &m_gflBitmap);
}
Merci pour votre aide.
PS : la gfl est vraiment impressionante bravo pour le travail accompli !