失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 绘制图形可以使用什么python函数_如何对绘制PDF图形的Python函数进行单元测试?...

绘制图形可以使用什么python函数_如何对绘制PDF图形的Python函数进行单元测试?...

时间:2019-11-09 12:27:56

相关推荐

绘制图形可以使用什么python函数_如何对绘制PDF图形的Python函数进行单元测试?...

(另请参阅下面的更新!)

我在Linux上用一个shell脚本做同样的事情ImageMagick的compare命令

pdftk实用程序

Ghostscript(可选)

(将其移植到DOS/Windows的.bat批处理文件将非常容易。)

我的应用程序创建了一些“已知良好”的参考PDF。代码更改后新生成的PDF将与这些参考PDF进行比较。比较是逐像素进行的,并保存为新的PDF格式。在这个PDF中,所有不变的像素都被画成白色,而所有不同的像素都被画成红色。在

以下是构建基块:

pdftk公司

使用此命令将多页PDF文件拆分为多个单页PDF:pdftk reference.pdf burst output somewhere/reference_page_%03d.pdf

pdftk comparison.pdf burst output somewhere/comparison_page_%03d.pdf

比较

使用此命令为每个页面创建一个“diff”PDF页面:

^{pr2}$

幽灵脚本

由于自动插入元数据(例如当前日期+时间),PDF输出不能很好地用于基于MD5hash的文件比较。在

如果您想自动发现由纯白页组成的所有案例,还可以使用bmp256输出设备转换为无元数据位图格式。您可以对原始PDF(参考和比较)或diff PDF页面执行此操作:gs \

-o reference_diff_page_001.bmp \

-r72 \

-g595x842 \

-sDEVICE=bmp256 \

reference_diff_page_001.pdf

md5sum reference_diff_page_001.bmp

如果MD5sum是您期望的595x842 PostScript点的全白页,那么单元测试通过了。在

更新:

我不知道为什么我之前没有想到从ImageMagick compare生成一个直方图输出。。。在

以下是链接两个不同命令的命令管道:第一个与上面的compare相同,它生成“白色像素相等,红色像素不同”格式,只输出ImageMagick内部miff格式。它不写入文件,而是写入stdout。在

第二种方法使用convert读取stdin,生成直方图并以文本形式输出结果。将有两条线:

表示白色像素数的一个

另一个表示红色像素的数量。在

接下来是:compare \

reference.pdf \

current.pdf \

-compose src \

miff:- \

| \

convert \

- \

-define histogram:unique-colors=true \

-format %c \

histogram:info:-

样本输出:56934: (61937, 0, 7710,52428) #F1F100001E1ECCCC srgba(241,0,30,0.8)

444056: (65535,65535,65535,52428) #FFFFFFFFFFFFCCCC srgba(255,255,255,0.8)

我认为这种类型的输出非常适合于自动单元测试。如果你计算这两个数字,你可以很容易地计算出“红色像素”的百分比,甚至可以根据某个阈值决定返回通过或失败(如果出于某种原因不一定需要“零红色”)。在

如果觉得《绘制图形可以使用什么python函数_如何对绘制PDF图形的Python函数进行单元测试?...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。