用skia库绘制中文时需要先转为utf-8
贴出部分代码
#include <string>
inline std::string Unicode2ASCII(const std::wstring &strUnicode, UINT CodePage = CP_UTF8){
int nByte = WideCharToMultiByte(CodePage, 0, strUnicode.c_str(), -1, 0, 0, 0, 0);
if (nByte <= 0)
{
return "";
}
std::string strUtf8;
strUtf8.resize(nByte + 1, '\0');
WideCharToMultiByte(CodePage, 0, strUnicode.c_str(), -1, &strUtf8[0], nByte, 0, 0);
return std::string(strUtf8.c_str());
}
SkCanvas* canvas
std::string str = Unicode2ASCII(std::wstring(L"1234谷歌56789"));
SkPaint borderPaint;
borderPaint.setColor(SkColorSetARGB(0xff, 0xff, 0x0, 0x0));
borderPaint.setAntiAlias(true);
SkTypeface* pFace = SkTypeface::CreateFromName("宋体", SkTypeface::kNormal);
borderPaint.setTypeface(pFace);
canvas->drawText(str.c_str(), str.length(), 300, 400, borderPaint);