Why cannot python PIL show two images in one program












3















Here is my code:



img = Image.open('data/img.jpg')
lb = Image.open('data/label.png')
img.show('img')
img.close()
lb.show('lb')
lb.close()


After running this program, the first image is successfully showed, but the second image will not be shown unless I comment the code associated with the first image. What is the cause of this problem.










share|improve this question























  • It works for me.

    – Goyo
    Nov 13 '18 at 11:15











  • You could temporarily append the images side-by-side and show the result if you replace lines 3-6 with this: Image.fromarray(np.hstack((np.array(img),np.array(lb)))).show()

    – Mark Setchell
    Nov 13 '18 at 11:18













  • @Goyo you run this program and two windows are opened to show two images?

    – coin cheung
    Nov 13 '18 at 11:23











  • Yes. I guess it might depend on the actual program used to show the image and how it is invoked. Note that you can customize that with the command keyword.

    – Goyo
    Nov 13 '18 at 11:43
















3















Here is my code:



img = Image.open('data/img.jpg')
lb = Image.open('data/label.png')
img.show('img')
img.close()
lb.show('lb')
lb.close()


After running this program, the first image is successfully showed, but the second image will not be shown unless I comment the code associated with the first image. What is the cause of this problem.










share|improve this question























  • It works for me.

    – Goyo
    Nov 13 '18 at 11:15











  • You could temporarily append the images side-by-side and show the result if you replace lines 3-6 with this: Image.fromarray(np.hstack((np.array(img),np.array(lb)))).show()

    – Mark Setchell
    Nov 13 '18 at 11:18













  • @Goyo you run this program and two windows are opened to show two images?

    – coin cheung
    Nov 13 '18 at 11:23











  • Yes. I guess it might depend on the actual program used to show the image and how it is invoked. Note that you can customize that with the command keyword.

    – Goyo
    Nov 13 '18 at 11:43














3












3








3








Here is my code:



img = Image.open('data/img.jpg')
lb = Image.open('data/label.png')
img.show('img')
img.close()
lb.show('lb')
lb.close()


After running this program, the first image is successfully showed, but the second image will not be shown unless I comment the code associated with the first image. What is the cause of this problem.










share|improve this question














Here is my code:



img = Image.open('data/img.jpg')
lb = Image.open('data/label.png')
img.show('img')
img.close()
lb.show('lb')
lb.close()


After running this program, the first image is successfully showed, but the second image will not be shown unless I comment the code associated with the first image. What is the cause of this problem.







python python-imaging-library






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 13 '18 at 11:01









coin cheungcoin cheung

1227




1227













  • It works for me.

    – Goyo
    Nov 13 '18 at 11:15











  • You could temporarily append the images side-by-side and show the result if you replace lines 3-6 with this: Image.fromarray(np.hstack((np.array(img),np.array(lb)))).show()

    – Mark Setchell
    Nov 13 '18 at 11:18













  • @Goyo you run this program and two windows are opened to show two images?

    – coin cheung
    Nov 13 '18 at 11:23











  • Yes. I guess it might depend on the actual program used to show the image and how it is invoked. Note that you can customize that with the command keyword.

    – Goyo
    Nov 13 '18 at 11:43



















  • It works for me.

    – Goyo
    Nov 13 '18 at 11:15











  • You could temporarily append the images side-by-side and show the result if you replace lines 3-6 with this: Image.fromarray(np.hstack((np.array(img),np.array(lb)))).show()

    – Mark Setchell
    Nov 13 '18 at 11:18













  • @Goyo you run this program and two windows are opened to show two images?

    – coin cheung
    Nov 13 '18 at 11:23











  • Yes. I guess it might depend on the actual program used to show the image and how it is invoked. Note that you can customize that with the command keyword.

    – Goyo
    Nov 13 '18 at 11:43

















It works for me.

– Goyo
Nov 13 '18 at 11:15





It works for me.

– Goyo
Nov 13 '18 at 11:15













You could temporarily append the images side-by-side and show the result if you replace lines 3-6 with this: Image.fromarray(np.hstack((np.array(img),np.array(lb)))).show()

– Mark Setchell
Nov 13 '18 at 11:18







You could temporarily append the images side-by-side and show the result if you replace lines 3-6 with this: Image.fromarray(np.hstack((np.array(img),np.array(lb)))).show()

– Mark Setchell
Nov 13 '18 at 11:18















@Goyo you run this program and two windows are opened to show two images?

– coin cheung
Nov 13 '18 at 11:23





