引子
最近项目中, 我们需要管理很多的打印机, 根据机种的不同, 我们需要显示相应的打印机图片,
这其中包含着一定的规则(依赖于使用SNMP从打印机取到的返回值)
因为打印机图片很多, 加之有时候我们还要使用替代的图片,
所以经常, 我打开一个网页, 都不确定显示出来的图片是否是正确的,
通常的做法, 我会查看这个图片的连接,确认一下文件名是否正确,
可是每次为了查看这个图片的连接, 我总要多点那么一下,
我觉得不直观, 所以在开发的时候, 我希望给图片加上Label.
我的想法是: 针对下面这样的原始图片

把文件名显示在图片上, 形如下面这样:

这样一来, 显示出来的图片是否正确, 就一目了然了.
为了完成这个事儿, 我起初使用的Photoshop,
但很快我就感觉到, 每次启动Photoshop往上面一个个加文字, 也是个麻烦事儿.
显然我需要的是一个命令工具,
一个命令搞定所有图片的那种.
调查了一下, 发现ImageMagick是个好工具.
ImageMagick
的主页
在这.
他跨平台, 支持命令行操作, 提供了ruby, python, java, .net等等一票语言的接口, 而且功能强大(关于功能列表和它支持的更多语言接口, 详见他的主页)
很是对我的胃口
下载下来配置了一下:
实现上面的功能, 只需命令如下:
第一幅图的命令(文件名标签添加在中间)
convert printer.png -fill red -pointsize 30 -annotate +10+141 "PN298-H_3_M_F" printer_label_middle.png
如果想给文字加上方框, 像第二幅图那样,可以使用下面命令:
convert printer.png -fill "#00ffff" -draw "rectangle 5,128,114,145" -fill red -annotate +10+141 "PN298-H_3_M_F" printer_label_middle.png
第二幅图的命令(文件名标签添加在底部)
convert printer.png -background Khaki -pointsize 30 label:"Hello PN298-L_3" -gravity Center -append printer_label_bottom.png
最后写个脚本, 包一下上面的命令, 对一组图片批量执行上面命令,
至此, 这个问题算是满意解决.
ImageMagick的
安装和配置
在它的主页上面, 有一个Binary Releases
的link.注意, 这个二进制下载居然不在他的Download
页面里面,
(Download里面我选了几个镜像, 发现都只有source, 起初我还以为他只能自己编译了)
对于windows, 里面有带dll的, 有不带的, 有安装版的, 有免安装的.
我下载的是免安装版的, 解压到本地, 配置成path即可.
只是当我第一次运行convert.exe命令时, 它提示我说: "必须指定文件系统"
原来我把ImageMagic追加到了path的最后,
导致convert.exe最先匹配到的是"C:\Windows\System32\convert.exe",
将ImageMagic的安装路径提到path前面即可
ImageMagick的文档和资源
①官网上的文档已经很详尽,
同时官网上面也介绍了关于他的两个书:
<<The Definitive Guide to ImageMagick >>
<<ImageMagick Tricks: Unleash the power of ImageMagick with this fast, friendly tutorial and tips guide>>
当然, 也有社区.
②我做上面的例子的时候, 参考了下面这两个文档连接:
ImageMagick v6 Examples -- Annotating Images
ImageMagick v6 Examples -- Text to Image Handling
③搜索的时候, 发现这个链接也不错
5 ImageMagick command line examples – part 1
④关于convert命令的详细, 参考这个链接
ImageMagick Convert Command-line Tool
想说的一点是, 这个链接中参数介绍有这样一行
-pointsize value font point size
这个pointsize就是font size.
起初我想使用这个参数, 搜了个"font size", 结果没有匹配着, 致使我开始漏掉了这个参数.
⑤下面这个blog是对RMagick的一个介绍(ps,ruby还有其他wrapper)
Image Manipulation @The Bastards Book of Ruby
可以做为一个概览, 看一看.
分享到:
相关推荐
- **图像处理库**:VB可能需要使用GDI+或第三方库(如ImageMagick .NET)来处理和显示图片。 - **数据库连接字符串**:为了连接到数据库,需要创建一个包含数据库路径、用户名、密码等信息的连接字符串。 - **SQL...
《Visual C++数字图像识别技术典型案例》是一本详细介绍如何使用Visual C++进行数字图像处理与识别的技术书籍。该书提供了丰富的案例研究及源代码,帮助读者深入理解并实践图像识别算法。然而,书中提供的部分示例...
GraphicsMagick 是一款强大的图像处理工具,常被誉为 Photoshop 的命令行接口(CLI)替代品,尤其适用于自动化工作流程和批量处理任务。它支持多种图像格式,并提供了丰富的图像处理功能,如裁剪、缩放、旋转、颜色...
以下是常见的C++笔试面试题及其核心知识点解析,帮助您系统复习
计算机短期培训教案.pdf
计算机二级Access笔试题库.pdf
下是一份关于C++毕业答辩的心得总结,内容涵盖技术准备、答辩技巧和注意事项,供参考
内容概要:本文档详细介绍了英特尔为苹果公司构建的基于智能处理单元(IPU)的Cassandra集群的技术验证(PoC)。主要内容涵盖IPU存储用例、已建存储PoC、MEV到MMG400的过渡、苹果构建IPU-Cassandra集群的动机以及PoC开发进展。文档还探讨了硬件配置、软件环境设置、性能调优措施及其成果,特别是针对延迟和吞吐量的优化。此外,文档展示了六节点Cassandra集群的具体架构和测试结果,强调了成本和复杂性的降低。 适合人群:对分布式数据库系统、NoSQL数据库、IPU技术感兴趣的IT专业人员和技术管理人员。 使用场景及目标:适用于希望了解如何利用IPU提升Cassandra集群性能的企业技术人员。主要目标是展示如何通过IPU减少服务器部署的成本和功耗,同时提高数据处理效率。 其他说明:文档中涉及的内容属于机密级别,仅供特定授权人员查阅。文中提到的技术细节和测试结果对于评估IPU在大规模数据中心的应用潜力至关重要。
计算机二级考试C语言题.pdf
计算机发展史.pdf
计算机仿真技术系统的分析方法.pdf
yolo编程相关资源,python编程与YOLO算法组成的坐姿检测系统,功能介绍: 一:实时检测学生错误坐姿人数 二:通过前端阿里云平台显示上传数据,实现数据可视化
办公室网安全监控uptime-kuma,docker镜像离线压缩包
计算机课程设计-网络编程项目源码.zip
将该dll包放入项目并引用,可以操作打印机
杰奇2.3内核淡绿唯美小说网站源码 PC+手机版 自动采集 全站伪静态,送10.1版本关关采集器
计算机辅助教学.pdf
内容概要:本文详细介绍了如何利用天文相机和其他相关硬件设备搭建一套高画质、高帧率的流星监控系统,以及针对红色精灵闪电这一特殊自然现象的捕捉方法。文中不仅涵盖了硬件的选择标准如CMOS靶面尺寸、量子效率等重要参数,还提供了基于Python和OpenCV实现的基本监控代码示例,包括亮度突变检测、运动检测算法等关键技术点。此外,对于安装位置的选择、供电方式、成本控制等方面也有具体的指导建议。 适用人群:对天文摄影感兴趣的爱好者,尤其是希望捕捉流星和红色精灵闪电等瞬时天文现象的专业人士或业余玩家。 使用场景及目标:适用于希望搭建个人天文观测站,用于科学研究或个人兴趣爱好的场景。目标是能够稳定可靠地捕捉到流星和红色精灵闪电等难以捉摸的天文现象,为研究提供高质量的数据资料。 其他说明:文中提到的一些技术和方法虽然较为复杂,但对于有一定编程基础和技术动手能力的人来说是非常实用的参考资料。同时,文中提供的省钱技巧也为预算有限的用户提供了一些有价值的建议。
时间序列分析-基于R(第2版)习题数据