[Offtopic] S'il vous plaît excusez-moi si je ne suis pas assez précis, c'est ma première question et je suis aussi nouveau à la programmation.Pourquoi existe-t-il une différence entre le composant ARGB que je sauvegarde et celui que je récupère du fichier enregistré?
[Question] Je voulais changer le composant ARGB d'un seul pixel d'un bitmap (photo, fichier jpg) en une valeur exacte en utilisant Bitmap.SetPixel et l'enregistrer dans un nouveau fichier, en utilisant Bitmap.Save. Malheureusement, cela n'a pas fonctionné. Lorsque j'ai rouvert le fichier, le pixel que je voulais changer (0, 0) avait des valeurs ARGB légèrement différentes. Pourquoi cela se passe-t-il? Est-il possible de créer un fichier qui a exactement le composant ARGB que je veux pour un certain pixel?
Voici le code que j'ai:
Bitmap originalMap = new Bitmap("image.jpg");
Color current = originalMap.GetPixel(0, 0);
//This one shows the original ARGB values
Console.WriteLine(current);
originalMap.SetPixel(0, 0, Color.FromArgb(255, 100, 100, 100));
originalMap.Save("new.jpg");
//This one shows the result that I want, but the bitmap is not re-opened
Console.WriteLine(originalMap.GetPixel(0, 0));
Bitmap openTheNewFile = new Bitmap("new.jpg");
//The actual result after I open the saved file, A=255, R=108, G=113, B=117
Console.WriteLine(openTheNewFile.GetPixel(0, 0));
Pourquoi est 108, 113 et 117 et non 100, 100, 100? Merci d'avance pour les réponses, je suis sûr que c'est quelque chose de basique (c'est le moins qu'on puisse dire), mais ça m'ennuie vraiment.
_jpg .. la valeur exacte_ est mutuellement exclusive. – TaW
Merci TaW! Je garderai cela à l'esprit la prochaine fois que j'essaierai d'apporter de tels changements à une image. –