@Goyo you run this program and two windows are opened to show two images?

– coin cheung
Nov 13 '18 at 11:23













Yes. I guess it might depend on the actual program used to show the image and how it is invoked. Note that you can customize that with the command keyword.

– Goyo
Nov 13 '18 at 11:43





Yes. I guess it might depend on the actual program used to show the image and how it is invoked. Note that you can customize that with the command keyword.

– Goyo
Nov 13 '18 at 11:43












1 Answer
1






active

oldest

votes


















1














You can multithread to display both at once:



#!/usr/local/bin/python3

from PIL import Image
from threading import Thread

def display(im):
im.show()

im1 = Image.open('1.jpg')
im2 = Image.open('2.jpg')
t1=Thread(target=display,args=(im1,))
t1.start()
t2=Thread(target=display,args=(im2,))
t2.start()


enter image description here





Or you can temporarily concatenate the images into one:



#!/usr/local/bin/python3

from PIL import Image
import numpy as np

im1 = Image.open('1.jpg')
im2 = Image.open('2.jpg')

Image.fromarray(np.hstack((np.array(im1),np.array(im2)))).show()


enter image description here






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',
    autoActivateHeartbeat: false,
    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%2f53279573%2fwhy-cannot-python-pil-show-two-images-in-one-program%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    You can multithread to display both at once:



    #!/usr/local/bin/python3

    from PIL import Image
    from threading import Thread

    def display(im):
    im.show()

    im1 = Image.open('1.jpg')
    im2 = Image.open('2.jpg')
    t1=Thread(target=display,args=(im1,))
    t1.start()
    t2=Thread(target=display,args=(im2,))
    t2.start()


    enter image description here





    Or you can temporarily concatenate the images into one:



    #!/usr/local/bin/python3

    from PIL import Image
    import numpy as np

    im1 = Image.open('1.jpg')
    im2 = Image.open('2.jpg')

    Image.fromarray(np.hstack((np.array(im1),np.array(im2)))).show()


    enter image description here






    share|improve this answer




























      1














      You can multithread to display both at once:



      #!/usr/local/bin/python3

      from PIL import Image
      from threading import Thread

      def display(im):
      im.show()

      im1 = Image.open('1.jpg')
      im2 = Image.open('2.jpg')
      t1=Thread(target=display,args=(im1,))
      t1.start()
      t2=Thread(target=display,args=(im2,))
      t2.start()


      enter image description here





      Or you can temporarily concatenate the images into one:



      #!/usr/local/bin/python3

      from PIL import Image
      import numpy as np

      im1 = Image.open('1.jpg')
      im2 = Image.open('2.jpg')

      Image.fromarray(np.hstack((np.array(im1),np.array(im2)))).show()


      enter image description here






      share|improve this answer


























        1












        1








        1







        You can multithread to display both at once:



        #!/usr/local/bin/python3

        from PIL import Image
        from threading import Thread

        def display(im):
        im.show()

        im1 = Image.open('1.jpg')
        im2 = Image.open('2.jpg')
        t1=Thread(target=display,args=(im1,))
        t1.start()
        t2=Thread(target=display,args=(im2,))
        t2.start()


        enter image description here





        Or you can temporarily concatenate the images into one:



        #!/usr/local/bin/python3

        from PIL import Image
        import numpy as np

        im1 = Image.open('1.jpg')
        im2 = Image.open('2.jpg')

        Image.fromarray(np.hstack((np.array(im1),np.array(im2)))).show()


        enter image description here






        share|improve this answer













        You can multithread to display both at once:



        #!/usr/local/bin/python3

        from PIL import Image
        from threading import Thread

        def display(im):
        im.show()

        im1 = Image.open('1.jpg')
        im2 = Image.open('2.jpg')
        t1=Thread(target=display,args=(im1,))
        t1.start()
        t2=Thread(target=display,args=(im2,))
        t2.start()


        enter image description here





        Or you can temporarily concatenate the images into one:



        #!/usr/local/bin/python3

        from PIL import Image
        import numpy as np

        im1 = Image.open('1.jpg')
        im2 = Image.open('2.jpg')

        Image.fromarray(np.hstack((np.array(im1),np.array(im2)))).show()


        enter image description here







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 13 '18 at 11:41









        Mark SetchellMark Setchell

        88.2k676176




        88.2k676176






























            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.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53279573%2fwhy-cannot-python-pil-show-two-images-in-one-program%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

            Coverage of Google Street View

            Full-time equivalent

            Surfing