随笔-48  评论-309  文章-0  trackbacks-3
在一个项目中,我使用了aspjpeg组件来实现生产电子请帖的功能,也就是将数据库中的动态文字信息输出到一张背景图片上面,再生产新的jpg图片。
功能很简单,实现也不难。对于英文信息完全达到了我的预期要求。可是对于中文信息却出现了非常奇怪的现象。每行中文都只正确显示了其中的7个中文字符,后面的没有输出。
为了验证问题究竟出现在哪里,我写了一段代码进行测试:
        private void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在此处放置用户代码以初始化页面
            if(!this.IsPostBack)
            
{
                ASPJPEGLib.IASPJpeg objJpeg 
= new ASPJPEGLib.ASPJpegClass();
                
//首先打开一张背景图片
                objJpeg.Open(@"e:\jimyhsu.jpg");
                
//设置字体大小和颜色等属性
                objJpeg.Canvas.Font.Color = 0xffffff
                objJpeg.Canvas.Font.Family 
= "Times New Roman";
                objJpeg.Canvas.Font.Bold 
= 1// true
                objJpeg.Canvas.Font.Size = 17;
                
//开始输出文字
                string text = "欢迎进入忧郁的天空灰色的世界";
                objJpeg.Canvas.Print( 
20200, text, 134); //最后一个参数134表示以中文字符输出
                
//保存图片
                objJpeg.Save(@"e:\test.jpg");
            }

        }


结果生成的图片如下:
test.jpg

证明还是只有7个中文字符被输出了,看来是这个组件的一个bug啊

另:我使用的是aspjpeg 1.3,不知道它最新的版本有没有解决这个bug

posted on 2005-02-23 11:23 湘南和也 阅读(2409) 评论(10)  编辑 收藏 所属分类: .net技术

评论:
#1楼  2005-02-23 12:50 | Lanny      
有 1.5 版本。
  回复  引用  查看    
#2楼  2005-02-23 12:52 | 灵感之源:PSP团队Guru      
典型的ASCII与双字节问题,看看是否有新版本
  回复  引用  查看    
#3楼  2005-02-23 13:25 | 菩提树      
直接用.NET提供的图像类就可以实现吧
  回复  引用  查看    
#4楼  2005-02-23 13:25 | Wuvist [未注册用户]
为什么要用aspjpeg 组件?
用System.Drawing.Imaging的东西不好么?
  回复  引用    
#5楼  2005-02-23 17:32 | 萧萧 [未注册用户]
您可以尝试在中文后面加入相同数量的空格,问题应该可以解决,由于中文是双字节,所以COM计算长度时实际上只计算了一半,因此,你在文字后面追加相同数量的空格,就可解决,多余空格会被裁剪掉!:)
  回复  引用    
#7楼  2005-06-04 06:48 | qiujiangren [未注册用户]
如果我想在一张图片写入那种带有描边的字,该怎么写,语法是什么?找了好久也没找着啊。
  回复  引用    
#8楼 [楼主] 2005-06-13 20:31 | 湘南和也      
这个我倒没有试验过,或者你可以考虑使用system.drawing对象来实现你的想法
  回复  引用  查看    
#9楼  2005-06-28 22:58 | 郑彦 [未注册用户]
能否让字体更好看一些呢
  回复  引用    
#10楼 [楼主] 2005-06-29 11:46 | 湘南和也      
好像它对中文字体的支持并不好,建议直接使用.net下面的system.drawing来实现,它可以设置字体
  回复  引用  查看    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2005-02-24 22:32 编辑过


相关链接: