diff --git a/DesktopEditor/raster/BgraFrame.cpp b/DesktopEditor/raster/BgraFrame.cpp index 89e8fab4a0..db16c99507 100644 --- a/DesktopEditor/raster/BgraFrame.cpp +++ b/DesktopEditor/raster/BgraFrame.cpp @@ -518,7 +518,7 @@ bool CBgraFrame::ReColorPatternImage(const std::wstring& strFileName, unsigned i return false; } -void CBgraFrame::FromImage(IGrObject* pGrObject) +void CBgraFrame::FromImage(IGrObject* pGrObject, bool bIsCopy) { Aggplus::CImage* pImage = (Aggplus::CImage*)pGrObject; @@ -530,7 +530,14 @@ void CBgraFrame::FromImage(IGrObject* pGrObject) if (nSize > 0) { - m_pData = new BYTE[nSize]; - memcpy(m_pData, pImage->GetData(), nSize); + if (bIsCopy) + { + m_pData = new BYTE[nSize]; + memcpy(m_pData, pImage->GetData(), nSize); + } + else + { + m_pData = pImage->GetData(); + } } } diff --git a/DesktopEditor/raster/BgraFrame.h b/DesktopEditor/raster/BgraFrame.h index e7197fe5d3..06d3b02108 100644 --- a/DesktopEditor/raster/BgraFrame.h +++ b/DesktopEditor/raster/BgraFrame.h @@ -84,7 +84,7 @@ public: bool ReColorPatternImage(const std::wstring& strFileName, unsigned int rgbColorBack, unsigned int rgbColorFore); public: - void FromImage(IGrObject* pGraphics); + void FromImage(IGrObject* pGraphics, bool bIsCopy = true); }; #endif diff --git a/HtmlRenderer/src/Writer.h b/HtmlRenderer/src/Writer.h index 94aa600c08..3511c1f14a 100644 --- a/HtmlRenderer/src/Writer.h +++ b/HtmlRenderer/src/Writer.h @@ -1675,9 +1675,11 @@ namespace NSHtmlRenderer NSHtmlRenderer::CImageInfo GenerateImageID(IGrObject* pGrObject) { CBgraFrame* pFrame = new CBgraFrame(); - pFrame->FromImage(pGrObject); + pFrame->FromImage(pGrObject, false); NSHtmlRenderer::CImageInfo _info = GenerateImageID(pFrame, true); + + pFrame->put_Data(NULL); RELEASEOBJECT(pFrame); return _info; }