Alles, was man über Photoshops Wolken-Filter wissen muss



Unter den Render-Filtern steht in Photoshop der sogenannte Wolken-Filter zur Verfügung. Auf den ersten Blick wirkt er selbsterklärend, doch vieles ist nicht ganz offensichtlich:

  • Die Farbe der Wolken wird über die aktuelle Vorder- und Hintergrundfarbe gesteuert. Dies gilt allerdings nur für den 8-Bit-Modus. Im 16-Bit-Modus wird immer Schwarz und Weiß verwendet:



  • Klickt man den Wolkenfilter mit gedrückter Alt-Taste an, erhält man die sogenannten »angry clouds«, eine kontrastigere Variante der Wolken.
  • Beim Wolkenfilter handelt es sich um einen randomisierten Filter – er spuckt also jedes Mal ein anderes Ergebnis aus.
  • In Dokumenten größer als 30.000 x 30.000 Pixel lässt sich der Filter nicht anwenden. Diese Einschränkung trifft übrigens auf viele Filter zu.
  • Der Wolkenfilter erzeugt in einem Dokument mit den Maßen von einem Vielfachen von 128 Pixel ein nahtlos kachelbares Muster-Element.
  • Eigentlich handelt es sich bei dem Wolkenfilter um »perlin noise«, benannt nach Ken Perlin, der für diesen Algorithmus sogar einen Oscar gewonnen hat. Implementiert wurde der Filter von Mark Hamburg, Mitglied der Photoshop Hall of Fame.

All das gilt übrigens auch für den Filter »Differenzwolken«. Dieser erzeugt das selbe Ergebnis wie der Wolkenfilter, verrechnet mit der Füllmethode Differenz. Da die Füllmethode »Differenz« im Lab-Modus nicht zur Verfügung steht, fehlt dort auch der Filter.

Kommentar
Obwohl der Name suggeriert, dass man mit dem Filter Wolken erzeugen kann, würde ich ihn dafür wirklich nicht empfehlen. Es gibt unzählige Pinsel, die bessere Ergebnisse liefern. Viel nützlicher ist er als Basis für Strukturen, um Varianz in homogene Flächen zu bringen oder – wenn es wirklich sein muss – um dezenten Rauch oder Nebel zu erstellen. Aber bitte keine Wolken.


Beiden Effekten (Lichtbogen und Steinstruktur) liegt der Wolkenfilter zugrunde. Mit etwas Kreativität kann der Wolkenfilter für unendlich viele Dinge eingesetzt werden.


Comments

Was macht Photoshops »Eigener Filter«?

Der »Eigener Filter« oder auch »Custom Filter« ermöglicht es, benutzerdefinierte lineare Filter zu erstellen. Da das etwas nichtssagend klingt, habe ich im Artikel Filter in der digitalen Bildverarbeitung, die Basics zu linearen Filtern erklärt. Kurz zusammengefasst: Man kann damit Scharf- und Weichzeichnungsfilter bzw. Kanten betonende Filter erstellen.
eigener-filter-fragezeichen
Grundlagen
Der Filter (zu finden unter Filter > Sonstige Filter > Eigener Filter…) ermöglicht es, eine Filtermatrix mit 25 Koeffizienten (Gewichte) zu spezifizieren. Diese geben an, womit der Farbwert des Quellpixels multipliziert wird.

Ausgangspunkt für die Filteroperation ist immer das zentrale Feld. Schreibt man in dieses Feld bspw. eine 2 werden die Farbwerte aller Pixel des Bildes mit 2 multipliziert. Das Bild wird dadurch heller (höherer RGB-Wert = hellere Farbe). Schreibt man nun auch Zahlen in die benachbarten Felder, werden diese auch in die Berechnung miteinbezogen. Das Prinzip dahinter nennt man Faltung – aber dazu später mehr.

In den 25 Feldern können ganze Zahlen zwischen -999 und +999 eingetragen werden. Leere Felder werden als 0 interpretiert, was dazu führt, dass diese Felder nicht berücksichtigt werden.

Darüber hinaus verfügt der Filter über 2 weitere Eingabefelder:

Skalieren: Hier trägt man den Wert ein, mit dem die Summe aller gewichteten Werte dividiert werden soll. Da man nicht durch Null dividieren kann, muss die Zahl größer oder gleich 1 sein.

Versatz: Der Versatz fügt zusätzlich zum Ergebnis der Faltung den eingetragenen Wert hinzu.

Beispiele
Versuchen wir zunächst einen Box-Weichzeichnung-Filter zu erstellen. Weichzeichnen bedeutet das Details vernichtet oder anders gesagt Ausreißer in den Farbwerten geglättet werden. Um das zu bewerkstelligen, nimmt man einen Pixel und bildet mit den benachbarten Pixeln einen Durchschnittswert. Dieser Wert wird dann in den Ursprungpixel zurückgeschrieben. Da der Filter das mit allen Pixeln im Bild macht, wird es schließlich weichgezeichnet.

Praktisch angewandt sieht das so aus:

Beim Box-Weichzeichnungsfilter werden alle Pixel (im definierten Radius; hier 1 Pixel) gleich gewichtet, daher trägt man zunächst überall den Koeffizient 1 ein:

box-blur-custom-filter
Das mittlere Feld (rot) ist der »Hot spot« bzw. Koordinatenursprung. Oder anders ausgedrückt: der aktuell zu verarbeitende Pixel.


Jeder Eingangswert wird dadurch mit 1 multipliziert. Anschließend werden diese Werte addiert und das Resultat wird in den Ursprungspixel eingetragen. Das alleine würde allerdings zu einem extrem hellen Bild führen. Um das zu verhindern, muss das Ergebnis noch durch die Summe der Koeffizienten dividiert werden. In diesem Fall muss somit 9 bei »Skalieren« eintragen werden. Ein Versatz ist hier nicht notwendig, da er das Bild wiederum aufhellen oder abdunkeln würde – etwas was ein Weichzeichner niemals machen sollte.

Weil bei dieser Filtermatrix die Diagonalen stärker weichgezeichnet werden als die waagrechten und senkrechten Linien, kann man die Gewichtung auch etwas gleichmäßiger gestalten:

Bildschirmfoto 2018-07-08 um 21.23.13

Diese Filtermatrix entspricht übrigens exakt dem Filter »Weichzeichnen«. Der Filter »Stärker Weichzeichnen« nutzt hingegen folgende Matrix:

Bildschirmfoto 2018-07-08 um 23.09.39

Eine Annäherung an den Gaußschen Weichzeichner gelingt mit folgender Matrix:

Bildschirmfoto 2018-07-14 um 18.15.05

Doch genug vom Weichzeichnen, sehen wir uns jetzt ein Beispiel zum Scharfzeichnen an:

Bildschirmfoto 2018-07-08 um 20.16.59

Wie in den vorigen Beispielen ist auch hier zu erkennen, dass die Summe der Koeffizienten (5-1-1-1-1 = 1) den Wert für die Skalierung ergibt. (Ein falscher Skalieren-Wert ist in der Regel schnell zu erkennen, da wie oben beschrieben, das Bild dadurch meist viel zu hell oder zu dunkel wird.)

Das Prinzip hinter dieser Scharfzeichnung ist, dass der zentrale Pixel deutlich mehr gewichtet wird, als die umliegenden Pixel. Dadurch steigt der Kontrast und das erzeugt den Eindruck von mehr Schärfe. Auch wenn diese Scharfzeichnung in speziellen Fällen ganz gut funktioniert, sollte man generell doch eher davon absehen, da die anderen Scharfzeichnungsfilter in Photoshop deutlich bessere Ergebnisse liefern.

Mit dem »Eigener Filter« können aber auch ganz andere Ergebnisse erzielt werden. Will man beispielsweise den Kontrast halbieren (wie das auch mit dem Helligkeit/Kontrast-Dialog im Modus »Früheren Wert verwenden« funktioniert), muss man lediglich folgende Werte eintragen:

Bildschirmfoto 2018-07-08 um 21.25.34

Die 1 bedeutet, dass die Farbwerte nicht verändert werden, die 2 bei Skalieren heißt: Alle Werte werden halbiert. Da das Bild somit aber auch dunkler wird, müssen die Tonwerte noch mit dem Versatz in die Mitte geschoben werden.

Genauso einfach lassen sich Bilder invertieren:

Bildschirmfoto 2018-07-08 um 21.26.50

