Mon objectif est de charger mon bitmap de 256 x 256 pixels et d'affecter à chaque pixel une valeur de couleur blanche ou noire, selon que la valeur réelle tombe en dessous d'un certain seuil.Manipuler BitmapData, seul 1/3 est altéré
Problème: 1/3 de la largeur de la bitmap a les nouvelles données de pixel, même si l'instruction for interne itère sur toute la largeur.
unsafe
{
BitmapData bitmapData = bitmap.LockBits(new Rectangle(0,0, 256, 256), ImageLockMode.ReadWrite, bitmap.PixelFormat);
for (int j = 0; j < bitmapData.Height; j++)
{
byte* row = (byte*)bitmapData.Scan0 + (j * bitmapData.Stride);
for (int k = 0; k < bitmapData.Width; k++)
{
if (row[k] <= TresholdFilter)
row[k] = 0;
if (row[k] > 0)
row[k] = 255;
}
}
bitmap.UnlockBits(bitmapData);
}
Quelle est la valeur de 'TresholdFilter'? – erikscandola
C'est un Int32, avec une plage 0-255 – Yama
Il est possible que, dans certains cas, dans votre rangée [k] 'reste la valeur initiale? Avez-vous essayé avec une autre image? – erikscandola