Aurélien Pierre

Lektüre über Farbtheorie

Welche Ressourcen können online und in Bibliotheken gefunden werden, um etwas Farbtheorie zu verstehen?

Vorrede

Was ist Farbtheorie?

Farbtheorie hat 2 Aspekte:

  • einen wissenschaftlichen, historisch mit der Lichtphysik verbundenen, aber mittlerweile mehr mit der Psychologie in Verbindung stehenden, Versuch, physikalische Signale mit Wahrnehmungsreizen zu verknüpfen,
  • einen künstlerischen, der Farbensemantik untersucht (die meist kulturell sind) und wie sie beim Erstellen glaubwürdiger Schatten in Gemälden oder stimmungsvoller Atmosphäre in Fotografien und Filmen verwendet wird.

Es ist anzumerken, dass auch der wissenschaftliche Aspekt von Künstlern studiert wurde (wie Munsell ). Das Feld verbindet Konzepte von:

Häufige Missverständnisse

Diese Seite behandelt die meisten Fehler und Missverständnisse über Ansel, die online zu finden sind.

Ich muss ein Experte/Ingenieur sein, um Ansel zu verwenden

Meine Videos  und meine Beiträge enthalten typischerweise sowohl den „wie“- als auch den „warum/wie“-Teil. Der „warum/wie“-Teil ist typischerweise technischer oder sogar theoretischer Natur und rechtfertigt den „wie“. Es gibt mehrere Gründe, warum ich beide gebe:

  1. Die genauen technischen Erklärungen sind wirklich schwer im Internet zu finden, und ich bin ziemlich der Einzige, der Theorie und Praxis in einem Video verbindet. Andererseits ist es einfach, falsche Informationen in der Fotografie zu finden, von Leuten, die etwas über dem Durchschnitt liegen und versuchen, zu helfen, aber andere tatsächlich irreführen.
  2. Ich persönlich hasse Gurus, die Anweisungen fallen lassen, ohne sie zu rechtfertigen. Regeln haben immer einen Grund und müssen gebrochen werden, sobald dieser Grund nicht mehr gültig ist. Sie sehen viele Leute, die alten Regeln folgen, weil „die Alten wussten, was sie taten“ – aber nicht mehr wissen, warum sie es taten – während sich die Umstände geändert haben.
  3. Zu verstehen, wie Werkzeuge funktionieren, ermöglicht es Ihnen vorherzusagen, wann sie fehlschlagen werden (denn sie werden alle irgendwann fehlschlagen), was es Ihnen ermöglicht, Probleme zu lösen, noch bevor sie überhaupt auftreten, und einen Plan B bereit zu haben, wenn es passiert.
  4. Die meisten Ratschläge, die ich gebe, sind kontextuell zu dem gewünschten Ergebnis und dem Typ des bearbeiteten Bildes. Das Entfernen des Kontexts würde sie im Allgemeinen einfach falsch machen.

Deshalb haben viele Menschen die Vorstellung entwickelt, dass sie 100 % des technischen Inhalts verstehen müssen, bevor sie die Software verwenden können. Das ist einfach nicht wahr. Letztendlich ist Ansel nur Software mit einer GUI, Sie können Schieberegler schieben oder Fabrikvoreinstellungen verwenden, bis das Bild gut aussieht. Alles, was Sie nicht verstehen, kann vorerst ignoriert und vielleicht später wieder ausprobiert werden.

Die Mathematik von Diffundieren oder Schärfen

Dieser Artikel dokumentiert die Mathematik, die derzeit in Ansels Modul diffuse or sharpen implementiert ist, wie sie in src/iop/diffuse.c, src/common/bspline.h, data/kernels/diffuse.cl und data/kernels/bspline.cl zu finden ist. Es ist keine Anwendungsanleitung. Es ist eine Rekonstruktion des numerischen Modells aus dem Quellcode, wobei die wissenschaftlichen Aussagen auf die in den Code-Kommentaren zitierten Referenzen zurückgeführt werden.1

Kurzfassung

Das Modul operiert auf einer À-trous-Mehrskalen-Zerlegung des Bildes in voller Auflösung, die aus kardinalen B-Spline-Unschärfen aufgebaut ist. Auf jeder Skala berechnet Ansel vier anisotrope Operatoren zweiter Ordnung getrennt auf dem Niederfrequenz- und dem Hochfrequenzband, reguliert deren Wirkung durch eine skalennormierte lokale Hochfrequenzband-Energie, beschränkt die Aktualisierung optional auf eine binäre Inpainting-Maske und rekonstruiert das Bild von grob zu fein.2 Die diskreten räumlichen Operatoren sind 3x3-Stencils zentraler Differenzen, die auf dem dünn besetzten À-trous-Untergitter der aktuellen Skala abgetastet werden, sodass die größere physikalische Reichweite aus der Schrittweite $2^s$ der Wavelet-Leiter statt aus einem größeren PDE-Kern stammt.31

