⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interface_imagehandle.h

📁 本人有关PLC测试源码
💻 H
字号:
/*
 *   Copyright (C) =USTC= Fu Li
 *
 *   Author   :  Fu Li
 *   Create   :  2004-4-2
 *   Home     :  http://www.crazy-bit.com/
 *   Mail     :  crazybit@263.net
 *   History  :  
 */
#ifndef __PCL_INTERFACE_IMAGEHANDLE__2005_04_02__H__
#define __PCL_INTERFACE_IMAGEHANDLE__2005_04_02__H__
#include "../StdDefine.h"
class FCObjImage ; // external class

class FCImageHandleBase ;

//=============================================================================
/**
 *  Interface of image handle.
 */
class FCImageHandleBase
{
public:
    /**
     *  Read image from file.
     *  provide a default implement : call LoadImageMemory after load file into memory
     */
    virtual bool LoadImageFile (const char* szFileName) ;

    /// Read image from memory.
    virtual bool LoadImageMemory (const BYTE* pStart, int nFileSize) {return false;}

    /// Save image to file.
    virtual bool SaveImage (const char* szFileName, int nFlag = -1) {return false;}

    /// Get loaded image list.
    /// @param bWantBeOwnner : true - the handle will throw the ownership of these image, you must delete youself.
    virtual std::deque<FCObjImage*> GetLoadImage (bool bWantBeOwnner) =0 ;

    /// add image object to save list.
    void PushSaveList (const FCObjImage* pImg) {m_SaveImg.push_back(pImg);}

    virtual ~FCImageHandleBase() {}
protected:
    std::deque<const FCObjImage*>   m_SaveImg ;
} ;

//=============================================================================
// inline Implement
//=============================================================================
inline bool FCImageHandleBase::LoadImageFile (const char* szFileName)
{
    std::ifstream     inFile (szFileName, std::ios::in|std::ios::binary) ;
    if (!inFile.is_open())
        return false ;

    // get file length
    inFile.seekg (0, std::ios::end) ;
    const int     nFileSize = inFile.tellg() ;
    if (nFileSize <= 0)
        return false ;

    // read file into memory
    PCL_array<BYTE>   pStart (new BYTE[nFileSize]) ;
    inFile.seekg (0, std::ios::beg) ;
    inFile.read ((char*)pStart.get(), nFileSize) ;
    return LoadImageMemory (pStart.get(), nFileSize) ;
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -