v12.1 — 2026 Edition. Ein prägnanter Leitfaden zur Verwendung von Pillow für die Bildverarbeitung und wie es sich in größere KI- und Machine-Learning-Projekte integrieren lässt (v12.1 - 2026).
Wir untersuchen die Pillow Image-Klasse und wie sie als Gateway zu Ihrem Computer-Vision-Datensatz fungiert. Sie lernen, wie man Bilder öffnet und Metadaten mithilfe von Lazy Loading sofort extrahiert.
3m 52s
2
Tensoren standardisieren: Bildmodi und Konvertierungen
Das Verständnis von Bildmodi ist entscheidend, bevor Daten in ein neuronales Netz eingespeist werden. Wir schlüsseln den Unterschied zwischen Grayscale-, RGB- und RGBA-Kanälen auf und zeigen, wie Sie die convert-Methode nutzen, um Ihre Eingaben zu standardisieren.
4m 31s
3
Geometrie für Modelle: Resizing, Cropping und Padding
Wir gehen das Problem der Formänderung von Bildern für streng dimensionierte Modelleingaben an. Sie lernen den Unterschied kennen zwischen dem Stauchen eines Bildes mit resize, dem Zuschneiden mit fit und dem Letterboxing mit pad.
3m 59s
4
Die Array-Brücke: Pixel zu PyTorch übertragen
Pillow fungiert als Brücke zwischen rohen Bilddateien und mathematischen Arrays. Wir behandeln, wie man Bilder in NumPy-Tensors und PyArrow-Formate übersetzt und wie man Modellausgaben wieder in sichtbare Bilder umwandelt.
4m 06s
5
Leichtgewichtige Augmentation: Das ImageOps-Modul
Sie brauchen nicht immer schwerfällige Bibliotheken, um Ihren Datensatz zu augmentieren. Wir untersuchen das ImageOps-Modul von Pillow, um Bilder einfach zu spiegeln, zu wenden und den Kontrast anzupassen, um Ihre Trainingsdaten künstlich zu erweitern.
4m 29s
Episoden
1
Das Vision-Gateway: Lazy Loading und Metadaten
3m 52s
Wir untersuchen die Pillow Image-Klasse und wie sie als Gateway zu Ihrem Computer-Vision-Datensatz fungiert. Sie lernen, wie man Bilder öffnet und Metadaten mithilfe von Lazy Loading sofort extrahiert.
Hallo, hier ist Alex von DEV STORIES DOT EU. Pillow: The Imaging Library, Folge 1 von 5. Du kannst ein Dataset von einer Million Images in Sekunden scannen, ohne deinen Memory zu sprengen. Das Geheimnis ist, dass deine Library die Pixeldaten erst im letztmöglichen Moment lädt. The Vision Gateway: Lazy Loading und Metadata ist der Mechanismus, der das Handling riesiger Image-Directories möglich macht.
Wenn du ein AI-Dataset baust, startest du oft mit einem uncurated Web-Scrape. Du starrst auf ein Directory mit Millionen unbekannter Files. Du musst sie vor dem Training filtern. Angenommen, dein Model braucht Images, die exakt 512 mal 512 Pixel groß sind, als JPEGs gespeichert und in Farbe. Ein weit verbreiteter Irrglaube ist, dass das Öffnen eines Image-Files in einem Script jedes einzelne Pixel sofort in den Memory lädt. Wäre das wahr, würde das Scannen von einer Million High-Resolution-Images Unmengen an RAM verbrauchen und letztendlich deine Machine crashen. Stattdessen löst Pillow das mit einem Konzept namens Lazy Loading.
Der Entry Point zum Lesen eines Images in Pillow ist die open Function, die sich im Image Module befindet. Du übergibst dieser Function einen File Path, und sie gibt ein Image Object zurück. Hier ist der entscheidende Punkt: Das Aufrufen der open Function decodiert die Rasterdaten nicht. Sie öffnet das File nur auf der Disk und liest den File Header. Der Header enthält gerade genug Informationen, um das File zu identifizieren und seine grundlegende Geometrie zu verstehen. Das eigentliche Heavy Lifting der Dekomprimierung und des Mappings der Pixeldaten wird aufgeschoben.
Weil Pillow den Header sofort liest, bekommt dein Script sofortigen Zugriff auf die Image-Metadata. Diese Metadata wird als Attributes auf dem Image Object gespeichert. Es gibt drei Haupt-Attributes, die du nutzen wirst, um Files zu evaluieren. Erstens das format Attribute. Das identifiziert den Source File Type und gibt einen String wie JPEG oder PNG zurück. Zweitens das size Attribute. Das gibt ein Tuple mit zwei Elementen zurück, das die Breite und Höhe des Images in Pixeln enthält. Drittens das mode Attribute. Der mode definiert die Anzahl und Namen der Pixel-Bands im Image, wie zum Beispiel RGB für Standardfarbe, RGBA für Farbe mit Transparenz, oder den Buchstaben L für Grayscale.
Mit diesen drei Attributes kann unser Data Engineer diesen massiven Web-Scrape sicher verarbeiten. Er schreibt einen Loop, der die open Function für jedes File im Directory aufruft. Das Script checkt die Metadata. Ist das format gleich JPEG? Ist die size gleich 512 mal 512? Ist der mode gleich RGB? Wenn das File einen dieser Checks nicht besteht, ignoriert das Script es und macht weiter.
Pillow lässt die eigentlichen Pixeldaten während dieses gesamten Prozesses komplett in Ruhe. Die Rasterdaten werden nur dann decodiert und in den Memory geladen, wenn dein Code schließlich eine Method aufruft, die ihn zwingt, mit den Pixeln zu arbeiten, wie zum Beispiel das Croppen des Images oder das Anwenden eines Visual Filters. Für die Hunderttausenden von falschen Images im Directory passiert diese Pixel Extraction nie. Der Memory Footprint bleibt winzig. Dein Script verarbeitet das Directory so schnell, wie dein Storage Drive diese kleinen File Header lesen kann.
Lazy Loading verwandelt die open Function von einer rechenintensiven Rendering Operation in einen hocheffizienten Metadata Scanner, was deine Data Pipelines schnell und deine Memory Usage konstant hält. Wenn du die Show unterstützen möchtest, kannst du auf Patreon nach DevStoriesEU suchen. Das war's für diese Folge. Danke fürs Zuhören und keep building!
2
Tensoren standardisieren: Bildmodi und Konvertierungen
4m 31s
Das Verständnis von Bildmodi ist entscheidend, bevor Daten in ein neuronales Netz eingespeist werden. Wir schlüsseln den Unterschied zwischen Grayscale-, RGB- und RGBA-Kanälen auf und zeigen, wie Sie die convert-Methode nutzen, um Ihre Eingaben zu standardisieren.
Hallo, hier ist Alex von DEV STORIES DOT EU. Pillow: The Imaging Library, Folge 2 von 5. Du lässt ein Vision Model über Nacht trainieren, nur um morgens aufzuwachen und zu sehen, dass der Loop schon vor Stunden gecrasht ist. Der Übeltäter war ein einziges von einem User hochgeladenes Bild, das minimal anders formatiert war als der Rest. Diese Inkonsistenz zu fixen, bevor sie dein Model erreicht, ist die Aufgabe von Standardizing Tensors: Image Modes und Conversions.
Neuronale Netze sind starr. Wenn dein Convolutional Layer einen Input Tensor mit drei Farbkanälen erwartet und du ihm ein Bild mit vier oder nur einem Kanal übergibst, bricht die Mathematik zusammen und die Pipeline stoppt. In der Computer Vision ist das Standardisieren deiner Bilddatenformate ein obligatorischer Pre-Processing-Schritt.
Um das in Pillow zu managen, musst du zwei zusammenhängende Eigenschaften verstehen: Bands und Modes. Ein Bild in Pillow besteht aus einem oder mehreren Bands an Daten. Du kannst dir ein Band wie ein separates zweidimensionales Array vorstellen, das eine bestimmte Komponente des Bildes enthält. Zum Beispiel bilden die Rotwerte des gesamten Bildes ein Band. Pillow erlaubt es, dass mehrere Bands in einem einzigen Image Object existieren, solange sie die gleichen Dimensionen und die gleiche Depth haben.
Ein Mode ist ein String, der den Typ und die Depth eines Pixels im Bild definiert. Der Mode sagt Pillow ganz genau, was die zugrundeliegenden Bands bedeuten. Es gibt drei Modes, die dir in Machine Learning Pipelines ständig begegnen werden. Mode L steht für Luminance. Das ist ein Standard-8-Bit-Grayscale-Bild und es enthält genau ein Band. Mode RGB ist dein Standard-True-Color-Format. Es besteht aus drei 8-Bit-Bands: Rot, Grün und Blau. Dann gibt es noch Mode RGBA. Leute denken bei einem RGBA-Bild oft einfach an ein ganz normales Bild mit transparentem Hintergrund. Aber so behandelt der Computer das nicht. Mathematisch gesehen besitzt ein RGBA-Bild einen kompletten vierten Daten-Channel – den Alpha Channel, der die Opacity von jedem einzelnen Pixel bestimmt.
Hier ist der entscheidende Punkt. Wenn ein User ein transparentes PNG-Profilbild hochlädt, kommt dieses Bild als RGBA in deiner Pipeline an. Es bringt vier Bands an Daten mit. Wenn dein Image Classifier einen RGB-Tensor erwartet, wird die Übergabe dieses rohen PNGs sofort einen Dimension Mismatch Error auslösen. Du musst es standardisieren. Das erreichst du mit der convert-Methode.
Wenn du die convert-Methode auf einem Image Object aufrufst, übergibst du den Ziel-Mode-String als Argument. Um unser PNG-Problem zu fixen, öffnest du das Bild und rufst dann convert auf, wobei du den String RGB übergibst. Der Aufruf der convert-Methode verändert dein Originalbild nicht in place. Sie gibt ein neu erstelltes Image Object mit den übersetzten Pixeldaten zurück.
Der Conversion-Prozess ist nicht immer nur ein simples Löschen von extra Daten. Wenn du ein RGBA-Bild zu RGB konvertierst, droppt Pillow den Alpha Channel, aber es erhält nicht auf magische Weise das, wie der transparente Hintergrund deiner Vorstellung nach aussah. Standardmäßig ersetzt Pillow die Transparenz durch Schwarz. Wenn du ein RGB-Bild für ein Grayscale Model auf Mode L herunterkonvertierst, bildet Pillow nicht einfach faul den Durchschnitt der drei Color Bands. Es wendet eine spezifische gewichtete mathematische Formel auf die roten, grünen und blauen Channels an, um eine hochpräzise, vom Menschen wahrgenommene Luminance zu berechnen. Das resultierende Mode L Bild hat genau ein Band.
Wenn du convert aufrufst und den Mode anfragst, in dem das Bild bereits ist, gibt Pillow einfach eine Kopie des Originals zurück, ohne Compute Cycles zu verschwenden. Das bedeutet, du kannst blind einen convert to RGB Command auf jede einzelne Datei in deinem Dataset loslassen, ohne dir Sorgen machen zu müssen, die zu bestrafen, die bereits korrekt formatiert sind.
Geh immer davon aus, dass von Usern bereitgestellte Bilder unvorhersehbare Channel Depths haben. Eine strikte Mode Conversion an der Grenze deiner Pipeline zu erzwingen, ist die günstigste Versicherung, die du gegen Runtime Dimension Errors hast.
Das war's für diese Folge. Danke fürs Zuhören und keep building!
3
Geometrie für Modelle: Resizing, Cropping und Padding
3m 59s
Wir gehen das Problem der Formänderung von Bildern für streng dimensionierte Modelleingaben an. Sie lernen den Unterschied kennen zwischen dem Stauchen eines Bildes mit resize, dem Zuschneiden mit fit und dem Letterboxing mit pad.
Hallo, hier ist Alex von DEV STORIES DOT EU. Pillow: The Imaging Library, Folge 3 von 5. Du fütterst dein Neural Network mit einem Smartphone-Foto, und die Accuracy sinkt. Das Problem sind nicht deine Weights oder deine Architecture. Wenn du ein rechteckiges Foto einfach in einen quadratischen Tensor quetschst, verzerrst du die Features, bevor das Model sie überhaupt sieht. In dieser Folge geht es um Geometrie für Models: Resizing, Cropping und Padding.
Du bereitest Smartphone-Fotos für ein ResNet-Model vor, das einen exakten Input von 224 mal 224 Pixeln erwartet. Fotos aus der echten Welt gibt es in allen möglichen Formaten. Du hast breite Landschaften und hohe Porträts, aber dein Model verlangt ein perfektes Quadrat. Du musst diese Lücke schließen, ohne die zugrundeliegenden Daten zu ruinieren. Der häufigste Fehler ist, die Standard-Resize-Methode für das Bild aufzurufen und die Dimensionen 224 mal 224 zu übergeben. Resize ist ein grobes Werkzeug. Es zwingt das Bild in genau diese Dimensionen und ignoriert die ursprüngliche Aspect Ratio komplett. Wenn das Originalbild ein breites Rechteck war, wird es horizontal gestaucht. Kreise werden zu schmalen Ovalen. Das Neural Network lernt von diesen verzerrten Formen, was seine Performance in der echten Welt verschlechtert. Resize passt ein Bild nicht intelligent an, es verzerrt es einfach blind.
Um Verzerrungen zu vermeiden, könntest du das Bild manuell croppen. Die Standard-Crop-Methode nimmt ein Tuple aus vier Koordinaten, das die linke, obere, rechte und untere Begrenzung definiert. Du könntest das mittlere Quadrat deines Bildes berechnen und den Rest weg-croppen. Das erhält die Aspect Ratio und vermeidet, dass die Features gestaucht werden. Allerdings wirft das Daten an den Rändern weg, und die Mathe zu schreiben, um die exakte Center-Box für jede eingehende Image-Size zu berechnen, ist mühsam.
Hier ist die entscheidende Erkenntnis. Pillow hat ein ImageOps-Modul, das speziell dafür entwickelt wurde, genau dieses Geometrie-Problem zu lösen. Wenn du croppen willst, ohne rechnen zu müssen, nutzt du die Fit-Methode von ImageOps. Du übergibst die exakte Size, die du willst, wie 224 mal 224. Es berechnet die Aspect Ratio deiner angefragten Size, skaliert das Bild herunter, sodass die kürzeste Seite deinem Target entspricht, und croppt dann automatisch den Überschuss aus der Mitte. Du bekommst ein perfektes Quadrat und null Verzerrung, wobei das Motiv meistens genau in der Mitte bleibt.
Was ist, wenn du es dir nicht leisten kannst, die Ränder des Bildes zu verlieren? Wenn das Motiv nicht in der Mitte ist, könnte ein Center-Crop es in der Mitte durchschneiden. In dem Fall wechselst du zur Pad-Methode von ImageOps. Pad skaliert das Bild herunter, sodass die längste Seite in dein 224-Pixel-Target passt. Die kürzere Seite wird nun kleiner als 224 sein. Um die Differenz auszugleichen, fügt die Pad-Methode einfarbige Ränder hinzu, um das Quadrat auszufüllen. Das ist allgemein als Letterboxing bekannt. Das gesamte Originalbild bleibt erhalten, die Aspect Ratio bleibt völlig intakt, und das Model bekommt trotzdem sein exaktes Quadrat.
Wann immer du eine Image-Size mit einer dieser Methoden änderst, muss Pillow die neuen Pixel berechnen. Für Machine-Learning-Models, bei denen Details auf Pixel-Ebene wichtig sind, willst du einen hochwertigen Resampling-Filter. Wenn du Fit, Pad oder Resize aufrufst, kannst du ein Resampling-Argument übergeben. Ein Filter wie BICUBIC ist hier eine starke Standardwahl. Er schaut sich die umliegenden Pixel an, um weiche Übergänge zu berechnen, und erhält so die Schärfe der Kanten, auf die sich deine Convolutional Layers verlassen. Ein Neural Network kann leicht lernen, schwarzes Padding zu ignorieren, aber es kann ein verzerrtes Feature nicht wieder entzerren. Das war's für diese Folge. Danke fürs Zuhören, und keep building!
4
Die Array-Brücke: Pixel zu PyTorch übertragen
4m 06s
Pillow fungiert als Brücke zwischen rohen Bilddateien und mathematischen Arrays. Wir behandeln, wie man Bilder in NumPy-Tensors und PyArrow-Formate übersetzt und wie man Modellausgaben wieder in sichtbare Bilder umwandelt.
Hallo, hier ist Alex von DEV STORIES DOT EU. Pillow: The Imaging Library, Folge 4 von 5. Machine Learning Frameworks wie PyTorch oder TensorFlow wissen eigentlich gar nicht, was ein JPEG oder ein PNG ist. Sie verstehen nur Mathe, was bedeutet, dass sie nur mehrdimensionale Arrays verstehen. Wenn du eine Bilddatei direkt an ein Model übergibst, schlägt das fehl. Du brauchst einen Weg, diese encodierten Bytes in ein rein mathematisches Format zu übersetzen. Die Array Bridge: Moving Pixels to PyTorch ist genau die Lösung dafür.
Pillow fungiert als universeller Übersetzer im AI-Stack. Wenn du ein Bild mit Pillow öffnest, bekommst du ein Image-Objekt. Um das in eine Data Pipeline einzuspeisen, übergibst du dieses Pillow-Objekt direkt an Numpy, und zwar mit der as array Funktion. Unter der Haube stellt Pillow ein Standard Buffer Interface bereit. Numpy liest diesen Memory Buffer und verpackt ihn in ein mehrdimensionales Array. Für ein Standard-Farbfoto bekommst du ein dreidimensionales Array, das die Höhe, die Breite und die Color Channels repräsentiert.
Hier wird es interessant. Wenn du diese Konvertierung machst, verlässt du das Pillow-Ökosystem komplett. Das resultierende Array enthält keinerlei Metadata von Pillow. Die DPI-Settings, die EXIF-Daten, die ICC-Farbprofile und die Farbpaletten werden komplett entfernt. Was übrig bleibt, sind reine, rohe numerische Pixelwerte. Wenn dein Originalbild palettenbasiert war, wie zum Beispiel ein GIF-File, musst du es innerhalb von Pillow in ein RGB-Bild konvertieren, bevor du es an Numpy übergibst. Sonst bekommst du nur ein Array mit bedeutungslosen Paletten-Indexnummern anstelle der tatsächlichen Farben.
Sobald deine Pixel in Array-Form vorliegen, kann dein Framework seine Tensor-Operationen ausführen, Filter anwenden oder ein Computer Vision Model ausführen. Aber irgendwann bekommst du ein Ergebnis zurück. Ein Model gibt vielleicht ein neues Array aus, das ein generiertes Bild oder eine Segmentation Mask darstellt. Um dieses Ergebnis anzusehen oder zu speichern, musst du die Brücke in die entgegengesetzte Richtung überqueren. Du nimmst dieses Output-Array und übergibst es an die Pillow-Funktion namens from array. Pillow liest den Shape und den Data Type des Numpy-Arrays, um herauszufinden, wie die Zahlen interpretiert werden sollen. Wenn es ein Array von Unsigned Eight-Bit Integers mit drei Channels sieht, erstellt es standardmäßig ein RGB-Bild. Wenn es einen einzelnen Channel sieht, erstellt es ein Grayscale-Bild. Du hast auch die Möglichkeit, den Color Mode selbst explizit zu übergeben, wenn du das Default-Verhalten überschreiben musst. Sobald Pillow das Image-Objekt rekonstruiert hat, rufst du einfach die save Methode auf, um es direkt auf deine Festplatte zu schreiben.
Memory zwischen verschiedenen Libraries hin und her zu schieben, kann teuer sein. Wenn du ein riesiges Dataset an hochauflösenden Bildern verarbeitest, erzeugt das Hin- und Herkopieren von Pixeldaten einen signifikanten Bottleneck. Um das zu lösen, unterstützt Pillow das Apache Arrow Format über eine Funktion namens from arrow. Arrow ist ein Standard für In-Memory-Daten. Wenn du die from arrow Funktion nutzt, konstruiert Pillow ein Bild direkt aus der Arrow Data Structure, und zwar mit Zero-Copy Shared Memory. Das bedeutet, dass Pillow und deine anderen Tools auf exakt dieselbe physische Memory Location zeigen. Die Daten werden niemals dupliziert. Es ist ein hocheffizienter Weg, um große Mengen an Pixeln in moderne Pipelines einzuspeisen, ohne deinen System Memory auszuschöpfen.
Die wahre Stärke einer Imaging Library in einem AI-Stack liegt nicht nur darin, das File zu öffnen, sondern darin, elegant aus dem Weg zu gehen, damit die Mathe passieren kann. Danke, dass du ein paar Minuten mit mir verbracht hast. Bis zum nächsten Mal, mach's gut.
5
Leichtgewichtige Augmentation: Das ImageOps-Modul
4m 29s
Sie brauchen nicht immer schwerfällige Bibliotheken, um Ihren Datensatz zu augmentieren. Wir untersuchen das ImageOps-Modul von Pillow, um Bilder einfach zu spiegeln, zu wenden und den Kontrast anzupassen, um Ihre Trainingsdaten künstlich zu erweitern.
Hallo, hier ist Alex von DEV STORIES DOT EU. Pillow: The Imaging Library, Folge 5 von 5. Du importierst ein riesiges Computer Vision Framework und ziehst dir Gigabytes an Dependencies rein, nur um ein paar Training Images zu spiegeln. Du brauchst nicht immer eine schwere, spezialisierte Library, um eine robuste Augmentation Pipeline zu bauen. Manchmal reicht schon Lightweight Augmentation: Das ImageOps-Modul.
Bevor wir uns die Funktionen ansehen, müssen wir ImageOps vom ImageFilter-Modul trennen. Hörer verwechseln die beiden gelegentlich. ImageFilter wendet Convolution Kernels auf ein Bild an und berechnet neue Pixel Values basierend auf ihren Nachbarn, um Unschärfen zu erzeugen oder Kanten zu finden. ImageOps ist völlig anders. Es bietet fertige Pixel-Mapping-Operationen. Das sind direkte, schnelle Transformationen, die die Farbe oder Position einzelner Pixel manipulieren, ohne auf komplexe Neighbor Math angewiesen zu sein.
Wenn du ein Dataset für Machine Learning vorbereitest, gibt dir ImageOps sofort einsatzbereite Tools, um deine Daten zu vervielfachen. Du hast deterministische Spatial Augmentations. Die mirror-Funktion spiegelt dein Bild horizontal und vertauscht die linke und rechte Seite. Die flip-Funktion spiegelt es vertikal und vertauscht oben und unten. Beide Operationen behalten die exakten Dimensionen deiner Originaldaten bei, sie werden nur neu ausgerichtet.
Du hast außerdem direkten Zugriff auf Farb- und Kontrasteinstellungen. Die grayscale-Funktion konvertiert dein Bild in ein 8-Bit-Schwarzweißformat. Das wird häufig verwendet, um die Dimensionalität deiner Input-Daten zu reduzieren, wenn die Farbe für den Classification Task nicht relevant ist. Die invert-Funktion kehrt alle Color Channels um. Ein 8-Bit-Pixel mit dem Wert null wird zu 255, wodurch ein weißer Hintergrund schwarz und rote Pixel cyan werden. Das ist extrem effektiv, wenn du negative Masken für Segmentation Tasks generierst.
Hier ist die wichtigste Erkenntnis: Die autocontrast-Funktion ist besonders nützlich, um Raw Datasets mit inkonsistenter Beleuchtung zu standardisieren. Sie berechnet ein Histogramm des Bildes, findet die dunkelsten und hellsten Pixel und streckt den Farbbereich, sodass das dunkelste Pixel rein schwarz und das hellste rein weiß wird. Du kannst eine Cutoff Percentage an die autocontrast-Funktion übergeben. Das sagt Pillow, dass es extreme Outlier-Pixel, wie zum Beispiel eine einzelne helle Sonnenreflexion, bei der Berechnung der neuen Kontrastkurve ignorieren soll.
Stell dir vor, du baust einen einfachen Data Generator für Satellitenbilder. Satellitenfotos sehen aus jeder Ausrichtung gültig aus, sodass du dein Training Set durch Spatial Shifts problemlos verdoppeln kannst. Du schreibst eine Funktion, die ein Directory mit Bildern entgegennimmt. Für jedes File lädst du das Bild. Du generierst einen Random Integer. Ist der Integer gerade, übergibst du das Bild an die ImageOps mirror-Funktion. Ist der Integer ungerade, übergibst du es an die flip-Funktion. Anschließend speicherst du das resultierende Bild unter einem neuen Dateinamen, an den der Transformationstyp angehängt ist. Du hast gerade dein Dataset mithilfe einer Standard-Library vervielfacht und dein Deployment Environment extrem schlank gehalten.
Anstatt für grundlegende Data Preparation auf schwere Machine Learning Packages zurückzugreifen, verhindert ein Blick in die offizielle Dokumentation nach nativen Lösungen unnötigen Dependency Bloat. Hands-on Experimente mit diesen integrierten Tools werden deine Preprocessing Scripts drastisch vereinfachen. Wenn du Themen für eine neue Serie vorschlagen möchtest, besuche devstories dot eu. Das war’s für diese Folge. Danke fürs Zuhören und keep building!
Tap to start playing
Browsers block autoplay
Share this episode
Episode
—
Copy this episode in another language:
Diese Website verwendet keine Cookies. Unser Hosting-Anbieter protokolliert möglicherweise deine IP-Adresse zu Analysezwecken. Mehr erfahren.