Les images 8 bits sont un moyen de stocker des données d’image dans lesquelles chaque pixel transporte 8 bits d’informations ou vous pouvez également dire que chaque pixel transporte 1 octet de données. Par conséquent, le nombre maximum de couleurs qu’il peut contenir est de 256 ou 2 ^ 8. Vous avez peut-être joué à Nintendo dans votre enfance, il s’agissait de jeux vidéo 8 bits et ils ne peuvent afficher que 256 couleurs différentes. Vous pouvez également convertir des images en images 8 bits à l’aide de Python, ça sonne bien, non ?
Actuellement, la plupart des infographies fonctionnent sur 64 bits, ce qui signifie qu’elles peuvent afficher 2 ^ 64 couleurs différentes. Mais vous pouvez profiter de la couleur 8 bits via des postes de travail distants. Pour conserver la bande passante, de nombreux postes de travail distants passent en 8 bits pour une expérience plus rapide et plus fluide.
8 bits peuvent sembler obsolètes pour le moment, mais ils sont toujours utilisés. Par exemple, dans les montres intelligentes avec des affichages ambiants, il existe des scanners qui utilisent 8 bits comme norme, etc.
Donc, pour ramener votre enfance, nous avons créé ce tutoriel qui peut convertir des images en images 8 bits à l’aide de Python.
Qu’allez-vous apprendre dans ce tutoriel ?
- En savoir plus sur les différentes bibliothèques que vous pouvez utiliser pour couvrir les images en 8 bits
- Comment convertir des images en images 8 bits à l’aide de Python.
Modules Python pour les images 8 bits
Il existe de nombreux modules Python disponibles pour la manipulation d’images, mais comme nous nous concentrons uniquement sur la conversion d’images 8 bits, nous nous concentrerons uniquement sur quelques-uns d’entre eux.
OpenCV
Il s’agit d’un module Python open source destiné à la vision par ordinateur en temps réel. Le module est multiplateforme, ce qui signifie qu’il prend en charge Java, Python, C++, etc. C’est l’un des modules les plus populaires de Python qui est utilisé pour implémenter la détection de mouvement, la manipulation vidéo, la reconnaissance d’image et même la reconnaissance faciale d’apprentissage en profondeur.
Certaines des applications d’OpenCV :
- Boîtes à outils d’entités 2D et 3D.
- Systèmes de reconnaissance faciale.
- Reconnaissance gestuelle.
- Reconnaissance de mouvement.
- Détection d’objet.
- Segmentation et reconnaissance.
- Suivi de mouvement
Pixéliser
Il s’agit d’un autre package de manipulation d’images pour Python qui peut être utilisé pour pixelliser ou convertir des images normales en images 8 bits. Le module est très pratique et est livré avec de nombreuses autres fonctionnalités comme le redimensionnement d’image, la mise en niveaux de gris, etc.
Super Pyxelate
C’est mon préféré. Super Pyxelate est la version améliorée et plus rapide du module Pyxelate original. Le module partage de nombreux composants avec l’algorithme Pyxelate et crée des images 8 bits. Le module vous permet également de mettre à l’échelle des images, de modifier les dimensions, la profondeur et l’échelle de gris de l’image.
Méthode -1 : convertir en images 8 bits à l’aide de Super Pyxelate
Ouvrez maintenant votre terminal et collez le code ci-dessous pour installer le module :
pip3 install git+https://github.com/sedthh/pyxelate.git --upgrade
Cela installera le package requis, c’est-à-dire Super Pyxelate. Une fois installé, ouvrez maintenant votre éditeur préféré, créez un nouveau fichier « 8bit_pyx.py » et collez le code ci-dessous :
from skimage import io
from pyxelate import Pyx, Pal
#load image with 'skimage.io.imread()'
image = io.imread("IMAGE_NAME.png")
downsample_by = 14 # new image will be 1/14th of the original in size
palette = 7 # find 7 colors
#1) Instantiate Pyx transformer
pyx = Pyx(factor=downsample_by, palette=palette)
#2) fit an image, allow Pyxelate to learn the color palette
pyx.fit(image)
#3) transform image to pixel art using the learned color palette
new_image = pyx.transform(image)
save new image with 'skimage.io.imsave()'
io.imsave("pixel.png", new_image)
Explication des codes :
Nous importons nos modules requis, puis nous lisons notre image et la stockons dans une variable appelée image.
Après cela, nous avons défini la taille de la palette à 7 et downsample_by 14. Cela signifie que l’image convertie sera 1/14 de la taille d’origine. Ensuite, nous instancions le transformateur Pyx.
pyx.fit(image): essaie essentiellement d'adapter l'image à la palette de couleurs donnée.
new_image = pyx.transform(image): transforme l'image en pixel art en utilisant la palette de couleurs apprise et la stocke dans une variable "new_image".
io.imsave("pixel.png", new_image) : maintenant l'image est stockée dans un fichier nommé "pixel.png".
Exécution de code :
Maintenant, pour exécuter le code, je passe une image appelée « test.png ». Exécutez la commande ci-dessous pour exécuter le code :
python3 8bit_pyx.py
Image d’entrée :
Sortir:
Méthode -2 : convertir en images 8 bits à l’aide de Pixelate
Dans cette méthode, nous allons utiliser un autre package appelé Pixelate. Donc, dans votre terminal, collez le code ci-dessous pour installer le module de dépendance :
pip3 install pixelate
Une fois installé avec succès, vous pouvez créer un nouveau fichier appelé « pix.py » et coller le code ci-dessous :
from PIL import Image
def pixelate(input_file_path, pixel_size):
image = Image.open(input_file_path)
image = image.resize(
(image.size[0] // pixel_size, image.size[1] // pixel_size),
Image.NEAREST
)
image = image.resize(
(image.size[0] * pixel_size, image.size[1] * pixel_size),
Image.NEAREST
)
image.save("pixelate.jpg")
pixelate("test.jpg",8)
Explication des codes :
Nous avons défini une fonction pixelate() qui accepte deux paramètres : input_file_path et pixel_size. À l’intérieur de la fonction, vous pouvez voir que nous lisons l’image et la stockons dans une variable appelée « image ».
Après cela, nous redimensionnons l’image et effectuons les calculs pour la convertir en une image 8 bits.
Enfin, image.save(« pixelate.jpg ») enregistre l’image.
Exécution de code :
Pour exécuter le code, utilisez :
python3 pix.py
Input:
Sortir:
Méthode -3 : convertir en images 8 bits à l’aide d’OpenCV
Maintenant, nous devons d’abord installer OpenCV qui est notre principal acteur pour la manipulation d’images. Donc, dans votre terminal, collez le code ci-dessous :
pip3 install opencv-python
Une fois installé, créez un nouveau fichier « openc.py » et collez le code ci-dessous :
import cv2
#Input image
input = cv2.imread('test.jpg')
#Get input size
height, width = input.shape[:2]
#Desired "pixelated" size
w, h = (256, 256)
#Resize input to "pixelated" size
temp = cv2.resize(input, (w, h), interpolation=cv2.INTER_LINEAR)
#Initialize output image
output = cv2.resize(temp, (width, height), interpolation=cv2.INTER_NEAREST)
cv2.imwrite("pixelate.jpg", output)
Explication des codes :
Nous lisons d’abord l’image et la stockons dans une variable « input ».
Après cela, nous récupérons la hauteur et la largeur de l’image. Nous avons également défini la taille de l’image traitée, pour l’instant, c’est 256×256.
L’image est maintenant redimensionnée à l’aide de cv2.resize(input, (w, h), interpolation=cv2.INTER_LINEAR).
A la fin, nous enregistrons l’image sous le nom « pixelate.jpg »
Exécution de code :
Pour exécuter le code, collez le code ci-dessous dans votre terminal :
python3 openc.py
Input:
Sortir:
Derniers mots
Ainsi, dans cet article, nous avons couvert trois méthodes pour convertir n’importe quelle image en pixel art 8 bits. Il existe également d’autres méthodes et modules qui peuvent être utilisés pour convertir des images 8 bits à l’aide de Python.
Voici quelques tutoriels utiles que vous pouvez lire :