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