Bonjours
j ai recuperer un exemple pour vc++2005 pour convertier une image en tableau dons le code est le suivant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
void LockUnlockBitsExample( PaintEventArgs^ e )
{
   // Create a new bitmap.
   Bitmap^ bmp = gcnew Bitmap( "c:\\1.jpg" );
 
   // Lock the bitmap's bits.  
   Rectangle rect = Rectangle(0,0,bmp->Width,bmp->Height);
   System::Drawing::Imaging::BitmapData^ bmpData = bmp->LockBits( rect, System::Drawing::Imaging::ImageLockMode::ReadWrite, bmp->PixelFormat );
 
   // Get the address of the first line.
   IntPtr ptr = bmpData->Scan0;
 
   // Declare an array to hold the bytes of the bitmap.
   // This code is specific to a bitmap with 24 bits per pixels.
   int bytes = bmp->Width * bmp->Height * 3;
   array<Byte>^rgbValues = gcnew array<Byte>(bytes);
 
   // Copy the RGB values into the array.
   System::Runtime::InteropServices::Marshal::Copy( ptr, rgbValues, 0, bytes );
 
   // Set every red value to 255.  
   for ( int counter = 0; counter < rgbValues->Length; counter += 3 )
      rgbValues[ counter ] = 255;
 
   // Copy the RGB values back to the bitmap
   System::Runtime::InteropServices::Marshal::Copy( rgbValues, 0, ptr, bytes );
 
   // Unlock the bits.
   bmp->UnlockBits( bmpData );
 
   // Draw the modified image.
   e->Graphics->DrawImage( bmp, 0, 150 );
}
Le problème c est que quand j ai une image .JPG le remplissage est bleu au lieu de rouge, et quand je charge une bmp j ai un lignage horizontal des 3 couleurs.
J aurais aimais comprendre pourquoi ou une solution pour résoudre ce problème.
Merci