Das scheint auf den ersten Blick etwas unnötig. Wer jedoch in einem komplexen Ebenenaufbau das Invertieren lieber per Smartfilter lösen möchte, hat hiermit eine Möglichkeit.

Weitere Beispiele sind verschiedene Varianten des Kanten betonens:

Relieffilter:

Bildschirmfoto 2018-07-14 um 18.14.00

Kanten betonen:

Bildschirmfoto 2018-07-14 um 18.30.29

Klar ist: Für all diese Möglichkeiten bietet Photoshop alternative Filter, die in der Regel bessere Ergebnisse liefern. Aber jeder, der sich etwas näher mit Bildbearbeitung und Bildverarbeitung beschäftigen will, hat mit diesem Filter die Möglichkeit, das Grundkonzept dahinter zu erforschen. Die folgenden Regeln, die der Programmierer Ian Albert formuliert hat, helfen dabei, sinnvoll mit dem Filter umzugehen.

Regeln

  • Die Skalierung entspricht in der Regel der Summe der eingetragenen Koeffizienten (wie z.B. in den Weichzeichnungs-Beispielen oben zu sehen).
  • Wenn die Summe der Koeffizienten dividiert durch die Skalierung 1 beträgt, dann sollte der Versatz 0 sein.
  • Ist die Summe der Koeffizienten 0, dann sollte der Versatz 128 sein.
  • Wenn die Summe der Koeffizienten dividiert durch die Skalierung -1 beträgt, dann sollte der Versatz 255 sein. Das Ergebnis ist die Invertierung vom theoretischen Ergebnis, wenn die Summe +1 wäre.
  • Die Summe der Koeffizienten dividiert durch die Skalierung sollte in der Regel nicht mehr als +1 bzw. weniger als -1 betragen.
  • Ist das Ergebnis zu hell, ist die Skalierung wahrscheinlich zu gering. Ist es zu dunkel, ist die Skalierung wahrscheinlich zu hoch.


Comments

Filter in der digitalen Bildverarbeitung

filter-header


Was sind eigentlich Filter? Und wie funktionieren sie?
Photoshop bietet über 100 Filter an. Doch die Bezeichnung »Filter« ist etwas irreführend, denn Filter im klassischen Sinn sind davon nur wenige. Die meisten in Photoshop vorhandenen Filter würde ich eher als Effekte bezeichnen. Ein Blick in Adobes Hilfe-Dokument erhärtet diesen Gedanken:

Mit Filtern können Sie Fotos korrigieren oder retuschieren und spezielle künstlerische Effekte anwenden, die Ihrem Bild das Aussehen einer Skizze oder eines impressionistischen Gemäldes verleihen.


Um zu verstehen, was klassische Filter sind, müssen wir diese zunächst richtig einordnen. Dazu lohnt sich ein Blick auf die verschiedenen Operationen in der digitalen Bildverarbeitung.

Man unterscheidet hier zwischen Punktoperationen, Nachbarschaftsoperationen und globalen Operationen.

Punktoperationen verwenden als Eingabe die Farb- bzw. Luminanzwerte eines einzelnen Pixels, berechnen damit einen neuen Wert und tragen das Resultat wieder in den Ursprungspixel ein. In Photoshop wäre so eine Operation beispielsweise die Korrektur mittels Gradationskurve, Farbbalance etc.

Nachbarschaftsoperationen nutzen als Eingabe nicht nur einen einzelnen Pixel, sondern verwenden für die Berechnung noch zusätzlich eine bestimmte Menge der umliegenden Pixel. Das Ergebnis der Operation wird dann wie bei den Punktoperationen in den einen Ursprungspixel geschrieben. Zu diesen Operationen kommen wir gleich nochmal, denn hier verstecken sich die klassischen Filter.

Unter globalen Operationen versteht man allen voran geometrische Operationen wie das Skalieren, Drehen oder Spiegeln eines Bildes. Im Gegensatz zu Punkt- oder Nachbarschaftsoperationen wird hier das komplette Bild als Eingabe verwendet und das Bild in Größe und Form verändert. Die Farb- und Luminanzwerte hingegen werden nicht verändert. Zu den globalen Operationen zählt aber auch die Fourier-Transformation.

Nachbarschaftsopertionen
Wie vorher schon beschrieben, handelt es sich bei den Nachbarschaftsoperationen um Operationen, die das Umfeld – also Nachbarschaft – eines Pixels in die Berechnung miteinbeziehen. Dabei filtern (!) sie gewisse Merkmale wie Kanten oder Störungen im Bild.

