Changeset 1392 for trunk


Ignore:
Timestamp:
Apr 13, 2009 12:38:28 PM (15 years ago)
Author:
gah
Message:

added jpg image download to xyresult

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/gui/scripts/xyresult.tcl

    r1391 r1392  
    498498                    -value pdf
    499499                pack $inner.pdf -anchor w
     500                radiobutton $inner.jpg -text "Image (draft)" \
     501                    -variable Rappture::XyResult::_downloadPopup(format) \
     502                    -value jpg
     503                pack $inner.jpg -anchor w
    500504                button $inner.go -text [Rappture::filexfer::label download] \
    501505                    -command [lindex $args 0]
     
    516520            }
    517521            switch -- $_downloadPopup(format) {
    518               csv {
    519                 # reverse the objects so the selected data appears on top
    520                 set dlist ""
    521                 foreach dataobj [get] {
    522                     set dlist [linsert $dlist 0 $dataobj]
    523                 }
    524 
    525                 # generate the comma-separated value data for these objects
    526                 set csvdata ""
    527                 foreach dataobj $dlist {
    528                     append csvdata "[string repeat - 60]\n"
    529                     append csvdata " [$dataobj hints label]\n"
    530                     if {[info exists _curve2desc($dataobj)]
    531                           && [llength [split $_curve2desc($dataobj) \n]] > 1} {
    532                         set indent "for:"
    533                         foreach line [split $_curve2desc($dataobj) \n] {
    534                             append csvdata " $indent $line\n"
    535                             set indent "    "
     522                csv {
     523                    # reverse the objects so the selected data appears on top
     524                    set dlist ""
     525                    foreach dataobj [get] {
     526                        set dlist [linsert $dlist 0 $dataobj]
     527                    }
     528
     529                    # generate the comma-separated value data for these objects
     530                    set csvdata ""
     531                    foreach dataobj $dlist {
     532                        append csvdata "[string repeat - 60]\n"
     533                        append csvdata " [$dataobj hints label]\n"
     534                        if {[info exists _curve2desc($dataobj)]
     535                            && [llength [split $_curve2desc($dataobj) \n]] > 1} {
     536                            set indent "for:"
     537                            foreach line [split $_curve2desc($dataobj) \n] {
     538                                append csvdata " $indent $line\n"
     539                                set indent "    "
     540                            }
    536541                        }
     542                        append csvdata "[string repeat - 60]\n"
     543
     544                        append csvdata "[$dataobj hints xlabel], [$dataobj hints ylabel]\n"
     545                        set first 1
     546                        foreach comp [$dataobj components] {
     547                            if {!$first} {
     548                                # blank line between components
     549                                append csvdata "\n"
     550                            }
     551                            set xv [$dataobj mesh $comp]
     552                            set yv [$dataobj values $comp]
     553                            foreach x [$xv range 0 end] y [$yv range 0 end] {
     554                                append csvdata [format "%20.15g, %20.15g\n" $x $y]
     555                            }
     556                            set first 0
     557                        }
     558                        append csvdata "\n"
    537559                    }
    538                     append csvdata "[string repeat - 60]\n"
    539 
    540                     append csvdata "[$dataobj hints xlabel], [$dataobj hints ylabel]\n"
    541                     set first 1
    542                     foreach comp [$dataobj components] {
    543                         if {!$first} {
    544                             # blank line between components
    545                             append csvdata "\n"
    546                         }
    547                         set xv [$dataobj mesh $comp]
    548                         set yv [$dataobj values $comp]
    549                         foreach x [$xv range 0 end] y [$yv range 0 end] {
    550                             append csvdata [format "%20.15g, %20.15g\n" $x $y]
    551                         }
    552                         set first 0
     560                    return [list .txt $csvdata]
     561                }
     562                pdf {
     563                    set psdata [$itk_component(plot) postscript output \
     564                                    -decorations no -maxpect 1]
     565
     566                    set cmds {
     567                        set fout "xy[pid].pdf"
     568                        exec ps2pdf - $fout << $psdata
     569                       
     570                        set fid [open $fout r]
     571                        fconfigure $fid -translation binary -encoding binary
     572                        set pdfdata [read $fid]
     573                        close $fid
     574                       
     575                        file delete -force $fout
    553576                    }
    554                     append csvdata "\n"
    555                 }
    556                 return [list .txt $csvdata]
    557               }
    558               pdf {
    559                 set psdata [$itk_component(plot) postscript output -decorations no -maxpect 1]
    560 
    561                 set cmds {
    562                     set fout "xy[pid].pdf"
    563                     exec ps2pdf - $fout << $psdata
    564 
    565                     set fid [open $fout r]
    566                     fconfigure $fid -translation binary -encoding binary
    567                     set pdfdata [read $fid]
    568                     close $fid
    569 
    570                     file delete -force $fout
    571                 }
    572                 if {[catch $cmds result] == 0} {
    573                     return [list .pdf $pdfdata]
    574                 }
    575                 return [list .ps $psdata]
    576               }
     577                    if {[catch $cmds result] == 0} {
     578                        return [list .pdf $pdfdata]
     579                    }
     580                    return [list .ps $psdata]
     581                }
     582                jpg {
     583                    set img [image create photo]
     584                    $itk_component(plot) snap $img
     585                    set bytes [$img data -format "jpeg -quality 100"]
     586                    set bytes [Rappture::encoding::decode -as b64 $bytes]
     587                    image delete $img
     588                    return [list .jpg $bytes]
     589                }
     590                png {
     591                    set img [image create photo]
     592                    $itk_component(plot) snap $img
     593                    set bytes [$img data -format "png"]
     594                    set bytes [Rappture::encoding::decode -as b64 $bytes]
     595                    image delete $img
     596                    return [list .png $bytes]
     597                }
    577598            }
    578599        }
  • trunk/packages/vizservers/nanovis/Makefile.in

    r1380 r1392  
    103103                ConvexPolygon.o \
    104104                Event.o \
    105                 Switch.o \
    106105                Unirect.o \
    107106                GradientFilter.o \
Note: See TracChangeset for help on using the changeset viewer.