对于 DOP 中字符显示坐标的提取
【摘要】
简 介: 本文给出了利用 DOP 获得文字坐标的的 DOP方法。 关键词: 字符位置,DOP,显示
...
简 介: 本文给出了利用 DOP 获得文字坐标的的 DOP方法。
关键词
: 字符位置,DOP,显示
§01 文字坐标
为了实现 DOP 中文字逐步显示,需要获得每个文字的能够逐步显示,需要将所有的字符坐标。 下面给出了获得字符坐标的具体方法。
一、测试文字
下面是创建的测试文字。包括有汉字、英文字符,多行排列等。
▲ 图1.1 测试字符
二、处理程序
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY -- by Dr. ZhuoQing 2022-08-18
#
# Note:
#============================================================
from headm import *
strid = 4
splitstr =tspgetdopstring(strid).split('\r\n')
#------------------------------------------------------------
def chineselen(s):
return int((len(s.encode('utf-8'))-len(s))/2)+len(s)
linenumber = len(splitstr)
maxlength = max([chineselen(s) for s in splitstr])
rect = tspgetbox(strid)
rectwidth = rect[2] - rect[0]
rectheight = rect[3] - rect[1]
boxdim = []
for i in range(linenumber):
lines = splitstr[i]
strlen = len(lines)
ystart = int(rectheight * i / linenumber + rect[1])
yend = int(rectheight * (i + 1) / linenumber + rect[1])
if strlen > 0:
for j in range(strlen):
xstart = int(chineselen(lines[0:j]) * rectwidth / maxlength + rect[0])
xend = int(chineselen(lines[0:j+1]) * rectwidth / maxlength + rect[0])
boxdim.append((xstart, ystart, xend, yend))
printf(len(boxdim))
printf(boxdim)
#------------------------------------------------------------
tspsetpen(color=0xff, width=1)
for b in boxdim:
tspbox(dc=1, x1=b[0], y1=b[1], x2=b[2], y2=b[3])
#------------------------------------------------------------
# END OF FILE : TEST1.PY
#============================================================
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
1、处理结果
使用上述办法,可以获得显示字符的每个字符的坐标。
▲ 图1.1.1 处理结果
※ 总 结 ※
本文给出了利用 DOP 获得文字坐标的的 DOP方法。
● 相关图表链接:
文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuoqing.blog.csdn.net/article/details/126398654
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)