I want unsubscribe from this list чет, 17. сеп 2020. у 22:16 Russell Cumins <rcum...@gmail.com> је написао/ла:
> Hi Irv, > > Found this on Google. > > https://graphicdesign.stackexchange.com/questions/67964/what-does-24bit-mean-exactly-when-referring-to-png-image-file > > If it is correct, then the alpha channel would show up on a PNG with 32 > bit depth. > E.g > (R,G,B) -> (8 bits, 8 bits, 8 bits) = PNG-24 > (R,G,B, A) -> (8 bits, 8 bits, 8 bits, 8 bits) = PNG-32 > > That being said. I'm not 100% sure on this, but I think convert_alpha() > can handle images without an alpha channel anyway. > > > On Thu, 17 Sep 2020, 00:47 Irv Kalb, <i...@furrypants.com> wrote: > >> I'm updating a class that loads and displays an image - an Image class. >> The class also has many additional calls to rotate, scale, show, hide, >> etc. I'm using pygame 1.9.6 with Python 3.7.3 >> >> I know that I should be converting the original image that is loaded into >> a better format for displaying in a window. So I want to change my code to >> take care of that conversion. My understanding is that if the image has an >> alpha channel, then when I load the image I should use ".convert_alpha()", >> and if not, I should use ".convert()". (Please let me know if this is not >> correct.) >> >> I want people who use this class to be able to load any image (typically >> png or jpg file), and have my code do the conversion the appropriate way >> without having to ask the caller to let me know the type of the image. >> >> Therefore, in my class, when I load an image, I want to know if the image >> has an alpha channel. I'm not sure of the best way of doing this. So far, >> I've come up with two different ways to do this. >> >> Approach #1 - check the extension of the file: >> >> self.originalImage = pygame.image.load(path) >> if path.endswith('.png'): >> self.originalImage.convert_alpha() >> else: >> self.originalImage.convert() >> >> >> Approach #2 - check the bitdepth of the image: >> >> self.originalImage = pygame.image.load(path) >> if pygame.Surface.get_bitsize(self.origialImage) == 24: >> self.originalImage.convert_alpha() >> else: >> self.originalImage.convert() >> >> >> In my tests, both seem to work, but I don't feel completely comfortable with >> either one. I know very little about art - for example, I don't know if all >> ".png" files have an alpha channel. I'm also not sure if all images with an >> alpha channel are 24 bits deep. >> >> Looking to see if either of these is better than the other, or if there is a >> different approach that I should take. Open to suggestions. >> >> Thanks in advance, >> >> Irv >> >>