icon in pygame does not load transparency correctly












1















I have looked over every other question related to mine and none of them worked,
here is my code so far:



icon = pygame.image.load('icon.png')
surface= pygame.Surface(icon.get_size(), depth=24)
key = (0,255,0)
surface.fill(key, surface.get_rect())
surface.set_colorkey(key)
surface.blit(icon, (0,0))
surface.set_alpha(128)

pygame.display.set_icon(surface)


The original image is:



but when executed it still contains a black background, with a barely visable 'P'



Note: sorry for really big image not sure how to scale it down










share|improve this question



























    1















    I have looked over every other question related to mine and none of them worked,
    here is my code so far:



    icon = pygame.image.load('icon.png')
    surface= pygame.Surface(icon.get_size(), depth=24)
    key = (0,255,0)
    surface.fill(key, surface.get_rect())
    surface.set_colorkey(key)
    surface.blit(icon, (0,0))
    surface.set_alpha(128)

    pygame.display.set_icon(surface)


    The original image is:



    but when executed it still contains a black background, with a barely visable 'P'



    Note: sorry for really big image not sure how to scale it down










    share|improve this question

























      1












      1








      1








      I have looked over every other question related to mine and none of them worked,
      here is my code so far:



      icon = pygame.image.load('icon.png')
      surface= pygame.Surface(icon.get_size(), depth=24)
      key = (0,255,0)
      surface.fill(key, surface.get_rect())
      surface.set_colorkey(key)
      surface.blit(icon, (0,0))
      surface.set_alpha(128)

      pygame.display.set_icon(surface)


      The original image is:



      but when executed it still contains a black background, with a barely visable 'P'



      Note: sorry for really big image not sure how to scale it down










      share|improve this question














      I have looked over every other question related to mine and none of them worked,
      here is my code so far:



      icon = pygame.image.load('icon.png')
      surface= pygame.Surface(icon.get_size(), depth=24)
      key = (0,255,0)
      surface.fill(key, surface.get_rect())
      surface.set_colorkey(key)
      surface.blit(icon, (0,0))
      surface.set_alpha(128)

      pygame.display.set_icon(surface)


      The original image is:



      but when executed it still contains a black background, with a barely visable 'P'



      Note: sorry for really big image not sure how to scale it down







      python-3.x image pygame icons transparency






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Jan 1 at 1:39









      EthanEthan

      977




      977
























          1 Answer
          1






          active

          oldest

          votes


















          1














          Change your code to



          icon = pygame.image.load('icon.png')
          icon = pygame.transform.scale(icon, (32, 32))
          surface= pygame.Surface(icon.get_size())
          key = (0,255,0)
          surface.fill(key)
          surface.set_colorkey(key)
          surface.blit(icon, (0,0))

          pygame.display.set_icon(surface)


          Note the changes:



          I removed surface.set_alpha(128) since it will not work. Only a colorkey is supported for icons, but not per-pixel alpha.



          I changed surface.fill(key, surface.get_rect()) to surface.fill(key) because passing surface.get_rect() as argument is unnecessary.



          Also, the line icon = pygame.transform.scale(icon, (32, 32)) was added to ensure the image has the right size. Bigger sizes often do not work (depending on your OS/window manager).






          share|improve this answer
























          • Thanks I’ll try that when I get home, but what does set_colorkey do

            – Ethan
            Jan 2 at 23:23











          • Just tried it, it worked Thanks!

            – Ethan
            Jan 2 at 23:58











          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%2f53992543%2ficon-in-pygame-does-not-load-transparency-correctly%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














          Change your code to



          icon = pygame.image.load('icon.png')
          icon = pygame.transform.scale(icon, (32, 32))
          surface= pygame.Surface(icon.get_size())
          key = (0,255,0)
          surface.fill(key)
          surface.set_colorkey(key)
          surface.blit(icon, (0,0))

          pygame.display.set_icon(surface)


          Note the changes:



          I removed surface.set_alpha(128) since it will not work. Only a colorkey is supported for icons, but not per-pixel alpha.



          I changed surface.fill(key, surface.get_rect()) to surface.fill(key) because passing surface.get_rect() as argument is unnecessary.



          Also, the line icon = pygame.transform.scale(icon, (32, 32)) was added to ensure the image has the right size. Bigger sizes often do not work (depending on your OS/window manager).






          share|improve this answer
























          • Thanks I’ll try that when I get home, but what does set_colorkey do

            – Ethan
            Jan 2 at 23:23











          • Just tried it, it worked Thanks!

            – Ethan
            Jan 2 at 23:58
















          1














          Change your code to



          icon = pygame.image.load('icon.png')
          icon = pygame.transform.scale(icon, (32, 32))
          surface= pygame.Surface(icon.get_size())
          key = (0,255,0)
          surface.fill(key)
          surface.set_colorkey(key)
          surface.blit(icon, (0,0))

          pygame.display.set_icon(surface)


          Note the changes:



          I removed surface.set_alpha(128) since it will not work. Only a colorkey is supported for icons, but not per-pixel alpha.



          I changed surface.fill(key, surface.get_rect()) to surface.fill(key) because passing surface.get_rect() as argument is unnecessary.



          Also, the line icon = pygame.transform.scale(icon, (32, 32)) was added to ensure the image has the right size. Bigger sizes often do not work (depending on your OS/window manager).






          share|improve this answer
























          • Thanks I’ll try that when I get home, but what does set_colorkey do

            – Ethan
            Jan 2 at 23:23











          • Just tried it, it worked Thanks!

            – Ethan
            Jan 2 at 23:58














          1












          1








          1







          Change your code to



          icon = pygame.image.load('icon.png')
          icon = pygame.transform.scale(icon, (32, 32))
          surface= pygame.Surface(icon.get_size())
          key = (0,255,0)
          surface.fill(key)
          surface.set_colorkey(key)
          surface.blit(icon, (0,0))

          pygame.display.set_icon(surface)


          Note the changes:



          I removed surface.set_alpha(128) since it will not work. Only a colorkey is supported for icons, but not per-pixel alpha.



          I changed surface.fill(key, surface.get_rect()) to surface.fill(key) because passing surface.get_rect() as argument is unnecessary.



          Also, the line icon = pygame.transform.scale(icon, (32, 32)) was added to ensure the image has the right size. Bigger sizes often do not work (depending on your OS/window manager).






          share|improve this answer













          Change your code to



          icon = pygame.image.load('icon.png')
          icon = pygame.transform.scale(icon, (32, 32))
          surface= pygame.Surface(icon.get_size())
          key = (0,255,0)
          surface.fill(key)
          surface.set_colorkey(key)
          surface.blit(icon, (0,0))

          pygame.display.set_icon(surface)


          Note the changes:



          I removed surface.set_alpha(128) since it will not work. Only a colorkey is supported for icons, but not per-pixel alpha.



          I changed surface.fill(key, surface.get_rect()) to surface.fill(key) because passing surface.get_rect() as argument is unnecessary.



          Also, the line icon = pygame.transform.scale(icon, (32, 32)) was added to ensure the image has the right size. Bigger sizes often do not work (depending on your OS/window manager).







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Jan 2 at 8:36









          slothsloth

          74.1k14127169




          74.1k14127169













          • Thanks I’ll try that when I get home, but what does set_colorkey do

            – Ethan
            Jan 2 at 23:23











          • Just tried it, it worked Thanks!

            – Ethan
            Jan 2 at 23:58



















          • Thanks I’ll try that when I get home, but what does set_colorkey do

            – Ethan
            Jan 2 at 23:23











          • Just tried it, it worked Thanks!

            – Ethan
            Jan 2 at 23:58

















          Thanks I’ll try that when I get home, but what does set_colorkey do

          – Ethan
          Jan 2 at 23:23





          Thanks I’ll try that when I get home, but what does set_colorkey do

          – Ethan
          Jan 2 at 23:23













          Just tried it, it worked Thanks!

          – Ethan
          Jan 2 at 23:58





          Just tried it, it worked Thanks!

          – Ethan
          Jan 2 at 23:58




















          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%2f53992543%2ficon-in-pygame-does-not-load-transparency-correctly%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

          Monofisismo

          Angular Downloading a file using contenturl with Basic Authentication

          Olmecas