首页 新闻 搜索 专区 学院

OpenCvSharp 里的Cv2.PutText怎么输入中文?

0
悬赏园豆:10 [已解决问题] 解决于 2020-09-18 10:49

OpenCvSharp 里的PutText怎么输入中文?

喵喵喵?

Mat src = new Mat(@"C:\Users\MyPC\OneDrive\Pictures\Menhera酱表情包 无水印汉化版\6.jpg", ImreadModes.AnyColor);

Cv2.PutText(src, "Menhenra酱,卡哇伊!", new Point(0, src.Rows - 10), HersheyFonts.HersheyScriptComplex, 2, Scalar.DarkCyan);

小草上飞飞的主页 小草上飞飞 | 初学一级 | 园豆:182
提问于:2020-09-08 16:42
< >
分享
最佳答案
0

字体用中文字体就可以了,C#没怎么用,我用的是python,不过原理应该相通的

收获园豆:10
小小咸鱼YwY | 小虾三级 |园豆:1869 | 2020-09-08 17:26
namespace OpenCvSharp
{
    [Flags]
    public enum HersheyFonts
    {
        HersheySimplex = 0,
        HersheyPlain = 1,
        HersheyDuplex = 2,
        HersheyComplex = 3,
        HersheyTriplex = 4,
        HersheyComplexSmall = 5,
        HersheyScriptSimplex = 6,
        HersheyScriptComplex = 7,
        Italic = 16
    }
}

莫得中文字体,而且py好像也不能写中文

小草上飞飞 | 园豆:182 (初学一级) | 2020-09-08 17:32

@小草上飞飞: python中文字体是用PTL模块实现的,就是最最基础处理图片的模块,C#不知道有没有,你要是需要的话我可以写一段python的伪代码给你

小小咸鱼YwY | 园豆:1869 (小虾三级) | 2020-09-08 17:34

@小小咸鱼YwY: 我去找找这个PTL怎么做,我没发现有人用C# 写中文

小草上飞飞 | 园豆:182 (初学一级) | 2020-09-08 17:35

@小草上飞飞: 你可以看看你们C#处理图片的老祖宗估计就有了

小小咸鱼YwY | 园豆:1869 (小虾三级) | 2020-09-08 17:36

@小草上飞飞:

from PIL import ImageDraw,ImageFont,Image
def img_writer(text_size,xy,text,text_color,fontStyle,img):
    draw = ImageDraw.Draw(img)
    # 字体的格式 这里的SimHei.ttf需要有这个字体
    fontStyle = ImageFont.truetype(fontStyle, text_size, encoding='utff8')
    # 绘制文本
    draw.text(xy, text, text_color, font=fontStyle)

if __name__ == '__main__':
    text_size = 50  # 字体大小
    xy = (56, 1700)  # 起始位置
    data = 'Menhenra酱,卡哇伊!'  # 内容
    text_color = (26, 42, 44)  # 字体颜色
    fontStyle = f'PingFang Bold.ttf'  # 字体位置
    img = Image.open('图片路径')
    img_writer(text_size, xy, data, text_color, fontStyle, img)

小小咸鱼YwY | 园豆:1869 (小虾三级) | 2020-09-08 17:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册