Imagemagick + p

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

Imagemagick + pętla for

Post autor: kodama » 19 listopada 2015, 21:14

Witajcie
Od razu do rzeczy :) Polecenie

Kod: Zaznacz cały

convert -units PixelsPerInch -density 150x150 -antialias -size 1240x1753 xc:white -pointsize 12 -draw "text 100,100 'PRZYKLAD'" przyklad.jpg
tworzy plik przyklad.jpg z napisem PRZYKLAD w określonym miejscu.
Potrzebuję takie rysowanie wykonać parę razy o ten napis mieć kilka razy jeden pod drugim. Mam takiego fora:

Kod: Zaznacz cały

for (( i=1; i<4; i++ )); do 

	echo -n " -draw \"text 100,$(expr 100 \* $i) 'PRZYKLAD'\" ";


done
No i spoko, teoretycznie jego wynikiem jest:

Kod: Zaznacz cały

-draw "text 100,100 'PRZYKLAD'" -draw "text 100,200 'PRZYKLAD'" -draw "text 100,300 'PRZYKLAD'"
czyli dokładnie to o co mi chodzi. Za to jak wstawię to w miejsce odpowiednie w convercie to się dzieje kaszana.

Kod: Zaznacz cały

convert: non-conforming drawing primitive definition `text' @ error/draw.c/DrawImage/3182.
convert: unable to open image `100,100': Nie ma takiego pliku ani katalogu @ error/blob.c/OpenBlob/2709.
convert: unable to open image `100,100': Nie ma takiego pliku ani katalogu @ error/blob.c/OpenBlob/2709.
convert: no decode delegate for this image format `' @ error/constitute.c/ReadImage/501.
convert: unable to open image `'PRZYKLAD'"': Nie ma takiego pliku ani katalogu @ error/blob.c/OpenBlob/2709.
convert: unable to open image `'PRZYKLAD'"': Nie ma takiego pliku ani katalogu @ error/blob.c/OpenBlob/2709.
convert: no decode delegate for this image format `' @ error/constitute.c/ReadImage/501.
convert: non-conforming drawing primitive definition `text' @ error/draw.c/DrawImage/3182.
convert: unable to open image `100,200': Nie ma takiego pliku ani katalogu @ error/blob.c/OpenBlob/2709.
convert: unable to open image `100,200': Nie ma takiego pliku ani katalogu @ error/blob.c/OpenBlob/2709.
convert: no decode delegate for this image format `' @ error/constitute.c/ReadImage/501.
convert: unable to open image `'PRZYKLAD'"': Nie ma takiego pliku ani katalogu @ error/blob.c/OpenBlob/2709.
convert: unable to open image `'PRZYKLAD'"': Nie ma takiego pliku ani katalogu @ error/blob.c/OpenBlob/2709.
convert: no decode delegate for this image format `' @ error/constitute.c/ReadImage/501.
convert: non-conforming drawing primitive definition `text' @ error/draw.c/DrawImage/3182.
convert: unable to open image `100,300': Nie ma takiego pliku ani katalogu @ error/blob.c/OpenBlob/2709.
convert: unable to open image `100,300': Nie ma takiego pliku ani katalogu @ error/blob.c/OpenBlob/2709.
convert: no decode delegate for this image format `' @ error/constitute.c/ReadImage/501.
convert: unable to open image `'PRZYKLAD'"': Nie ma takiego pliku ani katalogu @ error/blob.c/OpenBlob/2709.
convert: unable to open image `'PRZYKLAD'"': Nie ma takiego pliku ani katalogu @ error/blob.c/OpenBlob/2709.
convert: no decode delegate for this image format `' @ error/constitute.c/ReadImage/501.
convert: non-conforming drawing primitive definition `text' @ error/draw.c/DrawImage/3182.
Jak odpalę ten skrypt z -x to widzę, że się wstawiają jakieś dodatkowe cudzysłowy, których niby nie widać, nie kumam tego, nie wiem jak się tego pozbyć.

Kod: Zaznacz cały

+ convert -units PixelsPerInch -density 150x150 -antialias -size 1240x1753 xc:white -pointsize 12 -draw 'text 100,100 '\''PRZYKLAD'\''' przyklad.jpg
++ (( i=1 ))
++ (( i<4 ))
+++ expr 100 '*' 1
++ echo -n ' -draw "text 100,100 '\''PRZYKLAD'\''" '
++ (( i++  ))
++ (( i<4 ))
+++ expr 100 '*' 2
++ echo -n ' -draw "text 100,200 '\''PRZYKLAD'\''" '
++ (( i++  ))
++ (( i<4 ))
+++ expr 100 '*' 3
++ echo -n ' -draw "text 100,300 '\''PRZYKLAD'\''" '
++ (( i++  ))
++ (( i<4 ))
+ z=' -draw "text 100,100 '\''PRZYKLAD'\''"  -draw "text 100,200 '\''PRZYKLAD'\''"  -draw "text 100,300 '\''PRZYKLAD'\''" '
+ convert -units PixelsPerInch -density 150x150 -antialias -size 1240x1753 xc:white -pointsize 12 -draw '"text' 100,100 ''\''PRZYKLAD'\''"' -draw '"text' 100,200 ''\''PRZYKLAD'\''"' -draw '"text' 100,300 ''\''PRZYKLAD'\''"' przyklad.jpg
Cały skrypt:

Kod: Zaznacz cały

#!/bin/bash


convert -units PixelsPerInch -density 150x150 -antialias -size 1240x1753 xc:white -pointsize 12 -draw "text 100,100 'PRZYKLAD'" przyklad.jpg


z=`for (( i=1; i<4; i++ )); do echo -n " -draw \"text 100,$(expr 100 \* $i) 'PRZYKLAD'\" "; done`


echo $z


convert -units PixelsPerInch -density 150x150 -antialias -size 1240x1753 xc:white -pointsize 12 $z przyklad.jpg
Jakaś podpowiedź, jak to użreć, coś?

ODPOWIEDZ