mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-04-07 13:55:33 +08:00
Fix hatches in svg (x2t: wmf/emf => svg)
This commit is contained in:
@ -130,6 +130,10 @@ namespace NSGraphics
|
||||
};
|
||||
|
||||
GRAPHICS_DECL IGraphicsRenderer* Create();
|
||||
|
||||
GRAPHICS_DECL std::string GetHatchBase64(const std::wstring& name,
|
||||
unsigned char r1, unsigned char g1, unsigned char b1, unsigned char a1,
|
||||
unsigned char r2, unsigned char g2, unsigned char b2, unsigned char a2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -38,4 +38,34 @@ namespace NSGraphics
|
||||
{
|
||||
return new CGraphicsRenderer();
|
||||
}
|
||||
|
||||
std::string GetHatchBase64(const std::wstring& name,
|
||||
unsigned char r1, unsigned char g1, unsigned char b1, unsigned char a1,
|
||||
unsigned char r2, unsigned char g2, unsigned char b2, unsigned char a2)
|
||||
{
|
||||
agg::rgba8 c1 = agg::rgba8(r1, g1, b1, a1);
|
||||
agg::rgba8 c2 = agg::rgba8(r2, g2, b2, a2);
|
||||
|
||||
BYTE* pPattern = new BYTE[HATCH_TX_SIZE * HATCH_TX_SIZE * 4];
|
||||
agg::GetHatchPattern(name, (agg::rgba8*)pPattern, c1, c2);
|
||||
|
||||
CBgraFrame oFrame;
|
||||
oFrame.put_Data(pPattern);
|
||||
oFrame.put_Width(HATCH_TX_SIZE);
|
||||
oFrame.put_Height(HATCH_TX_SIZE);
|
||||
oFrame.put_Stride(4 * HATCH_TX_SIZE);
|
||||
|
||||
BYTE* pPngBuffer = NULL;
|
||||
int nPngSize = 0;
|
||||
oFrame.Encode(pPngBuffer, nPngSize, 4);
|
||||
|
||||
char* cData64 = NULL;
|
||||
int nData64Dst = 0;
|
||||
NSFile::CBase64Converter::Encode(pPngBuffer, nPngSize, cData64, nData64Dst, NSBase64::B64_BASE64_FLAG_NOCRLF);
|
||||
|
||||
std::string sRet(cData64, (size_t)nData64Dst);
|
||||
RELEASEARRAYOBJECTS(cData64);
|
||||
|
||||
return sRet;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user