30b56dbfc8
- migliorato controllo gestione chiave di rete.
76 lines
2.4 KiB
C++
76 lines
2.4 KiB
C++
//----------------------------------------------------------------------------
|
|
// 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 ( ! VerifyKey( 0))
|
|
return nullptr ;
|
|
// 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 ;
|
|
}
|