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:

convert-to-8-bit-images-using-python

Ausgabe:

convert-to-8-bit-images-using-python

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

convert-to-8-bit-images-using-python

Ausgabe:

convert-to-8-bit-images-using-python

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: