#pragma once #include #include "../../../../DesktopEditor/common/CalculatorCRC32.h" #include "ExternalImageStorage.h" namespace NSDocxRenderer { class CImageManager { public: std::map> m_mapImageData; std::wstring m_strDstMedia {L""}; IImageStorage* m_pExternalStorage = nullptr; CImageManager() = default; ~CImageManager() = default; void Clear(); std::shared_ptr WriteImage(Aggplus::CImage* pImage, double& x, double& y, double& width, double& height); std::shared_ptr WriteImage(const std::wstring& strFile); std::shared_ptr GenerateImageID(Aggplus::CImage* pImage); static CImageInfo::ImageType GetImageType(Aggplus::CImage* pFrame); static void FlipY(Aggplus::CImage* pImage); private: std::shared_ptr GenerateImageID(const std::wstring& strFileName); int m_lMaxSizeImage {1200}; int m_lNextIDImage {0}; CCalculatorCRC32 m_oCRC; }; }