请教 C# asp.net 如何 精确 读取文字图片(中文或英文大写或英文小写)宽度与高度的问题

问题描述

请教C#asp.net如何读取文字图片(中文或英文大写或英文小写)精确宽度与高度的问题尝试了pathmeasurestingtexreader的几种方法都无法获取精确宽度与高度而示例网站都可以的先看示例网站请选中查看文字边距根据英文字母的含有的大小写不同图片的宽度与高度也不一样边距也比较精确网址http://draw.yifutu.com/ajaxpage/app/drawtextimageajax.aspx?operation=1&random=0.8987171404229826&text=%7B%22CMYK%22%3A%22%22%2C%22FileUrlInfo_ID%22%3A0%2C%22Height%22%3A0%2C%22IsShow%22%3Afalse%2C%22PropertyText%22%3A%22%E4%B8%AD%E6%96%87%E5%A7%93%E5%90%8D1%22%2C%22PropertyTextID%22%3A21%2C%22TemplateId%22%3A0%2C%22TemplateTransactionID%22%3A35719%2C%22Text%22%3A%22ggggg%22%2C%22TextAlign%22%3A1%2C%22TextFontColor%22%3A%22%23419346%22%2C%22TextFontSize%22%3A%2249%22%2C%22TextFontType%22%3A%22%E6%96%B9%E6%AD%A3%E7%BB%BC%E8%89%BA%E7%AE%80%E4%BD%93%22%2C%22TextID%22%3A0%2C%22TextImage%22%3Anull%2C%22TextLength%22%3A100%2C%22TextPropertyId%22%3A233123%2C%22TextStyle%22%3A2%2C%22TextX%22%3A302%2C%22TextY%22%3A59%2C%22Tilt%22%3A0%2C%22Type%22%3A1%2C%22Width%22%3A0%2C%22Wrap%22%3A0%2C%22TextFontTypeC%22%3A%22%E6%96%B9%E6%AD%A3%E7%BB%BC%E8%89%BA%E7%AE%80%E4%BD%93%22%7D

http://draw.yifutu.com/ajaxpage/app/drawtextimageajax.aspx?operation=1&random=1009.5162509560321526&text=%7B%22CMYK%22%3A%22%22%2C%22FileUrlInfo_ID%22%3A0%2C%22Height%22%3A0%2C%22IsShow%22%3Afalse%2C%22PropertyText%22%3A%22%E4%B8%AD%E6%96%87%E5%A7%93%E5%90%8D1%22%2C%22PropertyTextID%22%3A21%2C%22TemplateId%22%3A0%2C%22TemplateTransactionID%22%3A35719%2C%22Text%22%3A%22gggggGGG%22%2C%22TextAlign%22%3A1%2C%22TextFontColor%22%3A%22%23419346%22%2C%22TextFontSize%22%3A%2249%22%2C%22TextFontType%22%3A%22%E6%96%B9%E6%AD%A3%E7%BB%BC%E8%89%BA%E7%AE%80%E4%BD%93%22%2C%22TextID%22%3A0%2C%22TextImage%22%3Anull%2C%22TextLength%22%3A100%2C%22TextPropertyId%22%3A233123%2C%22TextStyle%22%3A2%2C%22TextX%22%3A312%2C%22TextY%22%3A62%2C%22Tilt%22%3A0%2C%22Type%22%3A1%2C%22Width%22%3A0%2C%22Wrap%22%3A0%2C%22TextFontTypeC%22%3A%22%E6%96%B9%E6%AD%A3%E7%BB%BC%E8%89%BA%E7%AE%80%E4%BD%93%22%7D

我们的代码usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Drawing;usingSystem.Drawing.Drawing2D;usingSystem.Drawing.Imaging;publicpartialclasstu:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){stringstr="轻轻去去去去去去";//Thisisaapple.floatemsize=20;Fontfont=newFont("Consolas",emsize,FontStyle.Regular);//Bitmapimage1=newBitmap(300,50);//Graphicsg1=Graphics.FromImage(image1);//SizeFsize1=g1.MeasureString(str,font);//intsize1width=(int)(Math.Ceiling(size1.Width));//intsize1height=(int)(Math.Ceiling(size1.Height));StringFormatformat=StringFormat.GenericDefault;GraphicsPathmyPath1=newGraphicsPath();myPath1.AddString(str,font.FontFamily,(int)(FontStyle.Regular),emsize,newPoint(0,0),format);RectangleFkkk=myPath1.GetBounds();Bitmapimage=newBitmap((int)(Math.Ceiling(kkk.Width)),(int)(Math.Ceiling(emsize)));Graphicsg=Graphics.FromImage(image);//g.FillRectangle(Brushes.White,50,0,image.Width,image.Height);g.Clear(Color.Transparent);GraphicsPathmyPath=newGraphicsPath();myPath.AddString(str,font.FontFamily,(int)(FontStyle.Regular),emsize,newPoint(-4,-4),format);g.SmoothingMode=SmoothingMode.HighQuality;g.PixelOffsetMode=PixelOffsetMode.HighQuality;g.FillPath(Brushes.Black,myPath);g.Save();Response.ContentType="image/png";Response.Clear();Response.BufferOutput=true;image.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Png);g.Dispose();image.Dispose();Response.Flush();}}

解决方案

解决方案二:
中文或英文大写或英文小写都应该测试下
解决方案三:
这项技术比较复杂,你可以查一“验证码识别”技术,如果都是你上面展示的这种规则的文字图片没有燥点的话还是很好办到的
解决方案四:
识别技术这玩意涉及到很多东西,怎么分切,怎么滤波都需要一些构思以前我也玩过,只能识别一些政府网站系统的验证码,因为他们都比较菜,哈
解决方案五:
这个跟识别技术有什么关系我是要生成精确宽度与高度的文字图片边距间隙要求比较小的是asp.net绘图不是什么识别
解决方案六:
请教C#asp.net如何读取文字图片(中文或英文大写或英文小写)精确宽度与高度的问题-------------------------------------------------
解决方案七:
引用4楼musocial的回复:

这个跟识别技术有什么关系我是要生成精确宽度与高度的文字图片边距间隙要求比较小的是asp.net绘图不是什么识别

请看这句myPath1.AddString(str,font.FontFamily,(int)(FontStyle.Regular),emsize,newPoint(0,0),format);RectangleFkkk=myPath1.GetBounds();这里是加载文字与字体样式后获取到Math.Ceiling(kkk.Widthkkk.height然户绘图Bitmapimage=newBitmap((int)(Math.Ceiling(kkk.Width)),(int)(Math.Ceiling(emsize)));我现在的情况是间隙比较大没有获取到精确的宽度与高度
解决方案八:

解决方案九:
这个技术其实很早就出来了,google的一图搜图就是这样的,你可以尝试去搜一下,用google搜吧,国内的比较少,国外的相关文档比较多一些。
解决方案十:
引用楼主musocial的回复:

请教C#asp.net如何读取文字图片(中文或英文大写或英文小写)精确宽度与高度的问题

目前来说,没有什么免费途径、现成的东西给你!你只能花钱去买服务。只要肯花钱,如果对方出现问题,你就可以走法律途径要求赔偿。自己做,不靠谱。
解决方案十一:
哦,我还以为你要识别任意的英文和中文文字呢?!!呵呵。原来是读取前端输出之后的宽、高像素值。这个东西用你那种代码吗?如果一定要用,那么你把背景色去掉,剩下的非背景的颜色的位置就能告诉你“左右上下”啊!但是用你那种代码,其结果,有什么意义吗?
解决方案十二:
我被前几楼给误导了。如果要区分“空白”其实很容易。去掉背景色,就可以在x方向上区分出一些连续的无色的分隔区域。
解决方案十三:
有的字体边距偏大,基本是正确的
解决方案十四:
引用10楼sp1234的回复:

哦,我还以为你要识别任意的英文和中文文字呢?!!呵呵。原来是读取前端输出之后的宽、高像素值。这个东西用你那种代码吗?如果一定要用,那么你把背景色去掉,剩下的非背景的颜色的位置就能告诉你“左右上下”啊!但是用你那种代码,其结果,有什么意义吗?

我做的功能是asp.net生成文字图片用本人的代码生成图片间隙比较大跟背景图片没有关系
解决方案十五:
引用12楼tcmakebest的回复:

有的字体边距偏大,基本是正确的

看我一楼发的案例和网址为什么人家可以实现生成的图片边距很精确
解决方案:
????????

时间: 2024-10-21 14:55:30

请教 C# asp.net 如何 精确 读取文字图片(中文或英文大写或英文小写)宽度与高度的问题的相关文章

程序开发-请教关于asp.net的问题

问题描述 请教关于asp.net的问题 asp.net做的是前端(就是像htmlcssjavascript那样的)还是做的是后端(像java的web程序开发,像jspservelet三大框架那样的)? 还有就是,对应于java的web程序开发,.net的wen程序开发要使用到那些技术?asp.met是不是?还有wcfwf那些又是些什么? 自己查资料,太文绉绉,看不太明白,求大神解释一下 解决方案 asp.net毫无疑问是后端的技术.wcf是用来做网络通讯和远程调用的框架,wf是工作流框架. 解决

asp.net使用npoi读取excel模板并导出下载详解

 这篇文章主要介绍了asp.net使用npoi读取excel模板并导出下载的示例,大家参考使用吧 为什么要使用NPOI导出Excel?   一.解决传统操作Excel遇到的问题:   如果是.NET,需要在服务器端装Office,且及时更新它,以防漏洞,还需要设定权限允许.NET访问COM+,如果在导出过程中出问题可能导致服务器宕机. Excel会把只包含数字的列进行类型转换,本来是文本型的,Excel会将其转成数值型的,比如编号000123会变成123. 导出时,如果字段内容以"-"

asp.net程序来读取多语言版本Ini配置文件

这是asp.net程序来读取多语言版本Ini配置文件的开发示例,主要分为以下三个部分: 1. Ini 配置文件 2. 读取Ini配置文件的DLL 3. Web页面调用与内容显示 4. 数据库表T_User,如右图 首先说明一下Ini 文件格式:如下图其中[M_Index]节点和该节点下的所有的key和value,其中[M_Index]节点的名称是对应开发示例中的每个页面所在的文件夹名称的第一个字母加下划线再加该页面的名称组合而成,如 M_Index 则表示Manager文件夹下面有一个Index

新手请教个asp.net下的问题,为什么会出错?

问题描述 新手请教个asp.net下的问题,为什么会出错? 请问这个错误怎么解决啊? 解决方案 WH这个类缺少无参构造函数或者它是一个抽象类. 解决方案二: 没有用using导入相应的命名空间

小白请教个asp.net jquery easyui 关闭页面的问题。

问题描述 小白请教个asp.net jquery easyui 关闭页面的问题. 我现在网页上有个关闭按钮,我想点击它后关闭当前页面,这个怎么实现啊?新人求教~ 解决方案 关闭弹出层还页面?关闭页面直接window.close() 关闭easyui的dialog有相关的方法 $('#xxx').dialog('close')

asp.net读取数据库图片的路径,然后显示到页面如何做?

问题描述 asp.net读取数据库图片的路径,然后显示到页面如何做?情况是这样的,用户通过上传图片到服务器,图片存储在一个文件夹,数据库只存储图片的路径,如何读取图片的路径,然后显示在页面.主要是页面哪里不知道如何获取并显示,高手给个案例或者教程啊 解决方案 解决方案二:引用楼主my328420969的回复: asp.net读取数据库图片的路径,然后显示到页面如何做?情况是这样的,用户通过上传图片到服务器,图片存储在一个文件夹,数据库只存储图片的路径,如何读取图片的路径,然后显示在页面.主要是页

请教个asp.net下时间的问题

问题描述 请教个asp.net下时间的问题 比如我在一页面下点击添加按钮,在弹出的界面上有新增时间和修改时间,这2个是不用手动输入 的,点击确定后,新增时间和修改时间为点击确定时候的时间,然后我点编辑按钮,修改一些 数据后确定,新增时间不变,修改时间变为点击编辑页面确定按钮的时间,这个怎么实现?我现在两个时间数据用的都是系统时间,每次修改后新增和修改时间都会跟系统时间同步. 解决方案 新增和修改字段设置默认值为getdate()/now,慕容恩为当前时间getdate()是mssqlserver

请教VC6.0++如何逐列读取TXT文件中的数据

问题描述 请教VC6.0++如何逐列读取TXT文件中的数据 例如TXT文件中的数据是这样 0 5 0.05 1 20 0.20 2 10 0.10 3 5 0.05 4 15 0.15 5 15 0.15 6 18 0.18 7 12 0.12 怎么把它们按每列读出来,分别放到三个不同的数组 解决方案 #include <stdio.h> #include <stdlib.h> void main(int argc, char *argv[]) { if (argc < 2)

PHP OCR实战:用Tesseract从图像中读取文字

Optical Character Recognition (OCR)即光学字符辨识是把打印文本转换成一个数字表示的过程.它有各种各样的实际应用–从数字化印刷书籍.创建收据的电子记录,到车牌识别甚至破解基于图像的验证码. Tesseract是一个能实现OCR的开源项目.你能在*Nix系统,Mac系统和Windows系统上运行这个项目,但是只要使用一个库,我们就能在PHP项目中使用它了.本教程的目的是教你如何使用. 安装 准备 为了让事情变得简单和一致的, 我们将使用虚拟机(本文使用Vagrant