How to add text on top of an image in tkinter












1















I want to know how to add text on to of an image in tkinter. I type in the following code:



import PIL
from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw
draw=ImageDraw.Draw("maybe.png")
pixellat=ImageFont.truetype("pixellat.ttf",18)
draw.text((125, 125),"This is a test",(255,255,255),font=pixellat)


But I get this error:



Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-
packages/PIL/ImageDraw.py", line 344, in Draw
return im.getdraw(mode)
AttributeError: 'str' object has no attribute 'getdraw'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Users/Apple/Desktop/pong 1.2/pong menu.py", line 41, in <module>
draw=ImageDraw.Draw("maybe.png")
File "/usr/local/lib/python3.7/site-
packages/PIL/ImageDraw.py", line 346, in Draw
return ImageDraw(im, mode)
File "/usr/local/lib/python3.7/site-packages/PIL/ImageDraw.py", line 60, in __init__
im.load()
AttributeError: 'str' object has no attribute 'load'


Can you help me fix this? Thanks.










share|improve this question





























    1















    I want to know how to add text on to of an image in tkinter. I type in the following code:



    import PIL
    from PIL import ImageFont
    from PIL import Image
    from PIL import ImageDraw
    draw=ImageDraw.Draw("maybe.png")
    pixellat=ImageFont.truetype("pixellat.ttf",18)
    draw.text((125, 125),"This is a test",(255,255,255),font=pixellat)


    But I get this error:



    Traceback (most recent call last):
    File "/usr/local/lib/python3.7/site-
    packages/PIL/ImageDraw.py", line 344, in Draw
    return im.getdraw(mode)
    AttributeError: 'str' object has no attribute 'getdraw'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "/Users/Apple/Desktop/pong 1.2/pong menu.py", line 41, in <module>
    draw=ImageDraw.Draw("maybe.png")
    File "/usr/local/lib/python3.7/site-
    packages/PIL/ImageDraw.py", line 346, in Draw
    return ImageDraw(im, mode)
    File "/usr/local/lib/python3.7/site-packages/PIL/ImageDraw.py", line 60, in __init__
    im.load()
    AttributeError: 'str' object has no attribute 'load'


    Can you help me fix this? Thanks.










    share|improve this question



























      1












      1








      1


      1






      I want to know how to add text on to of an image in tkinter. I type in the following code:



      import PIL
      from PIL import ImageFont
      from PIL import Image
      from PIL import ImageDraw
      draw=ImageDraw.Draw("maybe.png")
      pixellat=ImageFont.truetype("pixellat.ttf",18)
      draw.text((125, 125),"This is a test",(255,255,255),font=pixellat)


      But I get this error:



      Traceback (most recent call last):
      File "/usr/local/lib/python3.7/site-
      packages/PIL/ImageDraw.py", line 344, in Draw
      return im.getdraw(mode)
      AttributeError: 'str' object has no attribute 'getdraw'

      During handling of the above exception, another exception occurred:

      Traceback (most recent call last):
      File "/Users/Apple/Desktop/pong 1.2/pong menu.py", line 41, in <module>
      draw=ImageDraw.Draw("maybe.png")
      File "/usr/local/lib/python3.7/site-
      packages/PIL/ImageDraw.py", line 346, in Draw
      return ImageDraw(im, mode)
      File "/usr/local/lib/python3.7/site-packages/PIL/ImageDraw.py", line 60, in __init__
      im.load()
      AttributeError: 'str' object has no attribute 'load'


      Can you help me fix this? Thanks.










      share|improve this question
















      I want to know how to add text on to of an image in tkinter. I type in the following code:



      import PIL
      from PIL import ImageFont
      from PIL import Image
      from PIL import ImageDraw
      draw=ImageDraw.Draw("maybe.png")
      pixellat=ImageFont.truetype("pixellat.ttf",18)
      draw.text((125, 125),"This is a test",(255,255,255),font=pixellat)


      But I get this error:



      Traceback (most recent call last):
      File "/usr/local/lib/python3.7/site-
      packages/PIL/ImageDraw.py", line 344, in Draw
      return im.getdraw(mode)
      AttributeError: 'str' object has no attribute 'getdraw'

      During handling of the above exception, another exception occurred:

      Traceback (most recent call last):
      File "/Users/Apple/Desktop/pong 1.2/pong menu.py", line 41, in <module>
      draw=ImageDraw.Draw("maybe.png")
      File "/usr/local/lib/python3.7/site-
      packages/PIL/ImageDraw.py", line 346, in Draw
      return ImageDraw(im, mode)
      File "/usr/local/lib/python3.7/site-packages/PIL/ImageDraw.py", line 60, in __init__
      im.load()
      AttributeError: 'str' object has no attribute 'load'


      Can you help me fix this? Thanks.







      tkinter python-imaging-library python-3.7






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 16 '18 at 2:01







      Peppa

















      asked Nov 16 '18 at 1:53









      PeppaPeppa

      459




      459
























          1 Answer
          1






          active

          oldest

          votes


















          1














          You need to open/load the image first... like this:



          #!/usr/local/bin/python3

          import numpy as np
          from PIL import Image, ImageDraw, ImageFont

          # Open input image
          im = Image.open('image.png').convert('RGB')

          # Get a drawing context
          draw = ImageDraw.Draw(im)

          pixellat=ImageFont.truetype("/Library/Fonts/Apple Chancery.ttf",48)
          draw.text((80, 40),"This is a test",(255,255,255),font=pixellat)

          # Save
          im.save('result.png')


          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%2f53330369%2fhow-to-add-text-on-top-of-an-image-in-tkinter%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 need to open/load the image first... like this:



            #!/usr/local/bin/python3

            import numpy as np
            from PIL import Image, ImageDraw, ImageFont

            # Open input image
            im = Image.open('image.png').convert('RGB')

            # Get a drawing context
            draw = ImageDraw.Draw(im)

            pixellat=ImageFont.truetype("/Library/Fonts/Apple Chancery.ttf",48)
            draw.text((80, 40),"This is a test",(255,255,255),font=pixellat)

            # Save
            im.save('result.png')


            enter image description here






            share|improve this answer




























              1














              You need to open/load the image first... like this:



              #!/usr/local/bin/python3

              import numpy as np
              from PIL import Image, ImageDraw, ImageFont

              # Open input image
              im = Image.open('image.png').convert('RGB')

              # Get a drawing context
              draw = ImageDraw.Draw(im)

              pixellat=ImageFont.truetype("/Library/Fonts/Apple Chancery.ttf",48)
              draw.text((80, 40),"This is a test",(255,255,255),font=pixellat)

              # Save
              im.save('result.png')


              enter image description here






              share|improve this answer


























                1












                1








                1







                You need to open/load the image first... like this:



                #!/usr/local/bin/python3

                import numpy as np
                from PIL import Image, ImageDraw, ImageFont

                # Open input image
                im = Image.open('image.png').convert('RGB')

                # Get a drawing context
                draw = ImageDraw.Draw(im)

                pixellat=ImageFont.truetype("/Library/Fonts/Apple Chancery.ttf",48)
                draw.text((80, 40),"This is a test",(255,255,255),font=pixellat)

                # Save
                im.save('result.png')


                enter image description here






                share|improve this answer













                You need to open/load the image first... like this:



                #!/usr/local/bin/python3

                import numpy as np
                from PIL import Image, ImageDraw, ImageFont

                # Open input image
                im = Image.open('image.png').convert('RGB')

                # Get a drawing context
                draw = ImageDraw.Draw(im)

                pixellat=ImageFont.truetype("/Library/Fonts/Apple Chancery.ttf",48)
                draw.text((80, 40),"This is a test",(255,255,255),font=pixellat)

                # Save
                im.save('result.png')


                enter image description here







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 16 '18 at 12:50









                Mark SetchellMark Setchell

                91.6k781184




                91.6k781184
































                    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%2f53330369%2fhow-to-add-text-on-top-of-an-image-in-tkinter%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

                    Xamarin.iOS Cant Deploy on Iphone

                    Glorious Revolution

                    Dulmage-Mendelsohn matrix decomposition in Python