imagemagick-查找透明png轮廓的坐标(非边框) [英] imagemagick - find coordinates of outline of transparent png (not border)

查看:84
本文介绍了imagemagick-查找透明png轮廓的坐标(非边框)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

虽然很容易在视觉上绘制轮廓,但是imagemagick是否可以输出透明图像轮廓的坐标?

While it's easily done to visually outline, is it possible to have imagemagick output the coordinates of the outline of a transparent image?

请注意,通过轮廓线,我不仅指边界框的边界,还指任意形状的透明图像几何体周围的实际轮廓.

Note, by outline, I don't mean just the bounding box border, but the actual contour around an arbitrarily shaped transparent image geometry.

推荐答案

假设您从这张具有透明背景的图片开始:

Let's say you start with this image, which has a transparent background:

您可以提取透明度并找到边缘,如下所示:

You can extract the transparency and find the edges like this:

convert penguin.png -alpha extract -edge 1 -threshold 50% edges.png

如果要获取轮廓坐标(即白色像素)的列表而不是图像,则可以执行以下操作:

If, rather than an image, you want a list of the coordinates of the contour (i.e. the white pixels), you could do this instead:

convert penguin.png -alpha extract -edge 1 -threshold 50% -depth 8 txt: | awk -F: '/white/{print $1}'
256,0
253,1
254,1
255,1
257,1
258,1
259,1
253,2
259,2
252,3
253,3
...
...

more 替换 awk 及其之后的所有内容,以查看 awk 的实际作用-它只是打印每个像素的坐标那是白色的.

Replace awk and everything after it with more to see what the awk is actually doing - it is just printing the coordinates of every pixel that is white.

以上像素按行顺序显示,不像相邻像素一起显示的轮廓.如果需要,您可能更喜欢使用 potrace 这样的透明度生成SVG,如下所示:

The above pixels come out in row order, not like a contour where adjacent pixels come out together. If you want that, you might prefer to generate an SVG of the transparency with potrace like this:

convert penguin.png -alpha extract -threshold 50% pgm:- | potrace - --svg < alpha.pgm > result.svg

输出

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
 "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
 width="500.000000pt" height="577.000000pt" viewBox="0 0 500.000000 577.000000"
 preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.13, written by Peter Selinger 2001-2015
</metadata>
<g transform="translate(0.000000,577.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M0 3294 l0 -2476 25 16 c31 20 104 21 152 1 20 -8 38 -14 40 -12 2 2
-8 35 -23 73 -49 129 -29 246 43 260 51 10 109 -12 159 -58 43 -40 44 -40 44
-15 0 41 60 120 99 130 28 7 32 11 26 30 -24 70 -15 385 16 637 44 346 171
715 351 1023 34 58 35 77 5 77 -43 0 -242 47 -277 65 -68 35 -196 130 -248
185 -83 86 -119 154 -153 286 -31 124 -38 237 -18 307 13 49 15 49 91 -15 177
-151 388 -309 477 -357 42 -23 108 -60 146 -81 76 -43 194 -83 228 -78 19 3
23 12 28 60 4 32 12 65 19 73 15 18 16 17 -35 34 -88 29 -255 122 -255 141 0
5 12 15 27 22 24 11 48 10 168 -9 77 -12 179 -22 226 -23 80 0 87 2 111 28 60
64 64 105 11 123 -21 6 -76 30 -122 51 l-84 39 -30 -21 c-21 -16 -32 -19 -40
-11 -19 19 8 54 63 84 46 25 59 27 109 22 31 -3 66 -8 79 -11 77 -16 -65 130
-178 182 -84 38 -150 45 -340 35 -225 -12 -242 -15 -322 -55 -57 -28 -68 -31
-68 -17 0 26 77 95 150 134 206 112 479 177 741 177 l97 0 -20 38 c-37 70 -10
186 68 294 54 75 56 88 23 119 -16 15 -29 36 -29 47 0 12 -4 24 -10 27 -19 12
-10 57 18 94 69 89 125 236 167 431 24 113 41 148 68 137 19 -7 43 -83 52
-162 l7 -60 33 90 c18 50 36 110 40 135 10 61 55 111 55 61 0 -11 9 -35 20
-54 29 -49 40 -235 17 -289 -9 -21 -12 -38 -8 -38 4 0 34 22 65 50 31 27 66
55 78 61 20 11 21 9 14 -22 -3 -18 -24 -72 -46 -119 -22 -48 -40 -90 -40 -94
0 -14 43 17 110 80 143 136 324 456 306 545 -4 21 -1 31 12 38 11 7 -402 10
-1260 11 l-1278 0 0 -2476z"/>
<path d="M2613 5669 c17 -82 18 -107 9 -133 -7 -18 -12 -47 -12 -64 0 -18 -14
-60 -31 -93 -17 -34 -28 -64 -25 -67 10 -10 49 17 129 88 43 39 84 70 92 70
23 0 17 -31 -15 -79 -17 -24 -30 -49 -30 -56 0 -6 -32 -58 -70 -115 -39 -56
-69 -104 -67 -106 4 -5 111 33 153 54 33 17 42 18 57 7 9 -7 17 -17 17 -23 0
-16 -104 -125 -134 -141 -14 -8 -26 -17 -26 -20 0 -4 23 -17 50 -30 53 -25
100 -63 100 -80 0 -19 -36 -30 -116 -36 -43 -3 -103 -8 -133 -11 l-54 -6 82
-80 c92 -90 185 -225 230 -331 34 -83 71 -217 71 -260 0 -15 5 -38 12 -50 18
-34 31 -169 29 -311 -1 -97 2 -133 12 -145 8 -9 29 -43 47 -76 19 -33 58 -96
87 -139 64 -93 107 -175 122 -233 10 -36 17 -44 49 -54 59 -18 220 -22 467 -9
127 6 316 15 420 20 184 9 267 15 311 25 46 10 364 35 451 35 64 0 93 -4 96
-12 3 -7 6 566 6 1275 l1 1287 -1204 0 -1203 0 20 -101z"/>
<path d="M4971 3138 c-20 -33 -89 -96 -165 -153 -23 -17 -103 -92 -179 -168
-77 -75 -145 -137 -153 -137 -8 0 -27 -21 -43 -47 -29 -47 -30 -47 -178 -99
-81 -29 -158 -53 -171 -53 -12 -1 -61 -15 -109 -31 -50 -18 -106 -30 -133 -30
-25 1 -101 -2 -170 -6 -100 -5 -136 -3 -179 10 -30 9 -70 16 -89 16 -33 0 -33
-1 -25 -32 4 -18 8 -92 8 -164 l0 -132 32 -20 c17 -12 70 -64 117 -117 68 -76
96 -119 140 -208 58 -118 106 -256 106 -302 0 -24 3 -26 23 -20 12 3 42 9 67
12 69 8 83 -18 98 -180 16 -176 45 -309 96 -446 24 -64 48 -129 54 -146 17
-50 52 -247 52 -295 0 -69 -42 -141 -129 -221 -99 -91 -141 -111 -239 -112
-91 -2 -129 14 -157 67 -23 42 -35 44 -76 14 -35 -26 -138 -36 -191 -19 -60
20 -78 45 -78 106 0 47 4 57 24 70 41 27 148 62 227 74 41 6 89 14 107 17 19
3 32 11 32 20 0 8 12 42 26 75 24 58 25 66 15 145 -7 57 -25 120 -57 204 -26
66 -50 120 -53 120 -16 -1 -49 -42 -73 -90 -56 -110 -125 -182 -277 -287 -66
-46 -158 -73 -248 -73 -82 0 -93 -4 -173 -65 -85 -65 -188 -116 -290 -143
-139 -38 -226 -46 -470 -45 -201 1 -250 4 -339 23 -57 12 -116 20 -130 17 -14
-3 -73 -22 -131 -42 -97 -34 -111 -37 -192 -33 l-87 4 -6 -40 c-4 -23 -9 -55
-12 -73 -7 -43 -51 -82 -104 -92 -25 -5 786 -9 1934 -10 l1977 -1 0 1585 c0
872 -2 1585 -4 1585 -2 0 -14 -15 -25 -32z"/>
<path d="M0 358 l0 -358 458 1 c393 1 450 2 407 14 -146 37 -255 105 -435 270
-30 28 -102 83 -160 122 -173 118 -218 166 -256 271 -11 32 -13 -14 -14 -320z"/>
</g>
</svg>

这篇关于imagemagick-查找透明png轮廓的坐标(非边框)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