How to convert a File to Image for display in ImageView in java?











up vote
5
down vote

favorite
1












I am attempting to display an image file as soon as it is selected from a file chooser. The file chooser is restricted to .png and .jpg files with the selected files being stored in a variable of type File. To do this I have set up an ImageView, and I wish to set the image with this new file only problem is it is of type File not Image.



How can this be achieved? Code so far...



public void fileSelection(){

FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Select Profile Picture");
fileChooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("Image Files", "*.png", "*jpg"));
File selectedFile = fileChooser.showOpenDialog(null);
File selectedFileInput = selectedFile;

if(selectedFile != null) {
selectedFileOutput.setText("File selected: " + selectedFile.getName());
previewPicture.setImage();
} else {
selectedFileOutput.setText("Please select a profile picture...");
}
}









share|improve this question


























    up vote
    5
    down vote

    favorite
    1












    I am attempting to display an image file as soon as it is selected from a file chooser. The file chooser is restricted to .png and .jpg files with the selected files being stored in a variable of type File. To do this I have set up an ImageView, and I wish to set the image with this new file only problem is it is of type File not Image.



    How can this be achieved? Code so far...



    public void fileSelection(){

    FileChooser fileChooser = new FileChooser();
    fileChooser.setTitle("Select Profile Picture");
    fileChooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("Image Files", "*.png", "*jpg"));
    File selectedFile = fileChooser.showOpenDialog(null);
    File selectedFileInput = selectedFile;

    if(selectedFile != null) {
    selectedFileOutput.setText("File selected: " + selectedFile.getName());
    previewPicture.setImage();
    } else {
    selectedFileOutput.setText("Please select a profile picture...");
    }
    }









    share|improve this question
























      up vote
      5
      down vote

      favorite
      1









      up vote
      5
      down vote

      favorite
      1






      1





      I am attempting to display an image file as soon as it is selected from a file chooser. The file chooser is restricted to .png and .jpg files with the selected files being stored in a variable of type File. To do this I have set up an ImageView, and I wish to set the image with this new file only problem is it is of type File not Image.



      How can this be achieved? Code so far...



      public void fileSelection(){

      FileChooser fileChooser = new FileChooser();
      fileChooser.setTitle("Select Profile Picture");
      fileChooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("Image Files", "*.png", "*jpg"));
      File selectedFile = fileChooser.showOpenDialog(null);
      File selectedFileInput = selectedFile;

      if(selectedFile != null) {
      selectedFileOutput.setText("File selected: " + selectedFile.getName());
      previewPicture.setImage();
      } else {
      selectedFileOutput.setText("Please select a profile picture...");
      }
      }









      share|improve this question













      I am attempting to display an image file as soon as it is selected from a file chooser. The file chooser is restricted to .png and .jpg files with the selected files being stored in a variable of type File. To do this I have set up an ImageView, and I wish to set the image with this new file only problem is it is of type File not Image.



      How can this be achieved? Code so far...



      public void fileSelection(){

      FileChooser fileChooser = new FileChooser();
      fileChooser.setTitle("Select Profile Picture");
      fileChooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("Image Files", "*.png", "*jpg"));
      File selectedFile = fileChooser.showOpenDialog(null);
      File selectedFileInput = selectedFile;

      if(selectedFile != null) {
      selectedFileOutput.setText("File selected: " + selectedFile.getName());
      previewPicture.setImage();
      } else {
      selectedFileOutput.setText("Please select a profile picture...");
      }
      }






      java image javafx filechooser






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Oct 19 '16 at 0:26









      Philayyy

      4692615




      4692615
























          2 Answers
          2






          active

          oldest

          votes

















          up vote
          8
          down vote



          accepted










          You can simply create an image with



          Image image = new Image(selectedFile.toURI().toString());


          and then place it in the ImageView:



          previewPicture.setImage(image);


          Other constructors offer more control over resources required for loading the image. If you want to force the image to be a certain size, you can resize it on loading, which will save memory if the user chooses a large image but you only want to display a scaled-down version. Additionally, loading a large image may take time, so you should not load it on the UI thread. The Image constructors taking string versions of URLs have options to automatically load the image in a background thread. The following forces the width and height to be both no more than 240 pixels (while maintaining the original aspect ratio), and loads the image in the background (thus not blocking the UI):



          Image image = new Image(selectedFile.toURI().toString(),
          240, // requested width
          240, // requested height
          true, // preserve ratio
          true, // smooth rescaling
          true // load in background
          );


          See the documentation for other available constructors.






          share|improve this answer






























            up vote
            1
            down vote













            You create image and set to the ImageView as follows



              Image image = new Image(new FileInputStream(selectedFile));
            previewPicture.setImage(image);





            share|improve this answer





















              Your Answer






              StackExchange.ifUsing("editor", function () {
              StackExchange.using("externalEditor", function () {
              StackExchange.using("snippets", function () {
              StackExchange.snippets.init();
              });
              });
              }, "code-snippets");

              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "1"
              };
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using("snippets", function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: 'answer',
              convertImagesToLinks: true,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: 10,
              bindNavPrevention: true,
              postfix: "",
              imageUploader: {
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              },
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              });


              }
              });














              draft saved

              draft discarded


















              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f40120133%2fhow-to-convert-a-file-to-image-for-display-in-imageview-in-java%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes








              up vote
              8
              down vote



              accepted










              You can simply create an image with



              Image image = new Image(selectedFile.toURI().toString());


              and then place it in the ImageView:



              previewPicture.setImage(image);


              Other constructors offer more control over resources required for loading the image. If you want to force the image to be a certain size, you can resize it on loading, which will save memory if the user chooses a large image but you only want to display a scaled-down version. Additionally, loading a large image may take time, so you should not load it on the UI thread. The Image constructors taking string versions of URLs have options to automatically load the image in a background thread. The following forces the width and height to be both no more than 240 pixels (while maintaining the original aspect ratio), and loads the image in the background (thus not blocking the UI):



              Image image = new Image(selectedFile.toURI().toString(),
              240, // requested width
              240, // requested height
              true, // preserve ratio
              true, // smooth rescaling
              true // load in background
              );


              See the documentation for other available constructors.






              share|improve this answer



























                up vote
                8
                down vote



                accepted










                You can simply create an image with



                Image image = new Image(selectedFile.toURI().toString());


                and then place it in the ImageView:



                previewPicture.setImage(image);


                Other constructors offer more control over resources required for loading the image. If you want to force the image to be a certain size, you can resize it on loading, which will save memory if the user chooses a large image but you only want to display a scaled-down version. Additionally, loading a large image may take time, so you should not load it on the UI thread. The Image constructors taking string versions of URLs have options to automatically load the image in a background thread. The following forces the width and height to be both no more than 240 pixels (while maintaining the original aspect ratio), and loads the image in the background (thus not blocking the UI):



                Image image = new Image(selectedFile.toURI().toString(),
                240, // requested width
                240, // requested height
                true, // preserve ratio
                true, // smooth rescaling
                true // load in background
                );


                See the documentation for other available constructors.






                share|improve this answer

























                  up vote
                  8
                  down vote



                  accepted







                  up vote
                  8
                  down vote



                  accepted






                  You can simply create an image with



                  Image image = new Image(selectedFile.toURI().toString());


                  and then place it in the ImageView:



                  previewPicture.setImage(image);


                  Other constructors offer more control over resources required for loading the image. If you want to force the image to be a certain size, you can resize it on loading, which will save memory if the user chooses a large image but you only want to display a scaled-down version. Additionally, loading a large image may take time, so you should not load it on the UI thread. The Image constructors taking string versions of URLs have options to automatically load the image in a background thread. The following forces the width and height to be both no more than 240 pixels (while maintaining the original aspect ratio), and loads the image in the background (thus not blocking the UI):



                  Image image = new Image(selectedFile.toURI().toString(),
                  240, // requested width
                  240, // requested height
                  true, // preserve ratio
                  true, // smooth rescaling
                  true // load in background
                  );


                  See the documentation for other available constructors.






                  share|improve this answer














                  You can simply create an image with



                  Image image = new Image(selectedFile.toURI().toString());


                  and then place it in the ImageView:



                  previewPicture.setImage(image);


                  Other constructors offer more control over resources required for loading the image. If you want to force the image to be a certain size, you can resize it on loading, which will save memory if the user chooses a large image but you only want to display a scaled-down version. Additionally, loading a large image may take time, so you should not load it on the UI thread. The Image constructors taking string versions of URLs have options to automatically load the image in a background thread. The following forces the width and height to be both no more than 240 pixels (while maintaining the original aspect ratio), and loads the image in the background (thus not blocking the UI):



                  Image image = new Image(selectedFile.toURI().toString(),
                  240, // requested width
                  240, // requested height
                  true, // preserve ratio
                  true, // smooth rescaling
                  true // load in background
                  );


                  See the documentation for other available constructors.







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Oct 19 '16 at 1:23

























                  answered Oct 19 '16 at 0:43









                  James_D

                  139k9157195




                  139k9157195
























                      up vote
                      1
                      down vote













                      You create image and set to the ImageView as follows



                        Image image = new Image(new FileInputStream(selectedFile));
                      previewPicture.setImage(image);





                      share|improve this answer

























                        up vote
                        1
                        down vote













                        You create image and set to the ImageView as follows



                          Image image = new Image(new FileInputStream(selectedFile));
                        previewPicture.setImage(image);





                        share|improve this answer























                          up vote
                          1
                          down vote










                          up vote
                          1
                          down vote









                          You create image and set to the ImageView as follows



                            Image image = new Image(new FileInputStream(selectedFile));
                          previewPicture.setImage(image);





                          share|improve this answer












                          You create image and set to the ImageView as follows



                            Image image = new Image(new FileInputStream(selectedFile));
                          previewPicture.setImage(image);






                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Oct 19 '16 at 0:43









                          ravthiru

                          3,55212031




                          3,55212031






























                              draft saved

                              draft discarded




















































                              Thanks for contributing an answer to Stack Overflow!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.





                              Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                              Please pay close attention to the following guidance:


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f40120133%2fhow-to-convert-a-file-to-image-for-display-in-imageview-in-java%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              Berounka

                              Sphinx de Gizeh

                              Different font size/position of beamer's navigation symbols template's content depending on regular/plain...