Einbetten eines Bildes in ein Bild, sodass es beim Ändern der Größe unsichtbar wird

7

Ich versuche, etwas wie Steganographie zu machen - das heißt, ich möchte ein Bild in ein Bild einbetten, damit das eingebettete Bild verschwindet und eine einfache Farbe erhält, wenn es auf 50% verkleinert wird.

Das ist mein Versuch .

Hierbei werden in Photoshop Modi verwendet Linear Dodge (Add)und Subtractgemischt, wobei die jeweiligen Ebenen für alternierende Pixelspalten maskiert werden.

Wenn es mit bilinearem oder bikubischem Resampling auf 50% reduziert wird, möchte ich, dass es nur eine einfache Farbe wird. Stattdessen wird es so:

Geben Sie hier die Bildbeschreibung ein

Warum? Die resultierenden Farben des Addierens und Subtrahierens werden nicht auf 0 oder 255 begrenzt. Wie wir jedoch sehen können, verlieren hellere Teile des Bildes ihre Rot-Sättigung.

Wie kann ich die Bilder - idealerweise mit Photoshop - bearbeiten, um das gewünschte Ergebnis zu erzielen?

Meine PSD ist hier und das Bild, das ich verwendet habe, ist hier .

Bearbeiten:

Dies ist mein zweiter Versuch:

Und genau das gleiche Bild, dessen Größe von Ihrem Browser geändert wurde:

Zumindest bei mir ist das Averschwunden. Das ist es, was ich möchte, und ich möchte, dass Photoshop die Pixelfarben berechnet, anstatt dass ich es manuell tun muss.

Max
quelle
Scott hat eine gute Antwort, aber einen kurzen Kommentar: Es scheint, dass Sie davon ausgehen, dass durch eine Größenänderung um 50% jedes zweite Pixel entfernt wird, aber so funktioniert die Größenänderung nicht mit Interpolation. Es verwendet verschiedene Formeln, um jedes Pixel basierend auf seinen benachbarten Pixeln neu zu berechnen.
DA01
@ DA01 Danke für die Antwort. Ich denke, Sie haben den gleichen Fehler gemacht, den Scott gemacht hat - vergrößern Sie meinen Versuch und Sie werden sehen, dass er aus helleren und dunkleren Pixelspalten besteht. Die Theorie, die richtig ist, ist, dass bilineares und bikubisches Resampling die Pixel in der dunklen und der hellen Spalte mitteln, um eine reine rote Spalte zu erhalten. Dies kann gesehen werden, indem die Größe dieses Bildes durch bilineares oder bikubisches Resampling um 50% geändert wird.
Max
ah, das ist ein bisschen anders. Trotzdem kann ich das Beispielbild 'A' in der Software, die ich zur Hand habe (Chrome und Pixelmator), nicht zu 50% verschwinden lassen. Ich habe die Vermutung, dass dies zum Funktionieren ein Verständnis des sehr spezifischen Resampling-Algorithmus erfordert, den die jeweilige Software verwendet ... was nicht unbedingt mit dem übereinstimmt, den andere Software möglicherweise verwendet.
DA01
Wollen Sie die Signaltheorie dazu wirklich verstehen? Ich meine, ein guter Downsampling-Filter könnte das Bild gemäß dem Nyquist Shannon-Sampling-Theorem intakt halten . Der Satz sagt voraus, dass ein Filter Ihren Demobuchstaben bis zu etwa 1/10 der Größe sehen kann. Die Streifen im Inneren werden zu Geräuschen oder verschmelzen hart. Das Problem hierbei ist, dass es mehrere Downsampling-Filter gibt, die Ihren Zweck wahrscheinlich zunichte machen können. Scheint, dass es Ihnen sonst gut geht, außer Sie berücksichtigen nicht, dass Photoshop gammabewusst ist.
Joojaa
Oh und übrigens. Mein Browser sieht das gesamte A im skalierten Bild. Auf jeden Fall gibt es viele Möglichkeiten zum Downsampling und Handarbeit würde nur gegen einen solchen Filter funktionieren. Sie würden also immer noch verlieren, wenn sie eine andere Downsampling-Methode als Sie verwenden.
Joojaa