Man kann also sagen ein Filter ist eine lokale Bildoperation, die die Geometrie des Bildes nicht verändert. Diese Definition schließt zwar keine der Photoshop-Filter wirklich aus, dennoch ist soetwas wie »Ozeanwellen«, »Buntglas-Mosaik« oder »Blendenflecke« nicht die Art von Filter, um die es hier geht. Hier geht’s ums Weich- oder Scharfzeichnen. Oder Kanten betonen. Doch dazu später mehr. Zunächst möchte ich hier nochmal auf die Gliederung von Filtern eingehen.

Durchgesetzt hat sich die Einteilung in lineare und nicht-lineare Filter auf Basis deren mathematischen Eigenschaften. Bei linearen Filtern wird jeder Pixelwert durch die linear gewichtete Summe der Quellpixel berechnet. Was das heißt, sehen wir gleich. Vorerst ist nur wichtig, dass zum Beispiel der Gaußsche Weichzeichner zu dieser Gruppe zählt.
Bei nicht-linearen Filtern werden die Pixelwerte des Quellbildes durch eine nicht-lineare Funktion verknüpft. Beispiele hierfür sind »Helligkeit interpolieren« oder »Helle/Dunkle Bereiche vergrößern«.

Nachdem wir jetzt schon ein ungefähres Verständnis davon haben, was Filter sind, sollten wir uns nun damit beschäftigen, wie sie funktionieren.

Wie funktionieren lineare Filter?
Um es einfach zu machen, stellen wir uns dazu zunächst ein Bild mit 5 x 5 Pixel vor. Um das ganze noch weiter zu vereinfachen, gehen wir zudem von einem Graustufenbild aus. Dieses Graustufenbild wollen wir weichzeichnen. Die einfachste Art hierfür ist die Anwendung des sogenannten Box-Weichzeichnungs-Filters. Dieser Filter sieht sich einen Pixel an und bildet mit den umliegenden Pixeln (Nachbarschaft) einen Durchschnittswert. Das Resultat wird dann in den Ursprungspixel (Koordinatenursprung oder Hotspot genannt) eingetragen. Es ist wichtig, zu beachten, dass obwohl mehrere Pixel verwendet werden, immer nur der Wert eines Pixels berechnet wird. Wiederholt man diesen Vorgang für alle Pixel in einem Bild, werden die Werte geglättet und das Bild somit weichgezeichnet. (Anders ausgedrückt: Die hohen Frequenzen werden eliminiert. Mehr über die Frequenzfilter erfährst du im Artikel Der Hochpass-Filter und seine Geschwister )

Die folgende Abbildung verdeutlicht das Prinzip nochmal:

visualisierung

Das zu verarbeitende Pixel (26) und dessen Nachbarschaft wird mit den Filterkoeffizienten multipliziert und anschließend werden die Werte addiert:

1x32 + 1x25 + 1x42 + 1x25 + 1x26 + 1x37 + 1x16 + 1x39 + 1x55 = 297

Das Ergebnis muss – wie bei jeder Durchschnittsberechnung – noch durch die Anzahl der Werte dividiert werden:

297/9 = 33 – Fertig.

Die Filtermatrix fährt dabei Pixel für Pixel über das Bild. An den Rändern gibt es natürlich ein Problem, denn hier fehlen einige Werte. Hierfür gibt es mehrere Lösungen, auf die ich hier aber nicht näher eingehe.

moving-filtermatrix


Wie groß diese Filtermatrix (auch Filtermaske, Faltungsmatrix oder Kernel genannt) ist, hängt vom gewählten Radius ab.

box-blur-filter-radius


Das besondere an dem Box-Weichzeichnungs-Filter ist, dass alle Pixel gleich gewichtet werden.

Der Gaußsche Weichzeichner funktioniert nach einem ähnlichen Prinzip, allerdings wird nicht einfach der Durchschnitt aller umliegenden Pixel berechnet, sondern ein gewichteter Durchschnitt. Dafür verwendet Photoshop eine Filtermatrix, die der Form einer Gaußschen Glocke entspricht. Die Filterkoeffizienten werden daher auch Gewichte genannt.

gaussian-kernel


