锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 英语翻译 / 使用GDI绘制OpenType字体文本 / GDI绘制文本错误
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品开源心得,转载请注明:“锐英源www.wisestudy.cn,孙老师作品,电话13803810136。需要全文内容也请联系孙老师。

GDI绘制文本错误

Hi am using the project to read a open true type font which i cannot load into the standardized InstalledFonts class.

嗨,我现在使用的是项目是读取open true type字体,我不能加载到标准化InstalledFonts类里。

I need the text to be in a bitmap format but when i use the graphics from a bitmap it writes a different a different font to the bitmap in comparision to the graphics of the panel1.

我需要的文本是位图格式,但是当我使用位图的图形写入不同的字体到位图里graphics的和写入Panel的graphics进行对比。

In the example i call the RenderText funtion twice. once like in the provided example: 在这个例子中我调用RenderText函数两次。提供一个相似的例子:

//textbox1 = text to draw
   //textbox2 = font name
   private void panel1_Paint (object sender, PaintEventArgs e) {
   int size;
   if (Int32.TryParse (comboBox1.Text, out size) == false) {
   size = (int)System.Drawing.SystemFonts.DefaultFont.Size;
   }    
   RenderMyText (e.Graphics, textBox1.Text, textBox2.Text, System.Drawing.Color.Red, size);}        

and once to write the drawn text in a bitmap: 编写绘制位图文本:

 private void panel1_Paint (object sender, PaintEventArgs e) {
int size;
if (Int32.TryParse (comboBox1.Text, out size) == false) {
size = (int)System.Drawing.SystemFonts.DefaultFont.Size;
}
System.Drawing.Color foreColor = System.Drawing.Color.FromArgb(255, 255, 20, 147);
Bitmap bmp = new Bitmap(textBlockSize.Width, textBlockSize.Height);
Graphics g = Graphics.FromImage(bmp);
RenderMyText(g, textBox1.Text, textBox1.Text, foreColor, size);
pictureBox1.Image = bmp;
bmp.Save(@"C:\temp\text.bmp");
}
which results in this: 导致这样:

the left is the correct draw text of the selected font, the right is not. 左边是正确的选择字体绘制文本,右边不是。

Do you please please have any suggestions for me to load the correct drawn text into a bitmap... 你能给我一些建议,可以帮我加载正确的文本绘制成位图么?.

Why two textBox1? 为什么是两个textBox1 ?

RenderMyText(g, textBox1.Text, textBox1.Text, foreColor, size);

sorry just a typo while posting... in my code i have different names for the textboxes: 对不起只是发布时一个错字…在代码中文本框有不同的名称

EDIT: 编辑:

Nope it wasn't a typo while posting... i indeed have different names for my textboxes in my code but, they have indeed the same name in my code!

发布时它不是一个错字……在我的代码中确实有不同的文本框名称,但他们中的确有相同的名称!

i now get this result:

我现在得到的结果:

Screenshot[^]

which is still crappy, but much much better! 仍然是糟糕的,但好多了!

Thank you very much wmjordan 非常感谢

Yes, it is crappy. 是的,它是糟糕的。

The windows GDI does not support drawing onto device independent Bitmap with semi-transparency. Currently I could not figure out how to support that with GDI. GDI窗口不支持绘制一般透明的与设备无关的位图。目前我无法弄清楚如何使用GDI支持。

If anyone can solve this problem, please tell us post.如果有谁能解决这个问题,请发帖告诉我们

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内