vzorecky do obrazku
Michal Ceresna
ceresna na dbai.tuwien.ac.at
Pondělí Září 23 09:55:45 CEST 2002
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Tuesday 17 September 2002 17:14, you wrote:
Dobry den,
asi 3 roky dozadu som sa riesil tento problem aj ja
nasledovne:
1)perl. script, vyberal vzorce z texovskeho zdrojaka
napr. $vzorec$
2) pre kazdy vzorec sa vygeneroval sa iny tex. subor, kt.
obsahoval iba tento jeden vzorec:
while ( <FIN> )
{
if(m/^\$([\w,\n,\W]*)\$$/)
{
$i++;
$filename = "img$i.tex";
open(FOUT,"> $dir$filename");
print FOUT "\\nopagenumbers\n";
print FOUT "\\input amstex\n";
print FOUT "\\input amsppt.sty\n";
print FOUT $1;
print FOUT "\n\\bye";
close(FOUT);
}
}
3)s kazdym takto vygen. tex. suborom sa robilo:
#vygeneruj dvi
$TEX ${FILE}.tex
#preved dvi do pgm (bitmapa)
dvips -q -t a4 -f ${FILE}.dvi | gs -dSAFER -sDEVICE=pgmraw -r400x400 -q
- -dNOPAUSE -sOutputFile=${FILE}.pgm -
#vyrez len cast obrazku, kde je vzorec
#(oreze sa biele miesto, urobi antialiasing)
INFILE='"'${FILE}.pgm'"'
OUTFILE='"'${FILE}.gif'"'
gimp -n -b '(script-fu-orez-gif $INFILE $OUTFILE)' '(gimp-quit 0)'"
vysledok sa da pozriet napr. na:
http://www.dbai.tuwien.ac.at/staff/ceresna/fmfi/amstex/prirucka-amstex20-html-990418/kap54.html
patri do .gimp/scripts:
- --------------------------------------------------------------------------------
; gimp oreze biele miesto okolo obrazku
;
;open file
(define (script-fu-orez-gif inputfile outputfile)
(let* ((image (car (gimp-file-load 1 inputfile inputfile)))
(drawable (car (gimp-image-active-drawable image)))
(image-type (car (gimp-image-base-type image)))
(draw-type (car (gimp-drawable-type-with-alpha drawable))))
;oznac oblast s obrazkom
(gimp-fuzzy-select image drawable 1 1 100 ADD TRUE FALSE 10 FALSE )
(gimp-selection-invert image)
;zisti rozmery oblasti
(set! selection-bounds (gimp-selection-bounds image))
(set! sel_x (cadr selection-bounds))
(set! sel_y (caddr selection-bounds))
(set! sel_width (- (cadr (cddr selection-bounds)) sel_x))
(set! sel_height (- (caddr (cddr selection-bounds)) sel_y))
(set! new_width (+ sel_width 40))
(set! new_height (+ sel_height 20))
(gimp-image-disable-undo image)
;edit-copy
(gimp-edit-copy image drawable)
;vytvor novy obrazok
(set! new-image (car (gimp-image-new new_width new_height image-type)))
(set! new-draw (car (gimp-layer-new new-image new_width new_height
draw-type "Vrstva"
100 NORMAL)))
(gimp-image-add-layer new-image new-draw 0)
(gimp-drawable-fill new-draw WHITE-IMAGE-FILL)
;edit-paste
(let ((floating-sel (car (gimp-edit-paste new-image new-draw FALSE))))
(gimp-floating-sel-anchor floating-sel)
)
;scale 0.25 krat
(set! new_width (/ new_width 4))
(set! new_height (/ new_height 4))
(gimp-image-scale new-image new_width new_height)
; (gimp-display-new new-image)
; (gimp-display-new image)
; (gimp-displays-flush)
;save file
; (gimp-file-save 1 new-image new-draw "test.pnm" "test.pnm")
(file-gif-save 1 new-image new-draw outputfile outputfile TRUE FALSE 0 0)
))
(script-fu-register "script-fu-orez-gif"
"<Toolbox>/Xtns/Script-Fu/Text/Orez"
"Orezava biele miesto okolo obrazkov"
"Michal Ceresna"
"Michal Ceresna"
"1998/12/30"
""
SF-VALUE "Input filename:" "in.pnm"
SF-VALUE "Output filename:" "out.gif"
)
- --------------------------------------------------------------------------------
- --
Michal Ceresna, student, DBAI, TU Wien
ceresna na dbai.tuwien.ac.at
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
iD8DBQE9jskBa18nmQa7hgMRAhIvAJwLyENKfyGdC+wLAqorh2qYVX7z7wCfVtAS
HyH721AAgNz4ZbHRKANDxH8=
=Hx/X
-----END PGP SIGNATURE-----
Další informace o konferenci Linux