EgtGraphics 1.8g1 :
- aggiunta gestione immagini (inizialmente solo recupero dimensioni in pixel).
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2017-2017
|
||||
//----------------------------------------------------------------------------
|
||||
// File : ImageMgr.cpp Data : 05.07.17 Versione : 1.8g1
|
||||
// Contenuto : Implementazione della classe gestione immagini.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 05.07.17 DS Creazione modulo.
|
||||
//
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
//--------------------------- Include ----------------------------------------
|
||||
#include "stdafx.h"
|
||||
#include "ImageMgr.h"
|
||||
#include "DllMain.h"
|
||||
#include "/EgtDev/Include/EGrDllMain.h"
|
||||
#include "/EgtDev/Include/EgtILogger.h"
|
||||
#include "/EgtDev/Include/SELkKeyProc.h"
|
||||
#include "/EgtDev/Include/EgtKeyCodes.h"
|
||||
#include "/EgtDev/Include/EgtStringConverter.h"
|
||||
#include "/EgtDev/Extern/FreeImage/Include/FreeImage.h"
|
||||
|
||||
using namespace std ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
IEgrImageMgr*
|
||||
CreateEgrImageMgr( void)
|
||||
{
|
||||
// verifico la chiave e le opzioni
|
||||
if ( ! TestKeyForEGr( GetEGrKey(), 0, GetEGrLogger()))
|
||||
return false ;
|
||||
// creo l'oggetto
|
||||
return static_cast<IEgrImageMgr*> ( new(nothrow) ImageMgr) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
ImageMgr::ImageMgr( void)
|
||||
{
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
ImageMgr::~ImageMgr( void)
|
||||
{
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ImageMgr::GetImagePixels( const std::string& sFile, int& nPixelX, int& nPixelY)
|
||||
{
|
||||
// deduco il formato dell'immagine dalla sua segnatura o dalla estensione del file
|
||||
FREE_IMAGE_FORMAT nFif = FreeImage_GetFileTypeU( stringtoW( sFile), 0) ;
|
||||
if ( nFif == FIF_UNKNOWN)
|
||||
nFif = FreeImage_GetFIFFromFilenameU( stringtoW( sFile)) ;
|
||||
// se non determinata, esco con errore
|
||||
if ( nFif == FIF_UNKNOWN)
|
||||
return false ;
|
||||
|
||||
// carico l'header e i dati dell'immagine
|
||||
FIBITMAP* pDib = nullptr ;
|
||||
if ( FreeImage_FIFSupportsReading( nFif))
|
||||
pDib = FreeImage_LoadU( nFif, stringtoW( sFile), FIF_LOAD_NOPIXELS) ;
|
||||
if ( pDib == nullptr)
|
||||
return false ;
|
||||
|
||||
// recupero alcuni dati dell'immagine e li verifico
|
||||
nPixelX = FreeImage_GetWidth( pDib) ;
|
||||
nPixelY = FreeImage_GetHeight( pDib) ;
|
||||
|
||||
// libero la memoria
|
||||
FreeImage_Unload( pDib) ;
|
||||
|
||||
return true ;
|
||||
}
|
||||
Reference in New Issue
Block a user