测试发现:

ImageMagick使用中文字体,在图片上绘制带粗或斜体的中文,看不到效果。

如果使用英文字体,绘制粗或斜体的英文,99%都有效果。

今天无意看到一篇文章提到:

convert -list font 获得系统目前拥有的字体的列表,其中glyphs一项是字体的文件。
 
试了一下,果然能列出所有的字体。
 
但和windows的字体选择对话框一对比,郁闷了。
 
比如windows的字体选择对话框里显示“宋体”和“新宋体”。
 
但在 convert -list font 列出来的是:
 
  Font: 宋体-&-新宋体
  family: 宋体 & 新宋体
  style: Normal
  stretch: Normal
  weight: 400
  glyphs: c:\windows\fonts\simsun.ttc
 
 ----------------------------------------------------------------------------------------
 
从下面的字体列表中也能看出来,为什么用中文字体看,设置了粗斜体也没有效果了。 
 

Font: Arial
  family: Arial
  style: Normal
  stretch: Normal
  weight: 400
  glyphs: c:\windows\fonts\arial.ttf
Font: Arial-Black
  family: Arial
  style: Normal
  stretch: Normal
  weight: 900
  glyphs: c:\windows\fonts\ariblk.ttf
Font: Arial-Bold
  family: Arial
  style: Normal
  stretch: Normal
  weight: 700
  glyphs: c:\windows\fonts\arialbd.ttf
Font: Arial-Bold-Italic
  family: Arial
  style: Italic
  stretch: Normal
  weight: 700
  glyphs: c:\windows\fonts\arialbi.ttf
Font: Arial-Italic
  family: Arial
  style: Italic
  stretch: Normal
  weight: 400
  glyphs: c:\windows\fonts\ariali.ttf
Font: Arial-Narrow
  family: Arial Narrow
  style: Normal
  stretch: Normal
  weight: 400
  glyphs: c:\windows\fonts\arialn.ttf
Font: Arial-Narrow-Bold
  family: Arial Narrow
  style: Normal
  stretch: Normal
  weight: 700
  glyphs: c:\windows\fonts\arialnb.ttf
Font: Arial-Narrow-Bold-Italic
  family: Arial Narrow
  style: Italic
  stretch: Normal
  weight: 700
  glyphs: c:\windows\fonts\arialnbi.ttf
Font: Arial-Narrow-Italic
  family: Arial Narrow
  style: Italic
  stretch: Normal
  weight: 400
  glyphs: c:\windows\fonts\arialni.ttf

Font: 華康正顏楷體W7-&-華康正顏楷體W7(P)
  family: 華康正顏楷體W7 & 華康正顏楷體W7(P)
  style: Normal
  stretch: Normal
  weight: 400
  glyphs: c:\windows\fonts\萢康正顏楷體w7.ttc
Font: 宋体-&-新宋体
  family: 宋体 & 新宋体
  style: Normal
  stretch: Normal
  weight: 400
  glyphs: c:\windows\fonts\simsun.ttc
Font: 苏新诗卵石体
  family: 苏新诗卵石体
  style: Normal
  stretch: Normal
  weight: 400
  glyphs: c:\windows\fonts\苏新诗卵石体.ttf

2012-10-08