Antworten:

9

Ich denke nicht, dass das, was Sie versuchen, aufgrund der Interpolation möglich ist. Es hängt jedoch etwas von der beabsichtigten Verwendung des Bildes ab und warum Sie dies tun möchten.

Fast alle Rasteranwendungen versuchen, beim Ändern der Größe kontrastierende Pixel beizubehalten, einige besser als andere. Aber ich habe noch nie ein Rasterbild gesehen, bei dem einfach ein Abschnitt entfernt wurde, der mehr als 3 oder 4 Pixel des gesamten Bildes abdeckt. Selbst dann behalten Apps in der Regel 1 Pixel bei, wenn der Kontrast hoch genug ist.

Beachten Sie, dass Pixel im Allgemeinen quadratische und keine vertikalen Linien sind. Ihre Maskierung ähnelt der eines Lentikulars - Sie kennen die 3D-Drucke, bei denen es so aussieht wie Foto A und so wie Foto B. Der Grund für diese Arbeit liegt in der vertikalen Prismenabdeckung und einem sehr präzisen Satz Bildscheiben darunter.

Aus diesem Grund denke ich, dass es unmöglich ist, Pixel zu verwenden. Die einzig mögliche Methode kann darin bestehen , jedes Bildpixel mit 6 einfarbigen Pixeln zu umgeben, in der Hoffnung, dass die Interpolation das Bildpixel bei der Reduktion als unnötig erachtet und entfernt. Dies ist jedoch unwahrscheinlich, da die meisten Apps von Natur aus so codiert sind, dass sie versuchen , kontrastierende Pixel beizubehalten .

Erkennen Sie, dass Ihre Mischmodi das Bild nach dem Speichern in keiner Weise wirklich beeinflussen. Sie funktionieren nur in Photoshop, um das Erscheinungsbild zu ändern. Sie können den gleichen Tonwert auf viel einfachere Weise erzielen, z. B. indem Sie lediglich die Deckkraft eines weißen Pixels verringern.

Dieses Bild ist durchgehend rot mit einigen 30% weißen Pixeln in der Mitte. Die weißen Pixel sind so beabstandet, dass jeweils 6 rote Pixel um sie herum möglich sind. Dies entspricht 2 roten Pixeln zwischen jedem weißen Pixel.

Pixel

Sie sind deutlich sichtbar.

Bei einer Reduzierung um 50%:

die Ermäßigung

Sie können sehen, dass sie noch sichtbar sind.

Wenn Sie die ursprünglichen weißen Pixel auf eine Deckkraft von 20% reduzieren, sind sie vor dem Reduzieren nur schwer zu erkennen.

20 Prozent

Und nach der Reduktion:

20 Reduktion

Sie sind fast gleich sichtbar.

Wenn Sie die Anzahl der weißen Pixel erhöhen (immer noch bei 20% Deckkraft):

größer

Das Original wird leichter zu sehen und nach dem Reduzieren ist es immer noch da.

20 rot

Offensichtlich lässt nichts davon die Pixel verschwinden. Es würde also einige Versuche und Irrtümer erfordern, um den Abstand und die Deckkraft einer Gruppe kontrastierender Pixel zu ermitteln, bevor sie durch Interpolation verschwinden. Das wäre der Sweet Spot.

Im Bild unten sind die weißen Pixel auf 30% Deckkraft eingestellt. Jedes weiße Pixel ist 8 Pixel von jedem anderen weißen Pixel entfernt.

8 Pixel

Bei einer Reduzierung um 50%:

8 Reduktion

Man muss wirklich genau hinschauen, um die weißen Pixel zu sehen (aber sie sind immer noch nicht verschwunden). Dies kann je nach Größe des Bildes funktionieren. Aber je weiter die kontrastierenden Pixel voneinander entfernt sind, desto besser ist das Ergebnis.

