PostScript konvertálása png-vé

Fórumok

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

Hozzászólások

esetleg nem parancsoros hanem grafikus alkalmazaskent scribus?

udv Zoli

Nekem a gimp megnyitja.

Amit nem lehet megirni assemblyben, azt nem lehet megirni.

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 .

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.

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.

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

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

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)