Adott egy .ps file, ami megtalálható itt:
http://briscoe-smith.org.uk/charles/debian-cd-label.html
Szeretném 2773X2773 pixel méretű png képpé alakítani úgy, hogy a kép lényegi része maximális méretű legyen.
Az ImageMagick(display) hibásan olvassa be, nem látszik semmi, illetve bármilyen konvertálásnak egy üres kép az eredménye.(próbáltam még a psto... programok nagy részét is)
Szeretnék a problémára scriptet írni, ezért kellene valahogy parancssorból megoldani.
Debian Lenny-t használok.
Két napja küzdök vele, eddig semmi eredmény, ezért fordultam hozzátok.
Üdv, Attila
- 1525 megtekintés
Hozzászólások
esetleg nem parancsoros hanem grafikus alkalmazaskent scribus?
udv Zoli
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Ez jó.
"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."
- A hozzászóláshoz be kell jelentkezni
Nekem a gimp megnyitja.
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
gs -sDEVICE=png256 -r300 -sOutputDevice=out.png -dBATCH -dNOPAUSE in.ps
A -r érték növelésével nagyobb felbontású képet kapsz.
Ha a PNG-ben nincs benne az egész PS (csak a bal alsó sarka), akkor add meg a -g2000x2000 opciót, és növeld a számokat.
Ha többoldalas a PS, akkor out.png helyett out%d.png .
- A hozzászóláshoz be kell jelentkezni
Ez egész jól működik:
gs -r600 -g2773x10000 -sDEVICE=pnggray -sOutputFile=out.png in.ps
Csak az a gond, hogy a kép valamiért nem szeret egy nxn-es kép közepén lenni. Valhogy mindig egy A/4 közepén szeretne lenni fent. Vagy a gs-sel kellene valahogy eltolni középre, vagy az eredeti ps-t átírni úgy, hogy a kép jó helyre kerüljön.
- A hozzászóláshoz be kell jelentkezni
> a kép valamiért nem szeret egy nxn-es kép közepén lenni.
- A hozzászóláshoz be kell jelentkezni
Igen, és most itt tartok:
#!/bin/sh
#convert the ps file to png into /tmp/
gs -r613 -sDEVICE=ppm -dBATCH -dNOPAUSE -sOutputFile=/tmp/`echo $1 | cut -f1 -d'.'`.ppm $1
#crop the white borders from the ppm image and convert to png
pnmcrop /tmp/`echo $1 | cut -f1 -d'.'`.ppm | convert -quality 100 - cropped-`echo $1 | cut -f1 -d'.'`.png
#remove the temp file
rm /tmp/`echo $1 | cut -f1 -d'.'`.ppm
Már majdnem jó:)
Már csak annyi kell, hogy ugyanolyan széles legyen a kép, mint amilyen magas, és a kereszt középen legyen nagyjából.
- A hozzászóláshoz be kell jelentkezni
A psfixbb segítségével be lehet állítani a PS fájl bounding box-át, vagy javítani lehet a hibásat. Ezzel megoldható a "középre állítási" probléma.
- A hozzászóláshoz be kell jelentkezni
Mostmár tényleg majdem kész!
Már csak a szürkeárnyalat kell, és 72 DPI-re csökkenteni a felbontást.
Ez az egész tulajdonképpen a SimpleLabeler-hez kell, hogy gyorsan tudjak cimkét gyártani.
http://www.linuxvilag.hu/content/files/cikk/75/cikk_75_46_47.pdf
Nem jellemző, hogy naponta ír az ember új Debian CD-t, de kényelmesebb így, mint gimp-pel szórakozni.
Íme a kód:
#!/bin/sh
#convert the ps file to png into /tmp/
gs -r614 -sDEVICE=ppm -dBATCH -dNOPAUSE -sOutputFile=/tmp/`echo $1 | cut -f1 -d'.'`.ppm $1
#crop the white borders from the ppm image and convert to png
pnmcrop /tmp/`echo $1 | cut -f1 -d'.'`.ppm | convert -quality 100 - finished-`echo $1 | cut -f1 -d'.'`.png
#remove the temp file
rm /tmp/`echo $1 | cut -f1 -d'.'`.ppm
#image centered
convert finished-`echo $1 | cut -f1 -d'.'`.png -gravity northeast -background white -splice 437x45 finished-`echo $1 | cut -f1 -d'.'`.png
#resize
convert finished-`echo $1 | cut -f1 -d'.'`.png -sample 2773x2773 finished-`echo $1 | cut -f1 -d'.'`.png
Köszönöm mindenkinek! Üdv, Attila
- A hozzászóláshoz be kell jelentkezni
Született egy jóval egyszerűbb, és gyorsabb kód is.
#!/bin/sh
gs -r600 -sDEVICE=pnggray -dBATCH -dNOPAUSE -sOutputFile=`echo $1 | cut -f1 -d'.'`.png $1
convert `echo $1 | cut -f1 -d'.'`.png -crop 2773x2773+1055+630 +repage `echo $1 | cut -f1 -d'.'`.png
Üdv, Attila
- A hozzászóláshoz be kell jelentkezni
Ha tovabbi gyorsitast/szepitest is tervezel, akkor ajanlom figyelmedbe:
`echo $1 | cut -f1 -d'.'`
e helyett:
`basename $1 .ps`
Feltetelezve, hogy nem tetszoleges "kiterjesztesu" fajlokkal dolgozol, hanem pl. mindig akarmi.ps -sel. A basename levagja a PATH-t es a megadott vegzodest a sztringbol. (man basename dirname)
- A hozzászóláshoz be kell jelentkezni
hamár lúd akkor tetszőleges állományra ...
`basename $1 .${1##*.}`
Ha átadod a tudásod neked attól még nem lesz kevesebb belőle..
- A hozzászóláshoz be kell jelentkezni
> `basename $1 .${1##*.}`
jogos, te nyertel.
- A hozzászóláshoz be kell jelentkezni