Wenn Sie das größere Bild oben aufnehmen, dieses Bild in einem Browser öffnen und das Bild mithilfe des Browsers verkleinern, verschwinden die weißen Pixel effektiv. Wenn Sie also nach einer Lösung für einen Browser suchen, funktioniert dies möglicherweise tatsächlich. Wenn Sie das größere Bild auf einer HTML-Seite in der Originalgröße von 500 x 500 Pixel platzieren und dann die Bildgröße mithilfe von HTML auf 250 x 250 Pixel einstellen, werden auch die weißen Pixel entfernt. Eine Demo dazu finden Sie hier

Testen wir also mit dem Porträt. Ich habe ein Pixelraster mit einem Abstand von 8 Pixel erstellt und damit das Gesicht über dem roten Hintergrund maskiert:

Gesicht

Pixel sind so weit voneinander entfernt, dass die Nachricht des Bildes verloren geht.

Wenn Sie über Photoshop auf 50% reduzieren, wird nichts anderes getan, als alles kleiner zu machen:

Gesicht @ 50%

Wenn Sie das Bild in voller Größe in ein Browserfenster ablegen und den Browser über Befehl / Strg-Minus auf 50% verkleinern, wird das Gesicht etwas mehr verdeckt. Es ist jedoch noch etwas klar da. (Dies ist ein Screenshot des Browserfensters)

Screenshot @ 50%

Wenn Sie einen weiteren Schritt in einem Browserfenster auf 33% reduzieren, werden die weißen Pixel zum größten Teil ausgeblendet. Wenn Sie das Bild genau untersuchen, können Sie immer noch einige weiße Pixel erkennen, aber es ist unwahrscheinlich, dass die meisten Betrachter danach suchen. (Dies ist auch ein Screenshot des Browserfensters):

Screenshot @ 33%

Also ..... das Problem wird, wie weit auseinander können Sie Pixel machen und trotzdem ein Bild vermitteln? Und wie viel Zeit möchten Sie für die Trennung einzelner Pixel aufwenden, um dieses Bild zu erstellen?

Scott
quelle
Vielen Dank für Ihre sehr detaillierte Antwort Scott. Es gibt jedoch einen Teil meines Versuchs, den Sie möglicherweise übersehen. Ich kombiniere Spalten mit Pixeln, die abwechselnd heller und dunkler als die rote Farbe sind. Ich versuche also nicht, Pixel verschwinden zu lassen - ich versuche, Pixel auf die rote Farbe zu mitteln. Dies ist natürlich theoretisch mit Resampling des nächsten Nachbarn perfekt möglich, und ich glaube, dass es mit bilinearem / bikubischem Resampling nahezu perfekt möglich ist.
Max
Die Frage ist: Wie kann Photoshop die helleren und dunkleren Spalten erzeugen, sodass bei einer Mittelung der Pixel eine konstante rote Farbe entsteht?
Max
Eigentlich Alec, das klingt für mich genau so, als würden Sie versuchen, Pixel verschwinden zu lassen. "Durchschnitt bis zur Volltonfarbe" ist nur eine andere Art, "verschwinden" zu sagen. Und alles, was ich gepostet habe, ist auch nach Ihrem Kommentar korrekt. Die Apps sind von Natur aus zu entworfen behalten kontras Pixel. Der nächste Nachbar wird mehr tun, um den Kontrast beizubehalten, als ihn im Durchschnitt zu glätten. Es wird einfach nicht passieren. Ich würde mich gerne als falsch erweisen.
Scott
Und ... "das eingebettete Bild verschwindet und es wird eine einfache Farbe." Vielleicht möchten Sie die Frage noch einmal überprüfen, wenn Sie das nicht gemeint haben. :)
Scott
"Es wird einfach nicht passieren." Siehe dieses Bild . Wenn Sie die Größe mit bilinearem Resampling auf 50% ändern, erhalten Sie ein perfekt rotes Quadrat. Wenn Sie bikubisch verwenden, erhalten Sie ein rotes Quadrat mit leichten Schatten an den Rändern des 'A'. Dies ist genau das Ergebnis, das ich möchte, aber ich möchte es in Photoshop tun können, ohne die Farbe jedes Pixels manuell berechnen zu müssen.
Max