2010-07-25 6 views
1

J'ai une application qui utilise l'image capturée par la caméra mobile et l'envoie à un webservice. Actuellement, je mets l'image dans un octet [] qui sera ensuite transmis. Cela se fait par:Bitmap <-> Conversion JPEG

filename = cameracapturedialog.FileName; 
FileStream fs = new FileStream(filename, FileMode.Open); 
byte[] ImageByte = new byte[fs.Length]; //file to send 
fs.Read(ImageByte, 0, Convert.ToInt32(fs.Length)); 

Mais maintenant je voudrais effectuer un certain traitement (redimensionnement), d'où je devais mettre l'image dans un objet BITMAP, et après le traitement, je le reconvertir en JPEG.

Existe-t-il un moyen de convertir un JPEG en Bitmap puis de revenir au JPEG sans avoir de changements dans les pixels (pour tester, je n'effectuerai aucun traitement sur le Bitmap)? Par conséquent, si je compare le premier JPEG avec le second JPEG, j'ai besoin que les fichiers soient exactement les mêmes.

Selon vous, quelle est la meilleure solution? Puis-je utiliser autre chose à la place de Bitmap. Toute suggestion avec du code sera grandement appréciée.

+0

http://stackoverflow.com/questions/41665/bmp-to-jpg-png-in-c – jgauffin

+0

merci, mais ne fonctionne pas sur un sdk mobile :( – mouthpiec

Répondre

0

Non. Vous pouvez l'enregistrer avec la qualité = 100 qui serait presque comme l'image originale. Cependant, le fichier résultant sera énorme.

1

JPG est un format avec perte. Il perdra TOUJOURS des informations à cause de la façon dont l'algorithme de codage fonctionne. Vous n'aurez donc jamais l'image originale d'un fichier jpg, quel que soit l'encodeur utilisé.

Questions connexes