使用ImageMagick 在图片上绘制粗斜体的中文也许是一个错误。的更多相关文章

  1. Android 使用Canvas在图片上绘制文字

    一个小应用,在图片上绘制文字,以下是绘制文字的方法,并且能够实现自动换行,字体自动适配屏幕大小 private void drawNewBitmap(ImageView imageView, Stri ...

  2. Golang 图片上绘制文字

    之前介绍过使用 FreeType-go 来绘制字(http://www.cnblogs.com/ghj1976/p/3445568.html),  现在相关的包被做了整合,主要是整合到了 github ...

  3. Swift - 给图片添加图片水印(图片上绘制另一张图,并可设透明度)

    我前面写了篇文章讲解如何给图片添加文字水印,而如果想要添加图片类型的水印也很简单,只要把原来代码里添加文字的部分改成图片即可. 1,效果图如下: (在图片左上角添加了一个半透明的logo图片) 2,为 ...

  4. 如何用 matlab 在图片上绘制矩形框 和 添加文字 ?

    如何给图像添加矩形框?以及添加想要输入的文字 ? 案例程序,如下所示: clc; close all; clear all;image = imread('/home/wangxiao/Picture ...

  5. c#图片上绘制半透明矩形

    p.CreateGraphics().FillRectangle( ,Color.LightGreen)), iLeft, iTop, iRight - iLeft, iBottom - iTop); ...

  6. winfrom在图片上实现绘制

    在控件加载入图片的基础上进行绘制内容 添加文字 首先就是要确定输入的文字,还有文字的样式. 文字的样式用到了FontDialog控件,获取文字呢,就放个textbox就可以了.如果在输入文字的显示展示 ...

  7. android 加载自定义图片并在图片上绘图

    来源:毕设 关键词:Bitmap Canvas //毕设中需要自定义室内地图,并且在地图上绘制轨迹 //此处是一个测试Demo,实现图片的加载和记录手指在屏幕上的运动轨迹 图片的载入 使用系统提供的内 ...

  8. PHP实现多图片上传

    PHP实现多图片上传 今天在工作中遇到了一个需求:一个表单实现多个上传图片,类似于QQ空间上传照片的模式.即:可以一次性上传多个图片,但是封面图片只有一个. 最先,最重要的事,在服务器上对文件进行读写 ...

  9. 从web编辑器 UEditor 中单独提取图片上传,包含多图片单图片上传以及在线涂鸦功能

    UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码.(抄的...) UEditor是非常好用的富文 ...

随机推荐

  1. Exp3

    利用不同免杀方式生成文件 1.msfvenom 使用msfvenom命令查看功能介绍 其中有: -p 选择一个载荷(或者叫模块) -l 载荷列表 -f 生成的文件格式 -e 编码方式 -l 编码次数 ...

  2. linux下使用软连接之案例二

           在笔者的上一篇文章介绍过怎么通过linux的软连接在不修改上传代码的情况下,将上传到项目路径下的图片改为上传到项目外面,防止重新部署后图片被删除了.同时还可以直接通过类似访问静态资源的方 ...

  3. Luogo P2324 [SCOI2005]骑士精神

    所有想练习A*的人都先来敲一下这道题吧. 数据范围即便只有5*5,但朴素的爆搜还是会超时. 因此考虑剪枝. 对于这道题,肯定只要进行最优化剪枝,判断现在走的步数+剩下最少要走的步数,如果大于ans或者 ...

  4. Ms.office2010安装教程

    下面用到的软件下载地址如下:http://pan.baidu.com/s/1c08cxPI 第一步 1. 将压缩包office2010.rar解压解压后,会出现一个office2010文件夹如图1.1 ...

  5. libgdx学习记录21——Box2d物理引擎之碰撞Contact、冲量Impulse、关节Joint

    Box2d中,物体可以接受力(Force).冲量(Impulse)和扭矩(Torque).这些物理元素都能改变物体的运动形式,并且默认都会唤醒物体,当然只是针对动态物体. 力是一个持久的效果,通过Bo ...

  6. C#中二进制、十进制和十六进制互相转换的方法

    二进制在C#中无法直接表示,我们一般用0和1的字符串来表示一个数的二进制形式.比如4的二进制为"100".下面介绍C#里面用于进制转换的方法. 十进制转换为二进制(int--> ...

  7. vs2013 std::sort 分析

    由于之前在debug模式下发现stl的sort简直慢到不能忍,所以自己写了一个sgi的sort,后来发现在release模式下,vs自带的sort快的不行,就研究了下. 这里有些和sgi-stl相通的 ...

  8. CSS技巧收集——巧用滤镜

    最近暴雪一款叫<守望先锋>的游戏火到不行,身边很多人都深受其毒害,虽然博主自己没有买(穷),但是耳濡目染也了解了个大概. 由于之前大致学习了一下 css 滤镜的各种用法,所以心血来潮结合二 ...

  9. 前端项目模块化的实践1:搭建 NPM 私有仓库管理源码及依赖

    以下是关于前端项目模块化的实践,包含以下内容: 搭建 NPM 私有仓库管理源码及依赖: 使用 Webpack 打包基础设施代码: 使用 TypeScript 编写可靠类库 使用 TypeScript ...

  10. yocto-sumo源码解析(二): oe-buildenv-internal

    1 首先,脚本先对运行方式进行了检测: if ! $(return >/dev/null 2>&1) ; then echo 'oe-buildenv-internal: erro ...