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 > >