Die Mathematik der guided laplacians und der harmonischen Transposition

Dieser Artikel stellt die Mathematik von Ansels Lichterrekonstruktion vor: das ursprüngliche guided laplacians-Design von 2021, dessen allgemeine Ideen nur je im pixls.us-Forum skizziert worden waren,1 und die harmonische Transposition, die Methode, die es ablöste, nachdem eine Ground-Truth-Studie einen Fehler bei der Wiederherstellung der Magnitude aufgedeckt hatte.2 Er ist so aufgebaut, dass jede Leserin und jeder Leser den eigenen Abschnitt findet: Die Ergebnisse und der Abschnitt Intuition & Hintergrund jeder Methode kommen ohne Mathematik aus; Entwickler finden die Unterabschnitte Implementierung & Optimierungen und die Performance-Studie; die theoretischen Erkenntnisse und der Friedhofs-Anhang sind so geschrieben, dass sie auch außerhalb der Fotografie wiederverwendbar sind; und wie diese Arbeit tatsächlich entstand dokumentiert das Mensch-Maschine-Forschungsprotokoll dahinter.

Farbmanagement für Linux-Nutzer

Linux hinkt bei der Sicherstellung der Konsistenz der auf dem Monitor angezeigten Farben MacOS und selbst Windows noch immer weit hinterher. Die vielerorts erzwungene Einführung des Grafikservers Wayland in den meisten Linux-Distributionen hat diesen Zustand noch weiter verschlechtert, da das Farbmanagement von den Wayland-Entwicklern lange abgelehnt wurde. Die Spezifikation für ein CMS in Wayland wurde schließlich 2020 entworfen und der Code wurde 2025 in das Wayland-Upstream integriert, von externen Mitwirkenden und nach einem langen Kampf der Entwickler früherer CMS-Software gegen die historischen Entwickler von Wayland.1 Seitdem ist der Stand der CMS-Unterstützung über die Desktop-Umgebungen und Distributionen hinweg sehr unbeständig. Und dennoch zeigen die vorläufigen Ergebnisse der Ansel-Telemetrie eine Wayland-Verbreitung von 67 % unter den Ansel-Nutzern.

Willkommen dem neuen Ansel-Maintainer

Jiyoné (Guillaume Stutin) hat die Wartung von Ansel seit Oktober 2025 übernommen. Das aktuelle Ziel ist es, Ansel in eine Genossenschaft  zu verwandeln, in der die Nutzer Mitglieder werden und die Ausrichtung und Prioritäten des Projekts demokratisch bestimmen können, aber auch eine faire Vergütung und ein sicheres Arbeitsumfeld für diejenigen garantieren, die ihre Arbeitskraft in das Projekt einbringen. Ich habe die Beschreibung des Problems und die vorgeschlagene Lösung auf der Seite Demokratie dargelegt.

Änderungen bei der Distribution der Ansel-Pakete

Entwicklung

Target Clones

Das native Kompilieren der Software auf dem Rechner verbesserte die Laufzeiten auf der CPU früher um etwa 30 % gegenüber vorgefertigten Paketen. Der Grund ist, dass der Compiler spezifische Optimierungen für die Zielhardware vornimmt, auf der er kompiliert wird, während vorgefertigte Pakete generisch bleiben und um der breiten Unterstützung willen konservativere Optimierungen auslösen müssen. Beachten Sie, dass OpenCL-Kernel ohnehin für Ihre bestimmte GPU über Ihren OpenCL-Treiber kompiliert werden, sodass die Sache dort anders liegt.

Farbregler endlich korrekt

Development Design

Einführung

Werkzeuge vs. Maschinen, Handwerk vs. Industrie

In seinem Buch The Technological Society (1954) stellt Jacques Ellul den Unterschied zwischen der vor- und der nachindustriellen Revolution wie folgt dar:

Die vorindustrielle Ära ist die Herrschaft des Werkzeugs und des Handwerks. Die vornehmste Eigenschaft von Werkzeugen ist es, generisch, vielseitig und anpassungsfähig zu sein. Es obliegt dem Handwerker, seine Fähigkeiten zu entwickeln, um die Werkzeuge seiner Absicht folgen zu lassen, sodass die Hand die Grenzen des Instruments ausgleicht. Dieses Konzept ist Musikern noch heute wohlbekannt: Man muss üben, lernen, versuchen, scheitern, erneut versuchen … es gibt keine Abkürzungen. Ellul betont den Gedanken der Sparsamkeit, der mit Werkzeugen einhergeht: Ressourcen sind begrenzt, sodass Ihr Werkzeugbestand im Grunde dadurch bestimmt ist, was Sie sich leisten, tragen, meistern und vor Ort bauen können. Trends ändern sich langsam und sind lokal, weil sie lokale Ressourcen nutzen und sich an lokale Bedürfnisse anpassen, und Werkzeuge folgen demselben Muster. Werkzeuge sind Erbstücke, die vom Meister an den Lehrling, von den Eltern an das Kind weitergegeben werden. Sie werden nicht inkompatibel oder veraltet.

Neugestaltung des Leuchttisches und des Mipmap-Caches

Entwicklung Redesign Performance

Zwischen Januar 2022 und März 2026 hat Ansel 297 Non-Merge-Commits eingebracht, die das Leuchttisch-Raster, seine Vorschaubilder sowie deren Rendering-Pipeline und Caching betreffen. Ich habe versucht, so lange wie möglich mit dem schludrigen Leuchttisch-Code von Darktable auszukommen, nur entfettet, aber leider war das reine technische Schulden und es war quälend langsam.

Tatsächlich „bewältigt" Darktable die Miserabilität seines Leuchttisches, indem es dessen Größe reduziert: Die linke und rechte Seitenleiste beanspruchen viel Anzeigefläche, wodurch dem Leuchttisch noch weniger Fläche zum Neuzeichnen bleibt. Da Ansel die rechte Seitenleiste entfernt und ihren Inhalt mit der linken und dem globalen Menü zusammengeführt hat, gab es mehr Fläche zu zeichnen, mehr CPU-Arbeit zu leisten, und das furchtbare Design des Leuchttisches wurde umso schädlicher.

Komplette Überarbeitung der Pipeline

Development

Seit ich um 2012 herum begann, Darktable zu benutzen, war ich immer überrascht, wie wenig RAM es verwendete. Die Leute halten es für eine gute Sache, wenn eine Anwendung sparsam mit dem Speicher umgeht, und das trifft sicherlich zu, wenn wir von Ihrer Desktop-Umgebung sprechen. Aber wenn wir von einer Produktionssoftware sprechen, die aufwendiges Pixel-Rendering an Bildern von 12 bis 54 Mpixel durchführt, dann bedeutet das, dass dieselben aufwendigen Berechnungen immer wieder durchgeführt werden, anstatt gespeichert zu werden, um später wiederverwendet zu werden. Genau dafür ist ein Cache da: um teure Berechnungen zu vermeiden. Und er sollte dafür den gesamten verfügbaren RAM nutzen, denn Rechnen bedeutet Energieverschwendung, und das hat konkrete Auswirkungen, wenn Sie im Akkubetrieb arbeiten. Außerdem haben Sie für diesen RAM bezahlt, und ihn zu nutzen leert Ihren Akku nicht. Die CPU/GPU hingegen…

Verlaufszusammenführung robust und vorhersehbar gemacht

Development

Memoiren eines Typen, der zu viel Zeit damit verbracht hat, den Mist anderer Leute wegzuräumen und für ihre schlechten Entscheidungen zu bezahlen, Folge #zu viele.

Verlauf und Stile per Kopieren/Einfügen zu übertragen, sind Kernfunktionen in Ansel und diejenige, die ihm den Titel „Workflow-App" verdient (oder auch nicht). Aber es ist auch eine der intern am schwersten korrekt umzusetzenden. Nutzer sehen eine Liste von Bearbeitungen, doch unter der Haube hängen diese Bearbeitungen von der Reihenfolge der Pipeline, den Modulinstanzen und den Masken ab. Wenn zwei Bilder unterschiedliche Pipeline-Topologien haben, kann naives Kopieren von Bearbeitungen zu Inkonsistenzen führen.

Tastaturkürzel (Accelerators) von Grund auf neu schreiben

GUI Usability

In meinem grundlegenden Beitrag Darktable: crashing into the wall in slow-motion habe ich das Desaster dargestellt, das der neue „Great MIDI turducken" war. Der Zweck dieses Turduckens1 war es, das System der Tastaturkürzel neu zu schreiben, um es auf MIDI-Geräte zu erweitern.

