Reputation: 27
My project involve finding boxes in image and checking what inside them. For debug and proof purpose, I have to plot captions on the pages. The resulting imagemagick command looks like :
magick Q_College-001.dist.png -colorspace sRGB -stroke none -strokewidth 1 -background "rgba(0,255,0,0.3)" -size 37.8x29.4 caption:'84-1' -geometry +200.6+125.8 -compose over -composite \
-background "rgba(255,0,0,0.3)" -size 40.6x29.4 caption:'87-2' -geometry +519.2+125.8 -compose over -composite \
-background "rgba(0,255,0,0.3)" -size 53.2x30.8 caption:'317-3' -geometry +538.4+287.6 -compose over -composite \
-background "rgba(255,0,0,0.3)" -size 54.6x29.4 caption:'322-4' -geometry +639.2+287.8 -compose over -composite \
-background "rgba(0,255,0,0.3)" -size 54.6x29.4 caption:'463-5' -geometry +535.2+334.8 -compose over -composite \
-background "rgba(255,0,0,0.3)" -size 54.6x29.4 caption:'479-6' -geometry +638.2+337.8 -compose over -composite \
-background "rgba(255,0,0,0.3)" -size 53.2x29.4 caption:'605-7' -geometry +535.4+371.8 -compose over -composite -background "rgba(0,255,0,0.3)" -size 53.2x29.4 caption:'601-8' -geometry +637.4+370.8 -compose over -composite \
-background "rgba(255,0,0,0.3)" -size 54.6x28 caption:'728-9' -geometry +536.2+437 -compose over -composite -background "rgba(255,0,0,0.3)" -size 53.2x29.4 caption:'744-10' -geometry +636.4+438.8 -compose over -composite \
-background "rgba(0,255,0,0.3)" -size 54.6x30.8 caption:'999-11' -geometry +537.2+531.6 -compose over -composite \
-background "rgba(255,0,0,0.3)" -size 54.6x30.8 caption:'1005-12' -geometry +636.2+531.6 -compose over -composite -background "rgba(0,255,0,0.3)" -size 54.6x29.4 caption:'1483-13' -geometry +534.2+748.8 -compose over -composite \
-background "rgba(255,0,0,0.3)" -size 54.6x29.4 caption:'1489-14' -geometry +631.2+748.8 -compose over -composite \
-background "rgba(0,255,0,0.3)" -size 56x32.2 caption:'1595-15' -geometry +534+782.4 -compose over -composite -background "rgba(255,0,0,0.3)" -size 53.2x29.4 caption:'1589-16' -geometry +630.4+782.8 -compose over -composite \
-background "rgba(0,255,0,0.5)" -size 53.2x29.4 caption:'1762-17' -geometry +534.4+877.8 -compose over -composite \
-background "rgba(255,0,0,0.3)" -size 54.6x30.8 caption:'1767-18' -geometry +631.2+877.6 -compose over -composite -background "rgba(0,255,0,0.3)" -size 53.2x29.4 caption:'1837-19' -geometry +535.4+928.8 -compose over -composite \
-background "rgba(255,0,0,0.3)" -size 53.2x29.4 caption:'1827-20' -geometry +630.4+926.8 -compose over -composite -background "rgba(255,0,0,0.3)" -size 54.6x29.4 caption:'1890-21' -geometry +536.2+977.8 -compose over -composite \
-background "rgba(0,255,0,0.3)" -size 51.8x30.8 caption:'1886-22' -geometry +628.6+976.6 -compose over -composite -background "rgba(0,255,0,0.5)" -size 80.8x32 caption:'194-23' -geometry +878.1+221 -compose over -composite \
-background "rgba(0,255,0,0.5)" -size 72x32 caption:'198-24' -geometry +1091+221 -compose over -composite -background "rgba(0,255,0,0.5)" -size 80x32.8 caption:'189-25' -geometry +1291+220.1 -compose over -composite \
-background "rgba(0,255,0,0.5)" -size 80.8x44.8 caption:'276-26' -geometry +878.1+262.6 -compose over -composite -background "rgba(0,255,0,0.5)" -size 72x44.8 caption:'280-27' -geometry +1091+262.6 -compose over -composite \
-background "rgba(0,255,0,0.5)" -size 80x44 caption:'286-28' -geometry +1291+262.5 -compose over -composite -background "rgba(255,0,0,0.5)" -size 81.6x44 caption:'418-29' -geometry +878.2+318.5 -compose over -composite \
-background "rgba(255,0,0,0.5)" -size 72x44.8 caption:'404-30' -geometry +1091+317.6 -compose over -composite -background "rgba(255,0,0,0.5)" -size 79.2x44.8 caption:'411-31' -geometry +1291.9+317.6 -compose over -composite \
-background "rgba(255,0,0,0.5)" -size 81.6x45.6 caption:'558-32' -geometry +878.2+373.7 -compose over -composite \
-background "rgba(255,0,0,0.5)" -size 72x45.6 caption:'563-33' -geometry +1091+373.7 -compose over -composite -background "rgba(255,0,0,0.5)" -size 79.2x44.8 caption:'570-34' -geometry +1291.9+373.6 -compose over -composite \
-background "rgba(255,0,0,0.5)" -size 81.6x32.8 caption:'695-35' -geometry +878.2+429.1 -compose over -composite -background "rgba(0,255,0,0.5)" -size 72x31.2 caption:'701-36' -geometry +1091+428.9 -compose over -composite \
-background "rgba(0,255,0,0.5)" -size 80x32.8 caption:'691-37' -geometry +1291+428.1 -compose over -composite -background "rgba(255,0,0,0.5)" -size 80.8x31.2 caption:'869-38' -geometry +878.1+468.9 -compose over -composite \
-background "rgba(255,0,0,0.5)" -size 72x32 caption:'859-39' -geometry +1091+468 -compose over -composite -background "rgba(0,255,0,0.5)" -size 80x32 caption:'865-40' -geometry +1291+468 -compose over -composite -background "rgba(255,0,0,0.5)" -size 80.8x32 caption:'952-41' -geometry +878.1+508 -compose over -composite \
-background "rgba(255,0,0,0.5)" -size 72x32 caption:'957-42' -geometry +1091+508 -compose over -composite -background "rgba(255,0,0,0.5)" -size 80x32 caption:'948-43' -geometry +1291+507 -compose over -composite -background "rgba(255,0,0,0.5)" -size 80.8x57.6 caption:'1069-44' -geometry +878.1+551.2 -compose over -composite -background "rgba(255,0,0,0.5)" -size 72x57.6 caption:'1072-45' -geometry +1091+551.2 -compose over -composite -background "rgba(255,0,0,0.5)" -size 80x58.4 caption:'1063-46' -geometry +1291+550.3 -compose over -composite \
-background "rgba(255,0,0,0.5)" -size 80.8x44.8 caption:'1193-47' -geometry +878.1+621.6 -compose over -composite \
-background "rgba(255,0,0,0.5)" -size 72x44.8 caption:'1198-48' -geometry +1091+621.6 -compose over -composite \
-background "rgba(255,0,0,0.5)" -size 80x44.8 caption:'1203-49' -geometry +1291+621.6 -compose over -composite -background "rgba(0,255,0,0.3)" -size 53.2x29.4 caption:'1331-50' -geometry +1202.4+688.8 -compose over -composite \
-background "rgba(255,0,0,0.3)" -size 53.2x29.4 caption:'1326-51' -geometry +1304.4+687.8 -compose over -composite -background "rgba(0,255,0,0.3)" -size 54.6x29.4 caption:'1403-52' -geometry +1201.2+722.8 -compose over -composite \
-background "rgba(255,0,0,0.3)" -size 54.6x29.4 caption:'1397-53' -geometry +1306.2+721.8 -compose over -composite -background "rgba(0,255,0,0.3)" -size 53.2x29.4 caption:'1685-54' -geometry +1204.4+835.8 -compose over -composite \
-background "rgba(255,0,0,0.3)" -size 51.8x28 caption:'1691-55' -geometry +1301.6+836 -compose over -composite Q_College-001.dist.ans.png
It takes more than 30 sec to write the resulting image (PNG is 1500x , can't be smaller for box computing...).
Is there a way to obtain the result faster ?
I try to remove -compose over -composite
but the concerned caption don't print.....
Thanks for your help
Michel
Upvotes: 0
Views: 68
Reputation: 27
thanks again for help. I share a totally different (and ways faster) approach. The only drawback I found is not using -caption, which means I have to fix a standard font-size for text. In my case, this is not a big issue. If somebody knows how to emulate -caption in SVG/MVG...
magick source.png -colorspace sRGB -draw " fill rgba(255,0,0,0.3) rectangle 200.6,125.8 238.4,155.2 rectangle 639.2,287.8 693.8,317.2 rectangle 638.2,337.8 692.8,367.2 rectangle 535.4,371.8 588.6,401.2 rectangle 636.4,438.8 689.6,468.2 rectangle 636.2,531.6 690.8,562.4 rectangle 631.2,748.8 685.8,778.2 rectangle 630.4,782.8 683.6,812.2 rectangle 631.2,877.6 685.8,908.4 rectangle 630.4,926.8 683.6,956.2 rectangle 536.2,977.8 590.8,1007.2 rectangle 1202.4,688.8 1255.6,718.2 rectangle 1201.2,722.8 1255.8,752.2 rectangle 1204.4,835.8 1257.6,865.2
fill rgba(0,255,0,0.3) rectangle 519.2,125.8 559.8,155.2 rectangle 535.2,334.8 589.8,364.2 rectangle 637.4,370.8 690.6,400.2 rectangle 537.2,531.6 591.8,562.4 rectangle 534.2,748.8 588.8,778.2 rectangle 535.4,928.8 588.6,958.2 rectangle 628.6,976.6 680.4,1007.4 rectangle 1304.4,687.8 1357.6,717.2 rectangle 1306.2,721.8 1360.8,751.2 rectangle 1301.6,836 1353.4,864
fill rgba(0,255,0,0.5) rectangle 538.4,287.6 591.6,318.4 rectangle 536.2,437 590.8,465 rectangle 534,782.4 590,814.6 rectangle 534.4,877.8 587.6,907.2 rectangle 878.1,221 958.9,253 rectangle 1091,221 1163,253 rectangle 878.1,262.6 958.9,307.4 rectangle 1091,262.6 1163,307.4 rectangle 1291,428.1 1371,460.9
fill rgba(255,0,0,0.5) rectangle 1291,220.1 1371,252.9 rectangle 1291,262.5 1371,306.5 rectangle 878.2,318.5 959.8,362.5 rectangle 1091,317.6 1163,362.4 rectangle 1291.9,317.6 1371.1,362.4 rectangle 878.2,373.7 959.8,419.3 rectangle 1091,373.7 1163,419.3 rectangle 1291.9,373.6 1371.1,418.4 rectangle 878.2,429.1 959.8,461.9 rectangle 1091,428.9 1163,460.1 rectangle 878.1,468.9 958.9,500.1 rectangle 1091,468 1163,500 rectangle 1291,468 1371,500 rectangle 878.1,508 958.9,540 rectangle 1091,508 1163,540 rectangle 1291,507 1371,539 rectangle 878.1,551.2 958.9,608.8 rectangle 1091,551.2 1163,608.8 rectangle 1291,550.3 1371,608.7 rectangle 878.1,621.6 958.9,666.4 rectangle 1091,621.6 1163,666.4 rectangle 1291,621.6 1371,666.4
fill darkblue font-size 13 text 200.6,135.8'84-1' text 519.2,135.8'87-2' text 538.4,297.6'317-3' text 639.2,297.8'322-4' text 535.2,344.8'463-5' text 638.2,347.8'479-6' text 535.4,381.8'605-7' text 637.4,380.8'601-8' text 536.2,447'728-9' text 636.4,448.8'744-10' text 537.2,541.6'999-11' text 636.2,541.6'1005-12' text 534.2,758.8'1483-13' text 631.2,758.8'1489-14' text 534,792.4'1595-15' text 630.4,792.8'1589-16' text 534.4,887.8'1762-17' text 631.2,887.6'1767-18' text 535.4,938.8'1837-19' text 630.4,936.8'1827-20' text 536.2,987.8'1890-21' text 628.6,986.6'1886-22' text 878.1,231'194-23' text 1091,231'198-24' text 1291,230.1'189-25' text 878.1,272.6'276-26' text 1091,272.6'280-27' text 1291,272.5'286-28' text 878.2,328.5'418-29' text 1091,327.6'404-30' text 1291.9,327.6'411-31' text 878.2,383.7'558-32' text 1091,383.7'563-33' text 1291.9,383.6'570-34' text 878.2,439.1'695-35' text 1091,438.9'701-36' text 1291,438.1'691-37' text 878.1,478.9'869-38' text 1091,478'859-39' text 1291,478'865-40' text 878.1,518'952-41' text 1091,518'957-42' text 1291,517'948-43' text 878.1,561.2'1069-44' text 1091,561.2'1072-45' text 1291,560.3'1063-46' text 878.1,631.6'1193-47' text 1091,631.6'1198-48' text 1291,631.6'1203-49' text 1202.4,698.8'1331-50' text 1304.4,697.8'1326-51' text 1201.2,732.8'1403-52' text 1306.2,731.8'1397-53' text 1204.4,845.8'1685-54' text 1301.6,846'1691-55' " result.jpg
Upvotes: 0
Reputation: 5395
If I were writing this command, simply for clarity, I'd probably individually build each caption and set its paging geometry inside a set of parentheses, then composite all of them onto the input image all at once at the end with "-flatten".
magick Q_College-001.dist.png -colorspace sRGB -stroke none -strokewidth 1 \
\( -background "rgba(0,255,0,0.3)" -size 37.8x29.4 caption:'84-1' -set page +200.6+125.8 \) \
\( -background "rgba(255,0,0,0.3)" -size 40.6x29.4 caption:'87-2' -set page +519.2+125.8 \) \
...
\( -background "rgba(0,255,0,0.3)" -size 53.2x29.4 caption:'1685-54' -set page +1204.4+835.8 \) \
\( -background "rgba(255,0,0,0.3)" -size 51.8x28 caption:'1691-55' -set page +1301.6+836 \) \
-flatten Q_College-001.dist.ans.png
On my moderate speed Windows 10 machine the full command runs in about 7 seconds with or without those modifications.
Upvotes: 1