Mein Problem ist so allgemein, und es gibt versionsabhängige Plug-Ins für das Problem, das mit meiner Version nicht funktioniert. Ich habe auch Problemumgehungen gefunden , die nicht die richtigen Lösungen sind.
Ich würde das Weiß meines Bildes in Transparenz umwandeln, dh Grau in Schwarz und Transparent zerlegen. Es wäre richtig, wenn ich den Sättigungswert des Pixels aus der HSB- (Zerlegungs-)Zusammensetzung verwenden könnte, die Sättigung jedes Pixels auf 100 % von seinem ursprünglichen s(x,y)-Wert setzen und 100 % - s(x, y) Transparenz zum Pixel.
Wie die erwähnte und viele andere Problemumgehungen nahelegen, ist die Verwendung des Bildes selbst als Alphakanal keine Lösung. Wenn das Pixel beispielsweise zu 20 % weiß und zu 80 % grau ist und Sie eine Transparenz von 20 % anwenden, sieht das Pixel aus wie 80 % - 0,8 * 0,2 = 56 % schwarz statt 80 %.
Eine andere Stackexchange-Frage zum Umwandeln von Weiß in Transparent ähnelt meinem Problem, aber wie ich verstehe, deckt sie mein Problem nicht ab. Falls ich falsch liege, würde ich mich freuen, wenn mich jemand aufklärt, wie ich das auf mein Szenario anwenden kann.
Ich weiß, dass Sie gefragt haben, wie man das in Photoshop macht, aber dies ist vielleicht einer der wenigen Fälle (jetzt, wo Photoshop auch eine inhaltsbewusste Füllung hat), in denen GIMP die Arbeit besser macht. Also mein Lösungsvorschlag wäre:
Laden Sie GIMP herunter und installieren Sie es. (Scrollen Sie nach unten zum Windows-Installationsprogramm.)
Öffnen Sie Ihr Bild in GIMP.
Verwenden Sie das Werkzeug Farbe zu Alpha , um Weiß in transparent umzuwandeln ( maskieren und optimieren Sie nach Bedarf, wenn Sie etwas nicht transparentes Weiß im Ergebnis behalten möchten).
Speichern Sie das resultierende Bild und öffnen Sie es erneut in Photoshop.
Hinweis: GIMP kann Photoshop-.psd-Dateien importieren und exportieren, aber einige Informationen können während der Hin- und Her-Konvertierung verloren gehen. Es kann sicherer sein, Ihre PSD-Dateien nur in Photoshop zu bearbeiten und stattdessen das PNG-Format zum Übertragen von Bildern zwischen Photoshop und GIMP zu verwenden.
Sie können Grau nicht in Schwarz ändern und das Weiß in einer Methode transparent machen. Die einzige Möglichkeit, dies ohne Maskierung zu tun, besteht darin, die Ebenen auf Ihrem gesamten Bild zu ändern. Wenn Sie also zum Beispiel etwas Farbiges im Bild haben, müssen Sie das maskieren.
(Duplizieren Sie zuerst Ihre Bildebene und blenden Sie sie zur Sicherung aus.) Erstellen Sie auf Ihrer Ebene eine Ebenenmaske. Wählen Sie Ihr gesamtes Bild aus und kopieren Sie es mit Strg + Umschalt + C. Klicken Sie bei gedrückter Alt-Taste auf das Ebenenmaskensymbol im Ebenenbedienfeld, um es zu aktivieren. ctrl+shift+v dort einfügen. Deaktivieren und Strg + i, um die Farben zu invertieren. Alle weißen Bereiche sollten jetzt schwarz sein, was bedeutet, dass sie zu 100% ausgeblendet sind.
Erstellen Sie nun eine Schwellenanpassungsebene. Dadurch sollte die darunter liegende Ebene (Ihre Bildebene) rein schwarzweiß werden. Passen Sie die Balance nach Bedarf an und fügen Sie dem Schwellenwert eine Ebenenmaske hinzu, wenn Sie farbige Bereiche haben, die Sie nicht von Grau in Schwarz konvertieren möchten. Wählen Sie alle Strg + Umschalt + C-Kopie und fügen Sie sie in Ihre ursprüngliche Bildebene ein.
Das Ergebnis sollte eine Schwarz-Weiß-Version Ihres Bildes sein, wobei die ursprünglichen Schwarz-Weiß-Werte (ohne Schwellenwert) die Transparenzebene steuern. Ihre 20 % Grautöne erscheinen jetzt als 20 % Schwarztöne.
Nur aus Neugier habe ich mir ein Proof-of-Concept-Skript für PS ausgedacht, um das zu tun, was Sie vorgeschlagen haben, aber leider ist es extrem langsam . Wenn Sie es testen möchten, erstellen Sie ein neues Dokument mit einem Quadrat von etwa 25 Pixeln, nennen Sie die Basisebene "Basis" und fügen Sie dann zwei leere Ebenen mit den Namen "Alpha" und "HSB" hinzu. Die Alpha-Ebene wird mit Pixeln gefüllt, die einen Grauwert (in RGB) basierend auf dem S-Wert haben, und die HSB-Ebene wird mit Pixeln gefüllt, deren S-Wert auf 100 geändert wurde. Die Alpha-Ebene kann als Ebenenmaske für verwendet werden die HSB-Ebene (alle auswählen, Ebenenmaske zur HSB-Ebene hinzufügen, zu Kanälen wechseln und die kopierte Alpha-Ebene in den HSB-Maskenkanal einfügen).
Wenn Sie alle Paletten ausblenden, scheint es etwas schneller zu laufen, aber ein echtes Bild ist "Kaffee holen und vielleicht ein bisschen einkaufen" langsam. Mach langsam ein Nickerchen.
var currDoc = app.activeDocument;
var sampler = currDoc.colorSamplers.add([0,0]);
for (var x = 0; x < currDoc.width; ++x) {
for (var y = 0; y < currDoc.height; ++y) {
currDoc.activeLayer = currDoc.artLayers.getByName("base");
sampler.move([x,y]);
var result = selectPixel(x,y, currDoc);
result = setPixelColorHSB(sampler.color, currDoc);
result = setPixelColorALPHA(sampler.color, currDoc);
}
}
sampler = null;
currDoc.selection.deselect;
function setPixelColorHSB(pixelColor, currDoc) {
currDoc.activeLayer = currDoc.artLayers.getByName("HSB");
currDoc.activeLayer.visible = true;
var color = new SolidColor();
color.hsb.hue = pixelColor.hsb.hue;
color.hsb.saturation = 100;
color.hsb.brightness=pixelColor.hsb.brightness;
currDoc.selection.fill(color);
currDoc.activeLayer.visible = false;
return true;
}
function setPixelColorALPHA(pixelColor, currDoc) {
currDoc.activeLayer = currDoc.artLayers.getByName("ALPHA");
currDoc.activeLayer.visible = true;
var color = new SolidColor();
color.rgb.red = Math.floor((pixelColor.hsb.saturation/100) * 255);
color.rgb.green = color.rgb.red;
color.rgb.blue = color.rgb.red;
currDoc.selection.fill(color);
currDoc.activeLayer.visible = false;
return true;
}
function selectPixel (pixX, pixY, currDoc) {
currDoc.selection.deselect;
var selRegion = null;
selRegion = [
[pixX, pixY],
[pixX + 1, pixY],
[pixX + 1, pixY + 1],
[pixX, pixY + 1],
[pixX, pixY]
];
currDoc.selection.select(selRegion);
return true;
}
Ich habe einen Weg gefunden, der meinen Anforderungen entspricht. Ich teile es mit Ihnen, damit Sie es kritisieren können. Ich bin auf der Suche nach weiteren Verbesserungen, also zögern Sie nicht, Ihre Notizen oder Antworten hinzuzufügen!
Leider ist diese Lösung wegen der Verwendung des cmyk-Kanals nicht allgemeingültig. Aber mit diesem Verfahren können Sie dies erreichen
von diesem: (laden Sie die Bilder herunter und sehen Sie sich die Transparenz an, wenn Sie keine Unterschiede sehen)
John
DanielTuzes
Stan
Stan