Ajout du GUI

This commit is contained in:
thatscringebro
2022-08-08 16:31:52 -04:00
parent db362ccdca
commit abd15f28b6
851 changed files with 99957 additions and 1 deletions

View File

@@ -0,0 +1,119 @@
'''
Pygame: Pygame image loader
.. warning::
Pygame has been deprecated and will be removed in the release after Kivy
1.11.0.
'''
__all__ = ('ImageLoaderPygame', )
from kivy.logger import Logger
from kivy.core.image import ImageLoaderBase, ImageData, ImageLoader
from os.path import isfile
from kivy.utils import deprecated
try:
import pygame
except:
raise
class ImageLoaderPygame(ImageLoaderBase):
'''Image loader based on the PIL library'''
@deprecated(
msg='Pygame has been deprecated and will be removed after 1.11.0')
def __init__(self, *largs, **kwargs):
super(ImageLoaderPygame, self).__init__(*largs, **kwargs)
@staticmethod
def extensions():
'''Return accepted extensions for this loader'''
# under OS X, i got with "pygame.error: File is not a Windows BMP
# file". documentation said: The image module is a required dependency
# of Pygame, but it only optionally supports any extended file formats.
# By default it can only load uncompressed BMP image
if pygame.image.get_extended() == 0:
return ('bmp', )
return ('jpg', 'jpeg', 'jpe', 'png', 'bmp', 'pcx', 'tga', 'tiff',
'tif', 'lbm', 'pbm', 'ppm', 'xpm')
@staticmethod
def can_save(fmt, is_bytesio):
if is_bytesio:
return False
return fmt in ('png', 'jpg')
@staticmethod
def can_load_memory():
return True
def load(self, filename):
if not filename:
import traceback
traceback.print_stack()
return
try:
im = None
if self._inline:
im = pygame.image.load(filename, 'x.{}'.format(self._ext))
elif isfile(filename):
with open(filename, 'rb') as fd:
im = pygame.image.load(fd)
elif isinstance(filename, bytes):
try:
fname = filename.decode()
if isfile(fname):
with open(fname, 'rb') as fd:
im = pygame.image.load(fd)
except UnicodeDecodeError:
pass
if im is None:
im = pygame.image.load(filename)
except:
# Logger.warning(type(filename)('Image: Unable to load image <%s>')
# % filename)
raise
fmt = ''
if im.get_bytesize() == 3 and not im.get_colorkey():
fmt = 'rgb'
elif im.get_bytesize() == 4:
fmt = 'rgba'
# image loader work only with rgb/rgba image
if fmt not in ('rgb', 'rgba'):
try:
imc = im.convert(32)
fmt = 'rgba'
except:
try:
imc = im.convert_alpha()
fmt = 'rgba'
except:
Logger.warning(
'Image: Unable to convert image %r to rgba (was %r)' %
(filename, im.fmt))
raise
im = imc
# update internals
if not self._inline:
self.filename = filename
data = pygame.image.tostring(im, fmt.upper())
return [ImageData(im.get_width(), im.get_height(),
fmt, data, source=filename)]
@staticmethod
def save(filename, width, height, pixelfmt, pixels, flipped,
imagefmt=None):
surface = pygame.image.fromstring(
pixels, (width, height), pixelfmt.upper(), flipped)
pygame.image.save(surface, filename)
return True
# register
ImageLoader.register(ImageLoaderPygame)