Ankündigung

Einklappen
Keine Ankündigung bisher.

Digitale Wasserzeichen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Digitale Wasserzeichen

    Hi Leute,

    Ich schreibe dieses Mal bewusst in dieser Kategorie, da ich etwas komplexeres vor habe, was ganz sicher nicht in die Anfänger-Kategorie gehört...

    Mit meinem Upload-Script ist es mir ja schon gelungen, Bilder beim hochladen automatisch zu verkleinern, komprimieren und ein sichtbaren Wasserzeichen einzufügen.

    Jetzt möchte ich aber noch einen drauf legen:
    Beim hochladen soll das Bild automatisch unsichtbar signiert werden, bzw eine Signatur ausgelesen werden...
    Ich weiß, dass man in irgendwelchen ungenutzten Datenblöcken diese Informationen verstecken kann.

    Hat irgendjemand eine Ahnung, wie man eine Datei (nicht nur Bilder) mit einem digitalen Wasserzeichen versehen kann, sodass es auch beim bearbeiten des Bildes (z.B. verkleinern oder bearbeiten mit Paint) bestehen bleibt?

    MfG. DjScaleo


    Edit: Vielleicht sollte ich noch dazu dagen: Es kann ruhig aus der Datei auslesbar sein, damit auch jedes Programm sehen kann ,das das Bild von mir ist, aber es sollte nicht (leicht) entfernt werden können.

  • #2
    Du kannst die EXIF-Daten dazu mißbrauchen, allerdings nur bei JPEG. Beim Verkleinern/Bearbeiten kannst du die EXIF-Daten dann erneut setzen.

    Kommentar


    • #3
      Das funktioniert, indem man der Datei Daten so hinzufügt, dass diese beim Bearbeiten des Bildes erhalten bleiben, beim Anschauen aber nicht auffallen. Zugleich muss man das Zeichen mit geeigneten Methoden wieder auslesen.
      Das ist, sollte man es mit PHP machen können was ich bezweifle, allenfalls ein Schreibbefehl. Ansonsten Google mal, wie man das mit Photoshop hinkriegt.

      Kommentar


      • #4
        Ich denke mal das schreiben ist nicht das Problem. Wenn man den Platz dafür in der Datei findet, dann muss man die Daten ja nur einfügen.

        Das Problem ist aber, dass man z.B. das Bild ja einfach neu einscannen könnte.

        Ich hatte grade noch eine Idee:
        Wenn man von bestimmten Positionen des Bildes die Farbwerte notiert, so könnte man, wenn man das Bild identifizieren will, einfach schauen, welcher Datensatz genau diese Farbwerte an den Punkten hat. Scannt man das Bild aber ein oder verkleinert man es, so geht dies schon einmal schief...

        Vllt. könnte man ja eine kombination machen:
        Unten recht ein kleines sichtbares Wasserzeichen + Farbwerte + versteckte Daten.

        Versteckte Daten gehen aber auch beim einscannen verloren, genau so wie sich beim drucken die Farbwerte ändern könnten.

        Kommentar


        • #5
          Moment, du willst das Digitale Wasserzeichen beim Scannen erhalten? Das ist nicht möglich, dazu sind die normalen Scanner viel zu ungenau. Du musst dann schon ein sichtbares Wasserzeichen nehmen.

          Kommentar


          • #6
            Hi, ich habe mal interesshalber gegoogelt und bin dabei auf Stenografie und dieses PHP-Beispiel gestoßen: http://derjulian.net/pages/steganografie
            Vielleicht hilft es dir ja. Gegen Skalieren und Scannen aber bestimmt auch wirkungslos.

            Kommentar


            • #7
              Das ist echt eine gute Idee^^

              Ich verkleinere die Bilder ja sowieso vorher, dann dürfte das auch kein Problem werden...
              Und mit JPEG und GIF müsste ich das auch hin kriegen...

              Du musst dann schon ein sichtbares Wasserzeichen nehmen
              Das werd ich zusätzlich auch machen...

              DjScaleo

              Kommentar


              • #8
                Ein Scanner wird dir die genauen Farbinformationen nicht reproduzierbar liefern können.

                Kommentar


                • #9
                  Wenn Du einen deratrig hohen Kopierschutzanspruch an die Bilder hast, dass versehe Sie großflächig mit Text an den inhaltstragenden Stellen oder stelle sie halt nichjt online. Deine Schutzpläne auf x Ebenen sind albern.

                  Kommentar


                  • #10
                    Zitat von Chriz Beitrag anzeigen
                    Moment, du willst das Digitale Wasserzeichen beim Scannen erhalten? Das ist nicht möglich, dazu sind die normalen Scanner viel zu ungenau. Du musst dann schon ein sichtbares Wasserzeichen nehmen.
                    Nein, es gibt Verfahren bei denen selbst Scannen dem Wasserzeichen nichts anhaben kann! Der Trick ist hierbei die Informationen in Teilen eines Bildes zu hinterlegen, welche selbst beim Scannen, Weichzeichnen, etc. gleich bleiben!

                    Ein Beispiel hierfür wäre "Secure Spread Spectrum Watermarking for Multimedia.", wobei ich nicht weiß ob sich das in PHP implementieren ließe! Eine DCT und eine DCT⁻¹ in PHP bei den nicht unbedingt schnellsten Grafikfunktionen... Einen Einblick ist das Paper aber auf jeden Fall wert...

                    Kommentar


                    • #11
                      Kannst du die Funktionsweise zusammenfassen, ich möcht mir kein ellenlanges Dokument durchlesen.

                      Kommentar


                      • #12
                        Man transformiert das zweidimensionale Signal des Bildes in den Frequenzbereich, verändert das Spektrum des Signals und transformiert das Signal anschließend wieder zurück. Selbst ein verändertes Bild hat immernoch das gleiche (ähnliche) Spektrum, sodass sich mit dem originalen Bild das Wasserzeichen nachweisen lässt.

                        Kommentar


                        • #13
                          Ein Frequenzbereich woraus? Farbtönen? Die werden wie jeder schon merkt doch beim Scannen total verfälscht. Naja bin kein Experte, ich halt mich da dann besser mal raus.

                          Kommentar


                          • #14
                            Zitat von hts Beitrag anzeigen
                            Hi, ich habe mal interesshalber gegoogelt und bin dabei auf Stenografie und dieses PHP-Beispiel gestoßen: http://derjulian.net/pages/steganografie
                            Vielleicht hilft es dir ja. Gegen Skalieren und Scannen aber bestimmt auch wirkungslos.
                            Fällt mir grade auch auf: Beim Skalieren gehen ja einige Pixel verloren.Vllt. kann man das ja wie bei 3D-Barcodes machen: Da sind Teile der Informationen mehrmals an verschiedenen Stellen des Bildes versteckt, damit, wenn z.B. ein Teil des codes unleserlich ist, die Informationen trotzdem vollständig ausgelesen werden können.

                            Kann man denn nicht noch irgendwie was im Header verstecken? Oder wird der z.B. beim bearbeiten mit Paint überschrieben?

                            Kommentar


                            • #15
                              Zitat von Chriz Beitrag anzeigen
                              Ein Frequenzbereich woraus? Farbtönen? Die werden wie jeder schon merkt doch beim Scannen total verfälscht. Naja bin kein Experte, ich halt mich da dann besser mal raus.
                              Der Frequenzbereich aus den 32-bit Farbtönen wäre nicht sinnvoll, weil hierbei kleine Änderungen in den Farbanteilen (Rot, Blau, Grün) eine große Änderung im 32-bit Farbwert zur Folge hat. Hingegen könnte man jeden einzelnen Farbanteil transformieren oder sogar wie bei der JPEG Kompression die Komponenten des YCbCr-Farbraums.
                              Ich bin auch kein Fachman auf dem Gebiet was die genaue Implementierung angeht und ob man Teile eines Bildes oder das gesamte Bild transformiert, aber vom Grundgedanken her bilden sich einfarbige Flächen auf einen niedrigen Frequenzbereich und detailreiche Flächen mit großen Farbunterschieden auf einen hohen Frequenzbereich ab. Diese Strukturen sind bei einem Bild auch nach verschiedenen Manipulationen immer gleich/ähnlich...

                              Steganographie ist nur geeignet, wenn Bilder nicht manipuliert werden, weil eine Skalierung in beide Richtungen das Bild komprimiert und zudem die Pixel "verschwinnem", sodass die Informationen verloren gehen...

                              Kommentar

                              Lädt...
                              X