Diese Operation, also das Wichten und Summieren, wurde übrigens nicht extra für die Bildverarbeitung erfunden, sondern existiert in der Mathematik schon lange und ist als »Faltung« oder »Konvolution« bekannt.

Im Gegensatz zu den Punktoperationen (Gradationskurve etc.) kann das Ergebnis dieser Faltung nicht direkt in das Ausgangsbild zurückgegeben werden. Denn die Ausgangspixel werden ja mehrfach benötigt. Würde man die neuen Werte sofort eintragen, hätte das zur Folge, dass die Filtermatrix beim Berrechnen des nächsten Pixels nicht nur von den Originalwerten ausgeht, sondern den zuvor bearbeiteten Pixel in die Berechnung miteinbezieht. Um das zu verhindern, wird das Ergebnis zunächst in einen »Zwischenspeicher« geschrieben und erst wenn alle Pixel berechnet wurden, werden die Ergebnisse in das Ausgangsbild zurückgegeben. Man nennt diese Vorgehensweise parallele Verarbeitung. Demgegenüber steht die sequentielle Verarbeitung, bei der die neu berechneten Pixel eben sofort in das Ausgangsbild zurückgegeben werden. (Die genaue Bezeichnung für solche Filter lautet »Infinite Impulse Response Filter«.)

Wie funktionieren nicht-lineare Filter?
Nicht-lineare Filter sind im Gegensatz zu den linearen Filter etwas schwieriger zu gliedern bzw. zu beschreiben. Ich möchte daher nur über die sogenannten Rangordnungsfilter (morphologische Operatoren) sprechen.

Doch noch einmal zurück zu den linearen Filtern. Diese haben nämlich einen Nachteil: Sie entfernen beim Weichzeichnen auch wichtige »formgebende« Bildbestandteile wie Kanten oder Linien. Daher eignen sie sich nur bedingt für das Entfernen von Störungen. Anders sieht es bei den Rangordnungsfiltern aus. Wie der Name schon andeutet, ordnen und selektieren diese Filter – im Gegensatz zu den linearen Filtern, die gewichten und addieren.

Im folgenden Vergleich ist zu sehen, dass der Rangordnungsfilter »Helligkeit interpolieren« das Bild weichzeichnet, die Kanten im Bild aber wesentlich besser beibehält als der Gaußsche Weichzeichner.

filter-vergleich


Ein Rangordnungsfilter sortiert alle Luminanzwerte eines Bild in aufsteigender Reihenfolge. Welcher Pixel nun selektiert und in den Ursprungspixel zurückgegeben wird, hängt vom genauen Filter ab. Wie die Grafik unten zeigt, werden Filter, die den mittleren Wert verwenden Medianfilter genannt. Entsprechend werden die anderen beiden Varianten Minimum- bzw. Maximumfilter genannt.

Medianfilter-alternative-630px


Alle drei Rangordnungsfilter haben in Photoshop andere Namen als in der Literatur verwendet werden:
Dunkle Bereiche vergrößern = Erosion = Maximum = Erode
Helle Bereiche vergrößern = Dilatation = Minimum = Dilate
Helligkeit interpolieren = Median

Weiterführendes
Auch wenn diese Grundlagen für die Anwendung der Filter nicht zwingend notwendig sind, so helfen sie doch bessere Entscheidungen bei der Filterwahl bzw. der Wahl der dazugehörigen Parameter zu treffen. Darüber hinaus sind sie für einen speziellen Filter dann doch von großer Bedeutung: dem Filter »Eigener Filter«. Mit diesem können nämlich lineare Filter erstellt werden. Wie das funktioniert, erfährst du im kommenden Artikel.

Comments

Photoshop Tipps, Tricks und Geekfacts #4

1. Die Pipette, das Machtzentrum von Photoshop?


aufnahmebereich

Der Aufnahmebereich des Pipetten-Werkzeug beeinflusst nicht nur die Messwerte der Pipette selbst, sondern auch wie Farben mit den folgenden Werkzeugen ausgewählt werden:

  • Zauberstab
  • Auswahl Farbbereich
  • Auswahl vergrößern/Ähnliches auswählen
  • Weißpunkt, Mitteltöne und Schwarzpunkt setzen in den Gradationskurven und Tonwertkorrektur
  • Farbe-ersetzen-Pipetten
  • Belichtung
  • Alle anderen Werkzeuge, die eine Pipette zur Verfügung stellen
