Pergunta

Eu quero inserir várias marcas d'água invisíveis em minhas fotos JPEG através de código C #. Isso significa que eu preciso de uma biblioteca .NET que faz este trabalho e não algum aplicativo em lote externo.

Todas as sugestões?

Foi útil?

Solução

existe um porto de biblioteca de imagens magia para c #, e pode facilmente realizar essa operação para você ...

Outras dicas

O armazenamento de dados "invisíveis" nas imagens é conhecido como "esteganografia". A Google-pesquisa "esteganografia .net" yields este artigo como seu top hit -. pode ser útil

Qual é o objetivo disso? É para que você possa identificar JPGs que foram tomadas a partir do seu site?

Response nos comentários: "Sim, eu quero proteger as minhas fotos usando alguma marca d'água robusto e invisível Semi-visível logotipo do site não é uma opção ..."

O problema é precisamente o descrito na discussão de esteganografia acima, a ver com a robustez da imagem.

Qualquer marca d'água como a que você descreve pode ser usado para identificar uma cópia direta de toda a imagem, mas com um jpg parece-me que, se for mesmo aberto e salvo novamente em um editor há uma chance de uma mudança em compressão afetando a marca d'água. Além disso, se alguém estava a roubar a sua imagem e fazer algo mais extensa com Tinker ele- com o equilíbrio de cores, cortá-la um pouco e assim por diante, parece improvável que qualquer marca d'água invisível seria suficiente robusto para sobreviver e estadia recogniseable.

Infelizmente eu não tenho uma solução aqui, mas o problema em si está longe de ser trivial. Pode valer a pena olhar para outras abordagens para isso, que você talvez possa utilizar em paralelo com marca d'água (metadados personalizados talvez? Prevenir imagens serem facilmente salvos?) Para tornar mais difícil para suas imagens para ser roubado ou para torná-los menos valioso se são ...

Este artigo em devx.com contém uma biblioteca (Stego) com o código fonte você poderia usar:

Mantendo segredos Segredo: Steganography com .NET

Depois de implementar essa API, é trivial para esconder uma mensagem dentro de um ficheiro .bmp:

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

Da mesma forma, você pode extrair a mensagem com a mesma facilidade:

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

UPDATE: Oh, desculpe. Matt ligado ao mesmo artigo ... não viu que ao escrever esta resposta.

Se é uma importante aplicação que você está trabalhando, por que não tentar um serviço pago?

Digimarc e Signumtech pode dar-lhe esse tipo de apoio usando seu SDK.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top