8-Bit-Bilder sind eine Möglichkeit, Bilddaten zu speichern, bei denen jedes Pixel 8 Informationsbits enthält, oder Sie können auch sagen, dass jedes Pixel 1 Byte Daten enthält. Daher ist die maximale Anzahl von Farben, die es aufnehmen kann, 256 oder 2^8. Vielleicht haben Sie in Ihrer Kindheit Nintendo gespielt, das waren 8-Bit-Videospiele und sie können nur 256 verschiedene Farben anzeigen. Sie können mit Python auch Bilder in 8-Bit-Bilder konvertieren, klingt gut, oder?
Derzeit laufen die meisten Computergrafiken auf 64-Bit, was bedeutet, dass sie 2^64 verschiedene Farben anzeigen können. Aber Sie können 8-Bit-Farbe über Remote-Desktops erleben. Um Bandbreite zu sparen, wechseln viele Remote-Desktops auf 8-Bit für ein schnelleres und reibungsloseres Erlebnis.
8bit mag im Moment veraltet klingen, aber sie werden immer noch verwendet. Bei Smartwatches mit Ambient-Display gibt es beispielsweise Scanner, die 8bit als Standard verwenden usw.
Um Ihre Kindheit zurückzubringen, haben wir dieses Material erstellt, das Bilder mit Python in 8-Bit-Bilder umwandeln kann.
Was lernen Sie in diesem Tutorial?
- Erfahren Sie mehr über verschiedene Bibliotheken, mit denen Sie Bilder in 8 Bit konvertieren können
- So konvertieren Sie ein Bild mit Python in ein 8-Bit-Bild.
Python-Module für 8-Bit-Bilder
Es gibt viele Python-Module für die Bildbearbeitung, aber da wir uns nur auf die 8-Bit-Bildkonvertierung konzentrieren, werden wir uns nur auf einige davon konzentrieren.
OpenCV
Es ist ein Open-Source-Python-Modul, das auf Echtzeit-Computer Vision ausgerichtet ist. Das Modul ist plattformübergreifend, was bedeutet, dass es Java, Python, C++ usw. unterstützt. Dies ist eines der beliebtesten Module in Python, das für die Implementierung von Bewegungserkennung, Videomanipulation, Bilderkennung und sogar Deep-Learning-Gesichtserkennung verwendet wird.
Einige der Anwendungen von OpenCV:
- 2D- und 3D-Feature-Toolkits.
- Gesichtserkennungssysteme.
- Bewegungserkennung.
- Objekterkennung.
- Segmentierung und Erkennung.
- Bewegungsverfolgung
Pixelate
Dies ist ein weiteres Bildbearbeitungspaket für Python, das verwendet werden kann, um normale Bilder zu verpixeln oder in 8-Bit-Bilder zu konvertieren. Das Modul ist sehr praktisch und bietet viele weitere Funktionen wie Bildgröße, Graustufen usw.
Super Pyxelate
Dies ist mein persönlicher Favorit. Super Pyxelate ist die verbesserte und schnellere Version des ursprünglichen Pyxelate-Moduls. Das Modul teilt viele Komponenten mit dem Pyxelate-Algorithmus und erstellt 8-Bit-Bilder. Mit dem Modul können Sie auch Bilder hochskalieren, die Abmessungen, die Tiefe und die Graustufen des Bildes ändern.
Methode -1: Konvertieren in 8-Bit-Bilder mit Super Pyxelate
Öffnen Sie nun Ihr Terminal und fügen Sie den folgenden Code ein, um das Modul zu installieren:
pip3 install git+https://github.com/sedthh/pyxelate.git --upgrade
Dadurch wird das erforderliche Paket installiert, z. B. Super Pyxelate. Nach der Installation öffnen Sie nun Ihren bevorzugten Editor, erstellen eine neue Datei „8bit_pyx.py“ und fügen den folgenden Code ein:
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)
Code-Erklärung:
Wir importieren Ihre benötigten Module, dann lesen wir unser Image und speichern es in einer Variablen namens image.
Danach haben wir die Palettengröße auf 7 und das Downsampling auf 14 festgelegt. Dies bedeutet, dass das konvertierte Bild 1/14 der Originalgröße hat. Dann instanziieren wir einen Transformator A.
pyx.fit(image)
: versucht im Grunde, das Bild an die angegebene Farbpalette anzupassen.new_image = pyx.transform(image)
: wandelt das Bild unter Verwendung der gelernten Farbpalette in Pixelkunst um und speichert es in einer Variablen „new_image“.io.imsave("pixel.png", new_image)
: Jetzt wird das Bild in einer Datei namens „pixel.png“ gespeichert.
Code Execution:
Um nun den Code auszuführen, übergebe ich ein Bild namens „test.png“. Führen Sie den folgenden Befehl aus, um den Code auszuführen:
python3 8bit_pyx.py
Eingabebild:
Ausgabe:
Methode -2: Konvertieren in 8-Bit-Bilder mit Pixelate
In dieser Methode verwenden wir ein anderes Paket namens Pixelate. Fügen Sie also in Ihrem Terminal den folgenden Code ein, um das Abhängigkeitsmodul zu installieren:
pip3 install pixelate
Nach erfolgreicher Installation können Sie eine neue Datei namens „pix.py“ erstellen und den folgenden Code einfügen:
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)
Code-Erklärung:
Wir haben eine Funktion pixelate() definiert, die zwei Parameter akzeptiert: input_file_path und pixel_size. In der Funktion können Sie sehen, dass wir das Bild lesen und in einer Variablen namens „image“ speichern.
Danach ändern wir die Größe des Bildes und führen die Berechnung durch, um es in ein 8-Bit-Bild umzuwandeln.
Schließlich speichert image.save(„pixelate.jpg“) das Bild.
Code-Ausführung:
Um den Code auszuführen, verwenden Sie:
python3 pix.py
die Eingabe
Ausgabe:
Methode -3: Konvertieren in 8-Bit-Bilder mit OpenCV
Jetzt müssen wir zuerst OpenCV installieren, das ist unser Hauptplayer für die Bildbearbeitung. Fügen Sie also in Ihrem Terminal den folgenden Code ein:
pip3 install opencv-python
Erstellen Sie nach der Installation eine neue Datei „openc.py“ und fügen Sie den folgenden Code ein:
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)
Code-Erklärung:
Wir lesen zuerst das Bild und speichern es in einer Variablen „input“.
Danach rufen wir die Höhe und Breite des Bildes ab. Wir haben auch die Größe des verarbeiteten Bildes definiert, vorerst ist es 256×256.
Die Bildgröße wird jetzt mit cv2.resize(input, (w, h), interpolation=cv2.INTER_LINEAR) angepasst.
Am Ende speichern wir das Bild unter dem Namen „pixelate.jpg“
Code-Ausführung:
Um den Code auszuführen, fügen Sie den folgenden Code in Ihr Terminal ein:
python3 openc.py
die Eingabe
Ausgabe:
Letzte Worte
In diesem Artikel haben wir drei Methoden behandelt, um jedes Bild in 8-Bit-Pixel-Art zu konvertieren. Es gibt auch andere Methoden und Module, die verwendet werden können, um mit Python in 8-Bit-Bilder zu konvertieren.
Hier sind einige nützliche Tutorials, die Sie lesen können:
- Echtzeit-Zwischenflussschätzung für die Videoframe-Interpolation mit Python
- Extrahieren Sie gespeicherte Chrome-Passwörter und entschlüsseln Sie sie mit Python
- Vergleichen Sie zwei Bilder und markieren Sie Unterschiede mit Python
- Generieren von QR-Codes und Barcodes in Python
- Emotionserkennung mit Python
- Wie führe ich mein Python-Skript auf Docker aus?