Man sollte das immer im Hinterkopf behalten. Denn meist macht es Sinn, für die Bildbearbeitung den Aufnahmebereich auf mind. 3 x 3 Durchschnitt zu stellen. Unter Umständen kann das aber zu fehlerhaften Verhalten bei den oben genannten Werkzeugen führen. Daher immer vorher die Einstellungen der Pipette checken.

2. Plug-In-Filter?
Aufmerksame Benutzer werden vielleicht schon festgestellt haben, dass einige Filter beim Parametrieren nicht direkt auf das Dokument angewandt werden. Blendenflecke oder auch der Radiale Weichzeichner sind solche Filter. Die Vorschau begrenzt sich dann auf dieses kleine Fenster direkt im Filterdialog. Dieses Verhalten betrifft alle sogenannten Plug-In-Filter. Welche das sind, kann über Hilfe > Systeminformationen > Erforderliche Zusatzmodule eingesehen werden.

systeminfos-filter

3. Steintextur
Der Wolken- und der Relieffilter ergeben nacheinander angewandt eine Steintextur. Zu finden sind die Filter unter Renderfilter bzw. Stilisierungsfilter.


4. Photoshop-Einstellungen zurücksetzen
Jeder langjährige Photoshop-Benutzer hat sicherlich schon einmal aufgrund eines Fehlers den Tipp bekommen, die Einstellungen zurückzusetzen. Zur Erinnerung: Dazu muss man lediglich während dem Starten von Photoshop folgendes Tastaturkürzel drücken:

Cmd+Alt+Shift = Setzt die Voreinstellungen zurück.

Darüber hinaus können zur Fehlerbehebung auch noch diese zwei Kürzel hilfreich sein:

Cmd+Shift = Damit ist es möglich einen anderen Ordner für Plug-Ins zu wählen.
Cmd+Alt = Mit diesem Kürzel kann man das Arbeitsvolume neu festlegen.
(Das ist beispielsweise dann sinnvoll, wenn Photoshop nicht starten kann, weil zu wenig Platz auf dem derzeitigen Arbeitsvolume vorhanden ist.)

reset-prefs


Kein Angst beim Anwenden dieser Tastenkombinationen: Bei allen erscheint vor dem tatsächlichen Zurücksetzen noch ein Dialogfenster zum Bestätigen.

5. Interpolationsverfahren beim Frei transformieren?
Beim Ändern der Bildgröße fragt Photoshop nach dem Interpolationsverfahren. Doch welcher Algorithmus wird beim Frei-Transformieren-Werkzeug benutzt? Jener, der in den Voreinstellungen unter Allgemein definiert ist:

voreinstellung-interpolation

Comments

Illustrator Tipps, Tricks und Geekfacts #1

illustrator-80px

1. Farbfelder ersetzen

InDesign bietet die praktische Funktion »Farbfelder ersetzen«. In Illustrator ist diese Funktion nicht ganz so intuitiv aber ebenso möglich: Man markiert das gewünschte Farbfeld, danach das zu ersetzende Farbfeld und wählt anschließend über das Bedienfeldmenü »Farbfelder zusammenfügen«. Wichtig ist dabei nur die Reihenfolge: Zuerst die neue, dann die alte Farbe markieren. Dieser Trick funktioniert sowohl mit Buchfarben (Pantone, HKS etc.) als auch mit globalen Prozessfarben.

2. Illustrator-Voreinstellungen editieren

Voreinstellungen lassen sich nicht nur im dafür vorgesehenen Voreinstellungsmenü konfigurieren. In der »Adobe Illustrator Prefs«-Datei lassen sich weitaus mehr Einstellungen vornehmen. Editieren kann man die Datei beispielsweise mit TextWrangler. Zu finden ist sie unter Benutzer > Library > Preferences > Adobe Illustrator Settings > de_DE > Adobe Illustrator Prefs

Prefs

Sinnvoll ist das Editieren der Voreinstellungsdatei dann, wenn man Einstellungen über die Benutzeroberfläche nicht editieren kann. Zur Sicherheit lohnt es sich aber, vor dem manuellen Eingriff eine Sicherheitskopie der Datei anzulegen.Weiterlesen ...
Comments