Transfert de dégradé

Vince1024 Messages postés 2 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 27 novembre 2008 - 25 nov. 2008 à 18:22
Vince1024 Messages postés 2 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 27 novembre 2008 - 27 nov. 2008 à 10:29
Bonjour à tous,

je cherche à réaliser un effet 'thermovision' à la splinter cell. J'ai trouvé plusieurs sources permettant d'appliquer des effets sur un PictureBox (GrayScale + GaussianBlur) mais pas de 'transfert de dégradé'. Mes pauvres compétences en C# ne me permettent pas de réaliser cette fonction de manière efficace (rapide).
L'idéal serai que cette fonction ressemble à un truc du genre "PictureBox2.Image = Effet_Thermo(PictureBox1.Image, 10);" où "10" est un paramètre de 'sensibilité'.

Merci de me donner quelques pistes...

2 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 59
26 nov. 2008 à 23:17
Salut,
Efficace et C#, c'est pas ce qu'il y a de plus compatible à vrai dire.
Appel une méthode codée par exemple en C++ via P/Invoke ou renseigne toi sur la programmation avec pointeur en C#.

Pour ce qui est de l'algorithme pur, un forum d'imagerie serait peut-être plus adapté.

<hr />
-Blog-
-Site Perso-
0
Vince1024 Messages postés 2 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 27 novembre 2008
27 nov. 2008 à 10:29
Bonjour,
je n'ai pas de problème avec l'algo en tout cas j'ai trouvé une méthode qui procure un bon rendu...

for

(
int y = 0; y < height; ++y)
{

for (
int x = 0; x < width; ++x)
{

Britness = source.GetPixel(x, y).GetBrightness();

Spe_Height = (

int)((1-Britness) * Degrad.Height)-1;
Spe_Height =

Math.Abs(Spe_Height);
col = Degrad.GetPixel(Spe_Width,Spe_Height);

source.SetPixel(x, y, col);

}

Application.DoEvents();
pictureBox2.Refresh();

}

J'ai juste un petit problème de vitesse....

Merci.
0