EDA365电子工程师网

标题: [求助]请问怎么精确识别文字边框?? [打印本页]

作者: 361553894    时间: 2015-10-26 08:37
标题: [求助]请问怎么精确识别文字边框??
目前做法是
  1. Text = text->text
  2. num = strlen(Text)
  3. block = atoi(text->textBlock)
  4. font = axlGetParam(sprintf(nil "paramTextBlock:%d" block))
  5. charSpace = font->charSpace
  6. height = font->height
  7. photoWidth = font->photoWidth
  8. width = font->width
  9. origin = text->xy
  10. originX = car(origin)
  11. originY = cadr(origin)
  12. swidth = num*width + (num - 1)*charSpace
复制代码
然后根据originX、originY、swidth和height确定文字的左下,右下,右上,左上四个坐标点,然后根据axlPolyFromDB和axlDBCreateShape创建能包住文字的shape框
但是"C”“1”“4”“_”这类的比较特殊,都会超出或者不到边框
请问有什么好办法能解决么???
当然,前提是15.5也能使用的



作者: deargds    时间: 2015-10-27 11:30
简单的方法就是将特殊字符分类,占位不同的区别开,复杂的方法就是要需研究VECTORFONT的格式来获取TEXT实际的占位。
作者: 361553894    时间: 2015-10-28 09:00
deargds 发表于 2015-10-27 11:30
简单的方法就是将特殊字符分类,占位不同的区别开,复杂的方法就是要需研究VECTORFONT的格式来获取TEXT实际 ...

[attach]103825[/attach][attach]103826[/attach]
这就是目前的效果,针对不同的Width和photoWidth进行原点和首尾不同字符字宽的修正
[attach]103829[/attach]
这个就是研究出来的字宽修正表,实际字宽还与Width和photoWidth相关





欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2