2008-12-29 14 views
7

Chcę wstawić wiele niewidocznych znaków wodnych do moich zdjęć JPEG za pomocą kodu C#. Oznacza to, że potrzebuję biblioteki .NET, która to działa, a nie jakiejś zewnętrznej aplikacji wsadowej.Dodawanie znaku wodnego niewidocznego obrazu w języku C#?

Wszelkie sugestie?

+0

Masz na myśli "niewidzialny" lub "przezroczysty"? – kgiannakakis

+1

Istnieją widoczne i niewidoczne znaki wodne: http://www.riecks.com/security/ – splattne

+0

Napisałem "niewidzialny", a nie "przezroczysty" ... –

Odpowiedz

4

znajduje się port biblioteki ImageMagick do C#, i można go łatwo wykonać tej operacji dla Ciebie ...

5

Przechowywanie „niewidzialne” dane na zdjęciach jest znany jako „steganografii”. Wyszukiwanie Google dla "steganography .net" daje this article jako najlepsze trafienie - może okazać się przydatne.

1

Ten artykuł na devx.com zawiera bibliotekę (Stego) z kodem źródłowym można użyć:

Keeping Secrets Secret: Steganography with .NET

Po wdrożeniu tego interfejsu, to trywialne, aby ukryć komunikat wewnątrz . BMP:

ICoverFile cover = new BMPCoverFile("cover.bmp"); 
    cover.CreateStegoFile("stego.bmp","Hello","MyPwd"); 

Podobnie można wyodrębnić wiadomości tak łatwo:

IStegoFile stego = new 
     BMPStegoFile("stego.bmp","MyPwd"); 
    Console.WriteLine(stego.HiddenMessage); 

UPDATE: Oh, przepraszam. Matt związany z tym samym artykułem ... nie widział tego podczas pisania tej odpowiedzi.

2

Jaki jest tego cel? Czy to umożliwia identyfikowanie plików JPG, które zostały pobrane z Twojej witryny?

odpowiedzi w komentarzach: „Tak, chcę chronić swoje zdjęcia za pomocą jakiegoś solidnego i niewidoczny znak wodny widoczny Semi-site logo nie jest rozwiązaniem ...”

Problemem jest właśnie ten opisany w dyskusji na temat Steganografii powyżej, związany z solidnością obrazu.

Każdy znak wodny, taki jak ten, który opisujesz, może być użyty do identyfikacji bezpośredniej kopii całego obrazu, ale z jpg wydaje mi się, że jeśli jest otwarty i ponownie zapisany w edytorze, istnieje szansa na zmiana kompresji wpływająca na znak wodny. Także, jeśli ktoś miałby ukraść twój wizerunek i zrobić coś więcej z nim - tinkerem z balansem kolorów, przyciąć go trochę i tak dalej, wydaje się mało prawdopodobne, aby jakikolwiek niewidoczny znak wodny był wystarczająco wytrzymały, aby przetrwać i pozostać rozpoznawalnym.

Niestety nie mam tutaj rozwiązania, ale sam problem nie jest banalny. Warto poszukać innych podejść do niego, które być może wykorzystasz równolegle ze znakami wodnymi (może być to spowodowane niestandardowymi metadanymi, które mogą być łatwo zapisane?), Aby utrudnić kradzież zdjęć lub uczynić je mniej wartościowymi, jeśli są ...

+0

Tak, chcę chronić moje zdjęcia za pomocą mocnego i niewidocznego znaku wodnego . Semi-widoczne logo strony nie jest opcją ... –

+0

to powinien być komentarz, a nie odpowiedź! – balexandre

+0

Istnieje kilka niewidocznych rozwiązań znaków wodnych dla formatu JPEG. Większość z nich modyfikuje dyskretne wartości transformacji kosinusowej. Ponieważ nie mam czasu samemu go zaprogramować, potrzebuję działającego rozwiązania po wyjęciu z pudełka. Tak więc, szukam sugestii, takiej jak wspomniana biblioteka MagickNet ... –

1

Jeśli jest to ważna aplikacja, nad którą pracujesz, dlaczego nie wypróbować usługi płatnej?

Digimarc i Signumtech może zapewnić tego rodzaju wsparcie przy użyciu ich SDK.

+0

Tak, rozwiązaniem płatnym jest również opcja. Potrzebuję tylko dobrze wykonanej i dobrze przetestowanej biblioteki. –

Powiązane problemy