probleme sauvegarde [French]

Discussions on GFL SDK, the graphic library for reading and writing graphic files

Moderators: helmut, XnTriq, xnview

alex1er
Posts: 44
Joined: Tue Sep 07, 2004 9:09 am

probleme sauvegarde [French]

Post by alex1er »

Bonjour Pierre


Je tente d'ouvrir une image en tant que miniature et essayer de la sauvagarger mais le resultat est vide.

Je passe un bout de code si quelqu'un a une idée du probleme

Merci

Code: Select all

GFL_BITMAP GFL_Preview;

	gflLoadMiniature(100, 100, "c:\\clement.jpg", &GFL_Preview);

	gflSaveImage(&GFL_Preview, "c:\\copy_clement.jpg");


void gflLoadMiniature(int iWidht, int iHeight, char * szPath, GFL_BITMAP * GFL_Preview)
{
	GFL_ERROR err;	
	GFL_LOAD_PARAMS load_params;		
	GFL_FILE_INFORMATION m_file_information;	

	gflGetDefaultLoadParams(&load_params);
    
	//gflGetDefaultThumbnailParams(&load_params);
	load_params.Flags |= GFL_LOAD_PREVIEW_NO_CANVAS_RESIZE;
	load_params.Flags |= GFL_LOAD_METADATA;
	load_params.Origin = GFL_TOP_LEFT; 
	load_params.ColorModel = GFL_RGB; 
	load_params.LinePadding = 3;//4
	

    err = gflLoadPreview (szPath,
                            iWidht,
                            iHeight,
                            &GFL_Preview,
                            &load_params,
                            &m_file_information);
}    

void gflSaveImage(GFL_BITMAP * GFL_bitmap, char * szPath)
{
	GFL_SAVE_PARAMS save_params;
	GFL_ERROR err;
	
	gflGetDefaultSaveParams(&save_params);
	save_params.Quality=100;
	/*save_params.Compression = GFL_NO_COMPRESSION;
	save_params.OptimizeHuffmanTable = 1;*/
	save_params.FormatIndex = gflGetFormatIndexByName("jpeg");
	
	err = gflSaveBitmap(szPath, GFL_bitmap, &save_params);
	
}

MaierMan
Posts: 78
Joined: Wed Aug 04, 2004 8:32 pm

Post by MaierMan »

no french here.
anyway:

Code: Select all

#include "libgfl.h"
#include <iostream>

bool verify(const char *act, GFL_ERROR err)
{
	using namespace std;
	bool v = err == GFL_NO_ERROR;
	cout << act
		<< ": "
		<< (v ? "OK" : gflGetErrorString(err))
		<< endl;
	return v;
}

// use a pointer to a GFL_BITMAP pointer in order to get the real address
// your way "loses" the pointer

// this is actually a wrapper function
// and IMO arguments for wrapper functions that are simply passed thru should have same type (pointer-wise)
// than the underlying function excepts ;)
bool gflLoadMiniature(int iWidth, int iHeight, char *szPath, GFL_BITMAP **GFL_Preview)
{
	GFL_LOAD_PARAMS load_params;      
	gflGetDefaultPreviewParams(&load_params);
	load_params.Flags |= GFL_LOAD_PREVIEW_NO_CANVAS_RESIZE;
	load_params.Flags |= GFL_LOAD_METADATA;
	load_params.Origin = GFL_TOP_LEFT;
	load_params.ColorModel = GFL_RGB;
	load_params.LinePadding = 3;//4
   
	return verify(
		"load",
		gflLoadPreview(
			szPath,
            iWidth,
            iHeight,
            GFL_Preview,
            &load_params,
            NULL
		)
	);

}   

bool gflSaveImage(GFL_BITMAP * GFL_bitmap, char * szPath)
{
	GFL_SAVE_PARAMS save_params;
	gflGetDefaultSaveParams(&save_params);
	save_params.Quality=100;
	save_params.FormatIndex = gflGetFormatIndexByName("jpeg");
   
	return verify(
		"save",
		gflSaveBitmap(
			szPath,
			GFL_bitmap,
			&save_params
		)
	);
}

int main()
{
	gflLibraryInit();
	// Same here... use a pointer... gflsdk will allocate the bitmap struct itself
	GFL_BITMAP *GFL_Preview;
	if (gflLoadMiniature(100, 100, "test.jpg", &GFL_Preview))
	{
		gflSaveImage(GFL_Preview, "t_test.jpg"); 
		gflFreeBitmap(GFL_Preview);
	}
	gflLibraryExit();

	return 0;
}
alex1er
Posts: 44
Joined: Tue Sep 07, 2004 9:09 am

Post by alex1er »

Thanks it works