2009-09-11 14 views
1

J'essaie d'ouvrir un fichier en octets, de le convertir en chaîne, de modifier certaines données (pensez à Steganography) et de convertir le fichier en octets et de l'enregistrer en jpeg. Jusqu'à présent, tout ce que j'ai essayé a corrompu le fichier en le convertissant en une chaîne. J'ai essayé de le convertir en une chaîne de 64 bits, mais bien sûr c'est un peu difficile de modifier les données dans: PModification des en-têtes JPEG en C#

Des suggestions sur la façon dont je peux le faire correctement, sans corrompre mon fichier?

+0

Pourquoi avez-vous besoin de le convertir en chaîne? Si vous avez les octets, vous pouvez déjà modifier les données. Surtout pour la stéganographie, cela rendra les choses beaucoup plus faciles. – OregonGhost

+0

C'est en fait plus pour modifier les métadonnées XMP, dont je ne peux pas utiliser la bibliothèque intégrée car je ne peux pas mettre à jour .net –

Répondre

3

Je ne l'ai pas en C# mais en PHP, mais vous pouvez jeter un oeil et adapter à C#.

http://www.havenard.110mb.com/fotomagica/

Ceci est mon site où il y a un outil pour modifier les données EXIF ​​d'un JPEG et construire des « magiques » des images qui affichent quelque chose dans la vignette qui n'est pas l'image réelle.

Il ouvre le fichier JPEG, coupe ses secteurs et les reconstruit en ignorant les secteurs non pertinents et en plaçant mon en-tête EXIF ​​personnalisé.

Et ceci est la source des classes PHP: http://www.havenard.110mb.com/fotomagica/class.JpegMapper.php.txt (ExifMapper est incomplète) http://www.havenard.110mb.com/fotomagica/class.DataMapper.php.txt

Vous pouvez étudier et reconstruire en C#, il est vraiment simple à découper un fichier JPEG comme vous le verrez.

L'utilisation de cette classe PHP (uniquement JpegMapper):


$jpg = new JpegMapper('picture.jpg'); 
$jpg->save_filtered('filtere picture.jpg'); // save removing irrelevant sectors 

Il est grand pour obtenir une JPEG encore plus petit (parfois beaucoup plus petit).