Bis heute bin ich immer noch wütend über dieses Unternehmen der Massenzerstörung, hier eine Zusammenfassung der Gründe:

  1. es ersetzte 2021 ein System der Tastaturkürzel, das ziemlich gut, funktional vollständig, gut getestet, stabil und in weniger als 1500 Zeilen (Kommentare inbegriffen) programmiert war,
  2. …um Unterstützung für MIDI-Geräte und PlayStation-Gamepads hinzuzufügen (!?!)…
  3. …aber in meiner Darktable-Umfrage von 2022, ein Jahr nach dieser neuen Funktion, gaben von über 1251 teilnehmenden Nutzern an:
    • 81 % der Nutzer hatten kein MIDI-Gerät und planten nicht, sich eines anzuschaffen,
    • 2 % wussten nicht einmal, was ein MIDI-Gerät ist.
    • 8 % der Nutzer hatten ein MIDI-Gerät, verwendeten es aber nicht mit Darktable,
    • 6 % erwogen, sich vielleicht in Zukunft ein MIDI-Gerät anzuschaffen,
    • 2 % der Nutzer hatten ein MIDI-Gerät, das sie tatsächlich in Darktable verwendeten,
  4. der Code war absolut furchtbar, in Bezug auf:
    • Codequalität: unleserliche if/switch-case-Anweisungen, auf 4 Ebenen verschachtelt, inmitten von Funktionen mit 1000 Zeilen (Beispielausschnitte habe ich in meinem Artikel gepostet),
    • Codevolumen:
      • 3546 Zeilen Code für Darktable 4.0,
      • 4397 Zeilen Code für Darktable 5.0,
      • die Zunahme des Volumens ist eine direkte Folge des Versuchs, Bugs in einer Architektur zu beheben, die nicht behoben werden kann, weil ihre Komplexität weitere Komplexität fördert. All das rührt vom Design her, aber Probleme, die durch Komplexität verursacht werden, durch das Hinzufügen von mehr Komplexität zu lösen, ist keine Lösung.
    • Codekomplexität:
      • zyklomatische Komplexität :
        • 1088 für Darktable 4.0,
        • 1245 für Darktable 5.0 (Details ),
      • kognitive Komplexität :
        • 1885 für Darktable 4.0,
        • 2098 für Darktable 5.0 (Details ).
      • es ist mit Abstand die komplexeste Funktion der Software, obwohl sie nicht auf Bildern operiert. Zum Vergleich: die zweitkomplexeste Funktion ist die Dekodierung der EXIF-Metadaten, die eine kognitive Komplexität von 1348 hat.
  5. es dekodiert von Grund auf keine Tastenmodifikatoren, sondern behandelt nur Hardware-Tastenanschläge, was bedeutet:
    • eine „1"-Eingabe vom Ziffernblock wird als Keypad End dekodiert,
    • eine „1"-Eingabe von einer französischen AZERTY-Tastatur wird als Shift+& dekodiert, oder als Shift+" auf BÉPO,
    • Sie müssen daher alle Ihre zahlenbasierten Tastenkürzel für jede Art der Zahleneingabe duplizieren und darauf gefasst sein, dass das Einstellungsfenster für die Tastenkürzel keine einzige echte Zahl in den Tastenkombinationen enthält.
  6. das nutzerseitige Design ist absolut furchtbar, mit viel zu vielen zu konfigurierenden Aktionen und Emulationen („Effekte"), die selbst 4 Jahre später nicht einmal vollständig dokumentiert sind (was ist „ctrl-toggle"? „right-activate"?), und die Konfiguration der Tastenkürzel verwendet ein seltsames geteiltes Fenster, das keinerlei Sinn ergibt,
  7. die Implementierung ist ebenfalls furchtbar: die Funktion kennt die gesamte GUI der Software, und die GUI der Software kennt den Code der Tastenkürzel. Hier gibt es keine Modularität, und eine Änderung an irgendetwas im Code der Tastenkürzel kann unerwartete und unerwünschte Auswirkungen an jeder Stelle der Software haben.2 Sehen Sie sich nur den Abhängigkeitsgraphen unten an,
  8. mehrere „Tastenkürzel" (oder MIDI-Bindungen) können an dieselbe Aktion angehängt werden, was bedeutet, dass jede Nutzerinteraktion die gesamte Liste der verfügbaren Aktionen durchsuchen muss, was eine sehr ineffiziente Handhabung der Tastenkürzel, in manchen Fällen GUI-Verzögerungen und in eigentümlichen Fällen „unbekannte Tastenkombination"-Falschmeldungen verursacht.
image
Nicht dekodierte Zifferntasten und seltsame Fensteraufteilung zwischen „action" und „shortcut".
image

Der Abhängigkeitsgraph von src/gui/accelerators.c (Great MIDI turducken) vor der Neufassung. Raten Sie, warum wir das „Spaghetti-Code " nennen… Das macht deutlich, dass es eine beidseitige Abhängigkeit zwischen dem Accels-Code und dem restlichen GUI-Code gibt. Das ist ein Albtraum in der Wartung.

Willkommen, Ansel GPT !

Ankündigung

Nachdem ich endlich die gesamte Website und die Dokumentation in einen wasserdichten Übersetzungs-Workflow (unter Verwendung von po4a über Hugo) integriert hatte, der zufällig das exakt gleiche Toolset und die gleiche Logik wie die Ansel-Anwendung verwendet, kam mir die Idee, leere Übersetzungen zu automatisieren, zuerst aus den Software-Übersetzungsdateien, dann über die ChatGPT-API, die bei der Übersetzung von Markdown-Syntax durchaus einen guten Job macht.

Wenn man allein arbeitet, kann man sich nicht auf soziale Faulheit  verlassen, also muss man clever sein. Du kannst die Liste der Dinge, die ich bereits im Hintergrund für Ansel automatisiert habe, sehen.

Filmscannen

Film Negativ

Alain Oguse erlernte das Fotografiedrucken bei Claudine  und Jean-Pierre Sudre  in den späten 1960er Jahren und verbrachte seine frühe Karriere in der kommerziellen Fotografie. Nach seiner Pensionierung begann er zu erforschen, wie man das fotografische (Silberhalogenid) Korn in digitalen Scans von Filmnegativen zurückbringt und dieselbe Schärfe und Qualität findet, die er in den 1970er Jahren bei Dunkelkammervergrößerern in Punktlichtqualität hatte.

Die Punktlicht-Drucktechnik verwendet eine sehr kleine Lichtquelle, die eine sehr präzise und detaillierte Reproduktion von Schwarzweiß-Filmnegativen liefert, im Gegensatz zur diffusen Beleuchtung. Es ist sehr anspruchsvoll, da seine unverzeihliche Schärfe und Kontrast Kratzer und Staub auf der Filmoberfläche nicht verbergen. Auf diese Weise erstellte Abzüge würden oft manuelle (gemalte) Korrekturen auf Papier erfordern, was mehr Arbeit und Kosten verursachte. Bis Ende der 1970er Jahre wurde sie meist durch diffuses Licht ersetzt… besser geeignet, Manipulationsfehler zu verbergen und den Gewinn von Printlabs zu maximieren.

Willkommen, Entwicklerdokumentation!

Entwicklung

Im Dezember 2019 habe ich darum gebeten, dass jemand die Erstellung von AppImages-Paketen für Darktable übernimmt. Der offensichtliche Vorteil wäre gewesen, frühe Tests zu ermöglichen, vor der Veröffentlichung, von Menschen, die den Quellcode nicht selbst erstellen können, um hoffentlich frühes Feedback zu liefern und beim Debuggen vor der Veröffentlichung zu helfen. Dies war nie eine Priorität, was bedeutet, dass es in Ordnung war, einen Vorveröffentlichungs- und eine Nachveröffentlichungsspur zu haben, um Bugs zu beheben.

Weißabgleich(e)

Wir alle wissen, was “weiß” ist. Wir können uns ein weißes Blatt Papier vorstellen. Wir wissen, dass es weiß ist, weil wir es gelernt haben. Aber wenn du dein Blatt Papier unter einem Sommersonnenschein, einem bewölkten Himmel oder zu Hause mit diesen warmen Wohnbereichslampen legst, wird dieses Weiß seine Farbe ändern. Es könnte dich für die ersten Sekunden stören, dann wirst du es einfach vergessen: Dein Gehirn passt sich an. Aber an was passt es sich an?

Fehlerbehebung bei Farbproblemen

Dies gilt sowohl für das ursprüngliche Darktable als auch für Ansel, da sie die meisten ihrer Farb-Pipelines teilen. Das folgende Verfahren hilft dir, deine Farbprobleme zu beheben, sei es ein inkonsistentes Erscheinungsbild zwischen Export und Vorschau, zwischen Bildschirm und Druck oder zwischen zwei Apps.

Richte deinen Desktop richtig ein

Das inhärente Problem mit Farben ist, dass sie nur als Wahrnehmung existieren und diese Wahrnehmung sehr kontextuell und fließend ist. Wenn ich einen beliebigen Farbfleck nehme und ihn über einen weißen, mittelgrauen oder schwarzen Hintergrund zeige, wird er nicht gleich erscheinen, obwohl ein Kolorimeter bestätigen würde, dass es genau die gleiche Farbe ist. Ich habe eine kleine Web-Animation entwickelt, um diesen Effekt zu zeigen, indem sRGB-Gamutschnitte bei konstanter Farbgebung, über eine benutzerdefinierte Hintergrundhelligkeit dargestellt werden: das sRGB Buch der Farbe .

Den Cache der Pipeline und 10 Jahre alte Bugs beheben

Entwicklung

Zusammenfassung der vorherigen Episoden

  1. Zwischen 2020 und 2022 durchlief Darktable ein Massenvernichtungsunternehmen, betrieben von einer Handvoll Typen mit mehr Freizeit und Wohlwollen als tatsächlichem Können,
  2. 2022 begann ich, eine störende Verzögerung zu bemerken  zwischen GUI-Interaktionen mit Schieberegler-Steuerungen und der Rückmeldung/Aktualisierung besagter Regler. Mangels einer Rückmeldung, dass die Wertänderung erfasst wurde, konnten die Benutzer sie erneut ändern, wodurch zusätzliche Pipeline-Neuberechnungen ausgelöst und ihr Computer faktisch eingefroren wurde, weil die dumme GUI nie sagte „verstanden, warte jetzt einen Moment".
  3. Ich entdeckte, dass Aufträge zur Pipeline-Neuberechnung zweimal pro Klick ausgelöst wurden (einmal beim Ereignis „Taste gedrückt", einmal beim Ereignis „Taste losgelassen") und nochmals bei jeder Mausbewegung, aber auch, dass die GUI-Zustände scheinbar erst nach der Pipe-Neuberechnung aktualisiert wurden.
  4. Ich habe das behoben, indem ich die benutzerdefinierten GUI-Steuerelemente (Bauhaus-Bibliothek) nahezu neu geschrieben habe. Ich dachte, dass das Verhindern rücksichtsloser Neuberechnungsaufträge die Verzögerung beheben würde: Tat es nicht. Dann entdeckte ich, dass das Anfordern einer neuen Pipeline-Neuberechnung, bevor die vorherige beendet war, auf das Ende der vorherigen wartete, trotz eines vor vielen Jahren implementierten Abschaltmechanismus, der eigentlich hätte funktionieren sollen.
  5. Ich habe das behoben, indem ich einen Kill-Switch-Mechanismus für Pipelines implementiert habe, gemäß Kommentaren im Code aus den 2010er Jahren und internen Hilfsmitteln, die möglicherweise nie funktioniert haben. Das funktionierte nicht immer, weil der Kill-Befehl oft mit merklicher Verzögerung eintraf. Auch hier wurde die GUI-Verzögerung nicht behoben.

Neuschreiben des Import-Werkzeugs

Entwicklung Redesign

Ansel erbt von Darktable seine Datenbankgrundlage: Die nicht-destruktiven Bearbeitungshistorien werden pro Bild in einer SQLite-Datenbank gespeichert, zusammen mit Metadaten und anderen benutzerdefinierten Daten. Das Bewusstmachen der Datenbank für neue Bilder erfolgt durch das „Importieren“ von Bildern von einer Festplatte oder einer Speicherkarte. Hier kommt das Importwerkzeug ins Spiel.

Leider ist der Darktable-Importer eine weitere Sache, die um das Jahr 2020 verstümmelt wurde und sich in etwas äußerst Verstörendes verwandelte, da er ein Datei-Browser ist, der keinem zuvor bekannten Datei-Browser ähnelt und grundlegende Funktionen (wie Strg+F oder EXIF-Vorschau) vermisst, während er dennoch mit nutzlosen Funktionen überladen ist (siehe unten). Hier verlieren wir viele potenzielle zukünftige Benutzer, und es ist nur der erste Schritt des Workflows. Was für ein großartiges Beispiel dafür, was eine „Workflow-App“ leisten kann!

Farblexikon

Mindmap
  Wurzel((FARBE))
    Farberscheinungsmodell
      einheitlicher Farbraum
        Chromatizität
          U, V
          a, b
        Helligkeit
          L
        Delta E
      chromatische Anpassungsumwandlung
        Leuchtstoff
          Farbwiedergabeindex
          Farbtemperatur
      Umgebungsbeleuchtung
      Hintergrundhelligkeit
    Dimensionen
      Munsell
        Farbton
        Chroma
        Wert
      natürliche Farbsystem
        Schwärze
        Sättigung
        Farbton
      CIE
        Helligkeit
        Leuchtkraft
        Sättigung
        Chroma
        Farbigkeit
        Farbton
    Messung
      Farbmessung
        Tristimulus
          Sensor
            Luther-Ives Kriterium
            Metamerie
            Dynamikbereich
            Rauschen
            Mosaizieren
              Bayer
              XTrans
              Reißverschluss-Artefakte
          Räume
            rgb(RGB)
              HSV
              HSL
            LMS
              Yrg
            XYZ
              Yxy
                Yuv
                  Ych
            CYM
              CYMK
            Primärfarben
              Zapfen-Zellen
              LED
                ITU BT.Rec 709
                ITU BT.Rec 2020
                DCI P3
              Tinten
      Spektrometrie
        Lichtspektrum
          Wellenlängen
          Energie
      Photometrie
        Leuchtkraft
    Korrektur
      Profil
        Matrix
        Lookup-Tabelle
        Transfer-Funktion
      Farbkorrektur
        ASC CDL
        Kanal-Mixer
        Kurven
      Weißabgleich

Translated from English by : ChatGPT, Claude. In case of conflict, inconsistency or error, the English version shall prevail.

Implementierung eines Abbruchschalters in der Pipeline

Entwicklung

Ich habe lange gedacht, dass es einen Abbruchmechanismus in der Pixel-Pipeline gibt. Der Anwendungsfall ist folgender:

  1. Sie ändern einen Modulparameter,
  2. die Vorschaubilder (die zentrale Dunkelraumvorschau und das Thumbnail im linken Bereich, das auch für Histogramm und Farbwähler verwendet wird) rechnen ihre Pipeline neu, um diese Änderung zu berücksichtigen,
  3. eines der Vorschaubilder endet mit dem Rendern vor dem anderen, und das Ergebnis ist offensichtlich nicht das, was Sie wollten,
  4. Sie ändern erneut den Modulparameter, ohne darauf zu warten, dass die Neuberechnung abgeschlossen ist.

In diesem Fall möchten Sie alle aktiven Pipelines beenden, weil deren Ausgabe nicht verwendet wird, und alles sofort mit neuen Parametern neu berechnen. Außer Darktable tut das nicht, es lässt die Pipeline beenden, bevor sie neu startet, und angesichts der Kommentare im Quellcode scheint es sich um eine relativ neue Regression zu handeln und nicht um das ursprünglich beabsichtigte Verhalten.

Das Ent-Darktable-ing der GUI-Kontrollen

Entwicklung

Darktable hat seine eigenen GUI-Widgets-Bibliothek für Schieberegler und Kombinationsboxen (auch Drop-Down-Menüs oder Auswahllisten genannt), genannt Bauhaus (im Quellcode unter src/bauhaus/bauhaus.c). Während sie Gtk als Backend verwenden, sind Bauhaus benutzerdefinierte Objekte. Und wie vieles bei Darktable, gleich benutzerdefiniert verfault.

Im Jahr 2022 bemerkte ‍ich Parasiten-Neuzeichnungen und Lags  bei deren Nutzung, was zu einem frustrierenden Benutzererlebnis führte: Das Widget-Neuzeichnen schien darauf zu warten, dass Pipeline-Berechnungen abgeschlossen waren, was bedeutete, dass Benutzer nicht wirklich sicher waren, ob ihre Wertänderung registriert wurde, was sie dazu bringen könnte, es erneut zu versuchen, einen weiteren Zyklus teurer Neuberechnungen zu starten, und ihren Computer tatsächlich für mehrere sehr frustrierende Minuten nutzloser Zwischenpipeline-Berechnungen einfror.

Änderungen in der Verteilungsunterstützung für das Linux AppImage-Paket

Ankündigung

Rawspeed (die Bibliothek, die die Decoder für Kamera-Rohdateien bereitstellt) hat die Unterstützung für GCC < 12 eingestellt. Infolgedessen kann ich das AppImage nicht mehr auf Ubuntu 20.04 (mithilfe von Github-Runners) erstellen, sondern muss es auf 22.04 erstellen.

Das bedeutet, dass jede Linux-Distribution mit einer älteren libc als 2.35 das neue AppImage ab heute nicht mehr starten kann. Das sollte die meisten Benutzer nicht betreffen, die Distributionen verwenden, die 2021 oder neuer aktualisiert wurden. Ubuntu 20.04 und andere LTS/alte stabile Distributionen (Debian stable) könnten betroffen sein.

Drucken

Der szenenreferierte Workflow verspricht eine Bearbeitung, die unabhängig vom Ausgabemedium ist. Es wird typischerweise ein Bild im sRGB-Farbraum mit 8 Bit erzeugen, das Code-Werte zwischen 0 und 255 hat. Zur Vereinfachung betrachten wir hier nur den 8-Bit-Fall. Die Konzepte sind dieselben bei 16 Bit, nur der Kodierungsbereich reicht von 0 bis 65535, was anekdotisch ist.

Das Druckproblem

Leider gibt nichts die Garantie, dass der Drucker den gesamten Kodierungsbereich nutzen kann. Die minimale Dichte (Dmin im Analogen) wird mit nacktem Papier erreicht und entspricht einem RGB-Code-Wert von 255. Die maximale Dichte (Dmax im Analogen) wird bei 100 % Tintenabdeckung erreicht.1 Das Problem ist, wenn Dmin einem RGB-Codewert von 255 entspricht, stimmt Dmax nie mit einem RGB-Wert von 0 überein.

Erklärung des Redesigns der Ansel-Modulgruppen

Design

Wenn Sie von Darktable kommen, sind Sie vielleicht an dies im Dunkelkammer-Modus gewöhnt:

image

während Ansel Ihnen dies bietet:

image

Dies ist kein Unfall, und es ist an der Zeit zu erklären warum, und warum dies nicht mit Anpassungsoptionen erweitert wird.

Neue Build-Optionen für Linux

Entwicklung

Ich habe zufällig entdeckt, dass das Linux-Build-Skript eine „Paket“-Build verwendet, was bedeutet, dass die CPU-Optimierungen auf allgemeine beschränkt sind, um portable Binärdateien zu produzieren, die auf jeder x86-64-Plattform installiert werden können. Mit “Verwendung” meine ich, dass die Paket-Build-Option nicht explizit deaktiviert war, sodass sie standardmäßig aktiviert war.

Wie dem auch sei, dies ist nun standardmäßig deaktiviert, da die tatsächlichen Pakete (.exe und .appimage) nicht durch dieses Skript erstellt werden, das in erster Linie für Endbenutzer gedacht ist. Um das vorherige Verhalten wiederherzustellen, müssen Sie Folgendes ausführen:

Entwicklungstagebuch #2: Vorstellung von Chantal

Entwicklung

2022 war in Bezug auf Junk-Emails und Lärm so schlecht, dass ich Virtual Secretary  gestartet habe, ein Python-Framework, um intelligente E-Mail-Filter zu schreiben, indem Informationen aus mehreren Quellen kombiniert werden, um herauszufinden, was eingehende E-Mails sind und ob sie wichtig/dringend sind oder nicht. Wenn ich von Junk-Mails spreche, sind das auch Github-Benachrichtigungen, Pings auf pixls.us (Gott sei Dank habe ich mein Konto in diesem dummen Forum geschlossen), YouTube und direkte E-Mails von Menschen, die hoffen, privat Hilfe zu bekommen.

Grundlegende Bearbeitung

Hier ist, wie man mit der Ansel-Bearbeitung loslegt, indem nur die grundlegendsten Schritte durchgegangen werden, die Ihnen die meiste Zeit gut dienen sollten.

Das Video wurde auf Darktable 3 aufgenommen, aber dieselben Module und Prinzipien gelten für Ansel.


Translated from English by : ChatGPT, Claude. In case of conflict, inconsistency or error, the English version shall prevail.

Monochrome Toning

Film Monochrom

Dieser Artikel zeigt, wie man in Ansel monochromes Toning bei digitalen Bildern durchführt, um das Farbergebnis von Cyanotypien, Platinotypien, Sepia- und Split-Toning Entwicklungen zu emulieren.

Schritt 0: Globale Vorbereitung

Stellen Sie die globale Belichtung und filmischen Szenenweiß und Szenenschwarz ein, wie bei jedem anderen Editing. Siehe grundlegende Bearbeitungsschritte. Dies ist unser Basisbild, von Glenn Butcher:

image

Dev-Tagebuch

Entwicklung

Es sind ungefähr 3 Monate her, dass ich “R&Darktable” (was niemand richtig zu verstehen schien) in “Ansel” umbenannt habe, dann den Domainnamen gekauft und die Website von Grund auf mit Hugo erstellt habe (ich hatte zuvor nie in Golang programmiert, aber es ist hauptsächlich Template-Code).

Dann habe ich insgesamt 70 Stunden darauf verwendet, die nächtlichen Paketbuilds für Windows und Linux für kontinuierliche Lieferung vorzunehmen, etwas, was Darktable nie richtig gemacht hat (“Sie können selbst bauen, es ist nicht schwer”), nur um zu sehen, wie der Bug-Tracker nach Veröffentlichung explodiert (nichts besseres als den Vorveröffentlichungs-Spurt mit einem Nachveröffentlichungs-Spurt zu verkürzen, um Ihre Lebenserwartung zu reduzieren).

Darktable: Im Zeitlupentempo gegen die Wand krachen

Was passiert, wenn eine Gruppe von Amateurfotografen, die zu Amateurentwicklern wurden, zusammen mit einer Reihe von Back-End-Entwicklern, die Bibliotheken für Entwickler entwickeln, entscheiden, ohne Methode oder Struktur an einer Industriessoftware für Endbenutzer zu arbeiten, deren Kernkompetenz (Kolorimetrie und Psychophysik) irgendwo zwischen einem College-Abschluss in Fotografie und einem Master-Abschluss in angewandten Wissenschaften liegt, während sie versprechen, zwei Veröffentlichungen pro Jahr ohne Projektmanagement zu liefern? Ganz zu schweigen davon, dass die Gründer und die erste Generation von Entwicklern weitergezogen und geflüchtet sind?

Der Szenen-bezogene Workflow

Farblexikon Pipeline

In diesem Artikel werden Sie lernen, was der scenespezifische Workflow ist, wie Ansel ihn nutzt und warum er dem digitalen Bildverarbeitungsprozess wesentlich zugutekommt.

Einführung

Der scenespezifische Workflow bildet das Rückgrat der Ansel-Bildverarbeitungspipeline. Es ist eine Arbeitslogik, die aus der Kinoindustrie stammt, weil sie der einzige Weg ist, um ein robustes und nahtloses Compositing (auch bekannt als Alpha Blending) von überlagerten Grafiken, auf welchem die Filme stark angewiesen sind, um computergenerierte Spezialeffekte nahtlos in das reale Filmmaterial zu integrieren, zu erreichen. Für Fotografen ist es vor allem bei Szenen mit hohem Dynamikumfang (HDR) (Gegenlichtaufnahme, Sonnenuntergänge usw.) nützlich.

Search

You can also ask Chantal, the AI search engine.