begin process at 2010 02 10 03:28:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Graphique

 > 

Dithering


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Dithering

jeudi 23 mars 2006 à 09:25:44 | Dithering

superismali

Bonjour tout le monde,
j'ai trouvé ce code
public static void Dithering(Bitmap bitmap)
{
    
int width bitmap.Width;
    int 
height bitmap.Height;

    
//le pattern à  appliquer (il était à l'origine destiné à des niveaux de gris de 64)
    
byte[][] pattern = new byte[][]{    new byte[]{0,32,8,40,34,2,10,42},
                            
new byte[]{48,16,56,24,50,18,58,26},
                            
new byte[]{12,44,4,36,14,46,6,38},
                            
new byte[]{60,28,52,20,62,30,54,22},
                            
new byte[]{3,35,11,43,1,33,9,41},
                            
new byte[]{51,19,59,27,49,17,57,25},
                            
new byte[]{15,47,7,39,13,45,5,37},
                            
new byte[]{63,31,55,23,61,29,53,21}};

    unsafe
    
{
        BitmapData bmpData 
bitmap.LockBits(new Rectangle(00, width, height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);

        byte
* newPixel (byte*)(void*)bmpData.Scan0;
        int 
offset width % 4;
           
        for 
(int 0y < heighty++)
        {
            
for (int 0x < widthx++)
            {
                
//on récupére le niveau de gris sur 255
                
byte pixel (byte)(.* newPixel[0] + .59 * newPixel[1] + .11 * newPixel[2]);
                
//on compare le pixel (réduit à 64 niveaux) au pattern (en fonction de sa position
                //par rapport à l'image
                
if ((pixel>>2)>pattern[x&7][y&7])
                    newPixel[
0]=newPixel[1]=newPixel[2]=255;
                else
                    
newPixel[0]=newPixel[1]=newPixel[2]=0;

                
newPixel+=3;    
            
}
            newPixel +
offset;
        
}
        bitmap.UnlockBits(bmpData)
;
    
}
}

à l'adresse: http://www.csharpfr.com/code.aspx?ID=30132
 elle est trés utile pour moi, mais j'arrive pas à la faire fonctionner.
Et j'ai tjrs ce message d'erreur: " Unsafe code may only appear if compiling with /unsafe"
Qui peu m'expliquer comment détourner ce pb.
Merci et bonne prog ;)

Superismali
jeudi 23 mars 2006 à 09:47:41 | Re : Dithering

superismali

Réponse acceptée !
Merci pour le code
j'ai trouvé comment le faire fonctionner

Superismali


Cette discussion est classée dans : int, byte, width, bitmap, newpixel


Répondre à ce message

Sujets en rapport avec ce message

conversion string en int, byte, hexa [ par vinc524 ] C#bonjour, je cherche désespérémment un moyen pour convertir une chaine de caractere string en hexadecimal. En fait je voudrais le code ascii d'un car array et CSharp [ par matgai ] Bonjour,Je débute en C# et je vois déjà les limites du tout-objet par rapport à C++. Voici en particulier où je bute :je veux écrire l'équivalent C++ Conversion d'un int en byte[4] [ par RyoSaeba2 ] 'lut,je m'adresse à cette grande communauté de programmeurs et vous pose une question :Comment convertir un int en un tableau de 4 bytes (c#)?Merci po Bitmap: colorisation de pixels...Help! [ par Zekez ] Bonjour,Voilà, j'ai un petit problème de colorisation d'une Bitmap... Je dois effectuer un remplissage de couleur (comme dans Paint) et je dois colori int to byte[] [ par Sobieski ] Bonjour,Je cherche à envoyer un tableau de bytes, mais j'ai des valeurs en int. J'aimerais savoir comment faire d'un int un tableau de bytes (byte[]). int, short etc.. to byte[] [ par Sobieski ] Salut,Dans le cadre d'envois réseaux en TCP à un truc que je peux pas modifier, je dois envoyer un tableau de byte, avec dedans des ints, shorts, uint Concaténation d'Image de grandes tailles. [ par kbumbazz ] Bonsoir a tous,Voila, j'aurai besoin de faire un bout de code pour concaténer des images qui sont morcelées en une seule.Un peu come si on avais un gr Comment convertir un String en Color [ par bolo ] Bonjourj'aimerai dessiner une image , j'ai un tableau de type sting contenant tous les pixel de l'image .par exemple le premier pixel est "3230036"Mai Dessiner un rond plein [ par fcolo ] Bonjour,Je souhaiterai créer un live une icone représantant un rond plein.J'arrive à créer un rond, mais je ne sasi pas comment remplir l'intérieur.Je tableau de byte [ par nuns ] Bonjour je voudrais savoir pour quoi sa ne  marche quand je fait sa  ,  j'ai  tableau dinamique, avec des lettre dedand,  mais pas toute les case sont


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales