![切片并重新排列细长图像以适合屏幕](https://linux22.com/image/1527901/%E5%88%87%E7%89%87%E5%B9%B6%E9%87%8D%E6%96%B0%E6%8E%92%E5%88%97%E7%BB%86%E9%95%BF%E5%9B%BE%E5%83%8F%E4%BB%A5%E9%80%82%E5%90%88%E5%B1%8F%E5%B9%95.png)
我有许多图像,每张大约 10000 x 40 像素,可视化图形,这些图形主要是带有一些支线和其他“装饰”的链条。(它们是fstdraw
通过 Graphviz 的管道传输 OpenFST 制成的dot
)。
从命令行,我如何自动强力重新排列这些细长图像之一,使其适合 1920x1080 屏幕?例如,将图像分割成最多 1920 像素长的碎片,然后垂直堆叠它们。
convert -crop
在循环中使用 ImageMagick 的一些东西?
失败的原因如下:
dot
用它的一个姐妹neato
、等替换fdp
。至少fdp
输出一个非瘦身图像,但只是因为瘦身图像该死的染色体一样随机扭曲和重叠。图像仍然大部分是白色的,标签小得难以辨认,结构只是一个波浪线。将该选项添加
ratio=1
到的dot
输入仅仅将 10000x40 填充为 10000x10000。
答案1
因为 10000/1920 舍入为 6,所以将输入从左到右分成 6 部分,然后从上到下将它们重新粘合在一起。不要使用 6 个中间文件,而是使用一种可容纳多个图像的格式(tiff 比 gif 快得多)以及 stdin 和 stdout。
convert in.png -crop 6x1@ +repage tiff:- | convert tiff:- -append out.png