MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Displaying Images on GUI during run time

  • To: mathgroup at smc.vnet.net
  • Subject: [mg57740] Re: [mg57679] Displaying Images on GUI during run time
  • From: Jeff Adams <jeffa at wolfram.com>
  • Date: Tue, 7 Jun 2005 02:03:41 -0400 (EDT)
  • References: <200506040704.DAA11754@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Hello,

Since I could not run the code in the examples that you sent I  
thought that I
would send working versions of what you requested with some slight
modifications to the input data.

In the second example, the imported data is a Mathematica Graphics 
[Raster[..]]
expression which you could post-process before showing the image, but in
my example, I simply display the opened image file as a PNG unmodified.

Jeff Adams
Wolfram Research

--------------
Needs["GUIKit`"]

GUIRun[
Widget["Frame", {"title" -> "Segmentation GUI",
   Widget["Panel",{
     Widget["ImageLabel", {"data" ->
       Script[
         img = Table[Sin[x]/Cos[x^2 + y^2], {x, -2, 2, 0.1}, {y, -2,  
2, 0.1}];
         ExportString[ListDensityPlot[img, Mesh -> False, FrameTicks - 
 > False,
            DisplayFunction -> Identity],"PNG"] ]}, Name ->  
"imgDisplay"]
     }]
   }]
]


GUIRun[
   Widget["Frame", {"title" -> "Segmentation GUI",
     Widget["Panel", {
       Widget["ImageLabel", {"data" ->
         Script[
           img = Table[Sin[x]/Cos[x^2 + y^2], {x, -2, 2, 0.1}, {y,  
-2, 2, 0.1}];
           ExportString[ListDensityPlot[img, Mesh -> False,  
FrameTicks -> False,
             DisplayFunction -> Identity], "PNG"]]}, Name ->  
"imgDisplay"]
          }],
     Widget["Button", {"text" -> "Open",
       BindEvent["action", Script[
          Widget["FileDialog", Name -> "openFileDialog"];
          SetPropertyValue[{"openFileDialog",  
"multiSelectionEnabled"}, False];
          SetPropertyValue[{"openFileDialog", "fileSelectionMode"},
             PropertyValue[{"openFileDialog", "FILES_ONLY"}]];
          returnValue = InvokeMethod[{"openFileDialog",  
"showOpenDialog"}, Null];
          imgPath = If[returnValue === PropertyValue 
[{"openFileDialog", "APPROVE_OPTION"}],
            PropertyValue[{PropertyValue[{"openFileDialog",  
"selectedFile"}], "path"}], Null];
          If[imgPath =!= Null,
            imgTMP = Import[imgPath];
            SetPropertyValue[{"imgDisplay", "data"},
              ExportString[ Show[imgTMP, DisplayFunction ->  
Identity], "PNG"]];
             ]]
         ]
     }]
   }]
]

--------------

On Jun 4, 2005, at 2:04 AM, Goyan wrote:

> Hi all,
>
> I am currently stuck on a problem using the GUIKit. I wanted to  
> creat a
> panel to display an image. Then I want a "Open" button to get the
> filepath and displays the image in the panel. Another "Operation"  
> button
> to process the image data and then display the final image again in  
> the
> same panel.
>
> I have a ImageLabel panel for image display.
> GUIRun[
>    Widget["Frame", {"title" -> "Segmentation GUI",
>        WidgetGroup[{
>            WidgetGroup[
>              {Widget["Panel", {
>                    Widget["ImageLabel", {"data" -> Script 
> [ExportString[
> ListDensityPlot[img, Mesh -> False, FrameTicks -> False, PlotRange ->
> All, AspectRatio -> Automatic, DisplayFunction -> Identity],
>    "PNG", ConversionOptions -> {"Transparency" -> GrayLevel[1]}]],
> }, Name -> "imgDisplay"]
>
> Then I created a "Open" button to get the user selected filepath  
> and set
> the string containing the filepath to the imgDisplay (ImageLabel  
> widget).
>
> Widget["Button", {"text" -> "Open",
>    BindEvent["mouseClicked",
>      Script[imgPath = ToString[
>        GUIResolve[Script[
>          Widget["FileDialog", Name -> "openFileDialog"];
>            SetPropertyValue[{"openFileDialog",  
> "multiSelectionEnabled"},
> False];
>            SetPropertyValue[{"openFileDialog", fileSelectionMode"},
> PropertyValue[{"openFileDialog", "FILES_ONLY"}]];
>            returnValue = InvokeMethod[{"openFileDialog",
> "showOpenDialog"}, Null];
>       If[returnValue === PropertyValue[{"openFileDialog",  
> "APPROVE_OPTION"}],
>       PropertyValue[{PropertyValue[{"openFileDialog",  
> "selectedFile"}],
> "path"}], Null]]]];
>       imgTMP = Import[imgPath]ã??1, 1, All, Allã??;
>       SetPropertyValue[{"imgDisplay", "data"}, "Script[
> ExportString[ ListDensityPlot[imgTMP,Mesh->False, FrameTicks->False,
> PlotRange->All, AspectRatio->Automatic,DisplayFunction->Identity],
> "PNG",ConversionOptions->{"Transparency"->GrayLevel[1]}]]"]]]
> }, Name -> "openButton"]
>
> This didnt work. I am not sure if I can do this. What is the usual
> approach to get this done?  Thank you for your time.
>
> Goyan
>


  • Prev by Date: Function Fit to 3D data set
  • Next by Date: Re: Re: Re: Re: Re: simple set operations
  • Previous by thread: Displaying Images on GUI during run time
  • Next by thread: Manipulating textfiles (subtitlefiles for films)