greatspirit
Messages postés13Date d'inscriptionlundi 29 mars 2004StatutMembreDernière intervention 6 juin 2007
-
20 nov. 2005 à 13:01
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 2012
-
21 nov. 2005 à 07:57
Je voudrais éditer des fichiers images du style bitmap pixel par pixel à partir de leur code hexa. Je voulais savoir s'il y avait un moyen de retrouver ces codes hexa pour les stocker dans un tableau et les editer, puis remettre ces données sous forme de bitmap.
Merci
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 20 nov. 2005 à 13:46
Salut,
Avec Bitmap.GetPixel ?
Et si tu as besoin de meilleures performances, regarde dans les sources de ce site tu devrais trouver plusieurs exemples d'utilisation de GDI non managé.
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 21 nov. 2005 à 07:57
Pour éditer un bitmap tu dois verrouiller le bitmap en mémoire et travailler directement dessus avec les pointeurs, récupérer un tableau de valeurs hexa ou de couleurs pour ensuite recréer un bitmap c'est trop long, enfin ça depend de ce que tu veux faire..
Un exemple pour appliquer un filtre avec une image 24bpp.
private struct BGR
{
public byte B;
public byte G;
public byte R;
}
private unsafe void ApplyFilter( Bitmap bmp )
{
try
{
int width = bmp.Width;
int height = bmp.Height;
BitmapData data = bmp.LockBits( new Rectangle( 0, 0, width, height ), ImageLockMode.ReadWrite, bmp.PixelFormat );
int stride = data.Stride;
byte* pStart = ( byte* )data.Scan0;
BGR* p = null;
for ( int y = 0; y < height; y++ )
{
p = ( BGR* )( pStart + y * stride ); // word aligned.