Travail sur Image pixel par pixel

Signaler
Messages postés
9
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
30 mai 2005
-
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
-
Salut à tous

J'ai ouvert un image dans vb .net avec une picturebox et je
souhaiterais travailler sur chaque pixel de cette image (par exemple
changer la couleur pixel par pixel) et je ne sais pas comment faire.
Pour cela, il me faudrait avoir accès aux 3 valeurs RVB de chaque
pixel. savez vous comment faire ?

merci d'avance

8 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
116
Je peux te conseiller d'aller voir ma source nommée "DKS_Gestion_Image"
: elle te permettra de faire ce que tu demande (manipuler des pixels
composantes par composantes) avec une bien meilleure vitesse que ce que
tu pourrais faire uniquement en VB (elle se base en fait sur un tableau
de bits correspondant à ton image).

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
Messages postés
9
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
30 mai 2005

je n'ai pas encore regardé ta source mais si le comprends bien ta
réponse, tu utilise des fonctions qui ne sont pas de vb. Or je ne veux
utiliser que les fonctions vb de bases, la vitesse n'est pas un
problème.

merci
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
116
En effet, je n'utilise pas les fonctions graphiques natives de VB car
elles sont extrémement lentes ! J'utilise donc les fonctions de l'API
Windows qui sont des fonctions codées en C et qui ont l'avantage d'être
100 % compatibles avec VB, et sont intégrées sur toutes les versions de
Windows depuis 95 ! De plus, elles sont bien plus rapide (ma source,
codées en VB et utilisant les API va 35 fois plus rapide en moyenne
pour traiter une image complète que les fonctions de VB).



Ma source reste une source VB, elle ne fait qu'utiliser des fonctions
externes qui sont de toutes façon faîtes pour cà : VB sans les API, ca
limiterais pas mal de chose !



En tout cas, cela facilite le travail pour le calcul des composantes :
avec ma source, tu as juste à appeler une fonction pour récupèrer les
trois composantes, avec qu'avec les fonctions natives de VB, il te faut
tout d'abord récupèrer la couleur d'un pixel, récupèrer les composantes
couleurs avant de pouvoir enfin faire tes calculs dessus, ce qui
ralentit d'autant plus le traitement !



Libre à toi d'utiliser ma source ou pas, mais je te le conseille
vivement : VB étant très très lents pour le graphisme, l'utilisation
des API permet d'accélèrer considérablement les performances !

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
116
Tiens y'a un bug au niveau des espaces : Nix si tu passe par là : à
chaque fois qu'une ligne arrive au bout dans le contrôle, l'espace de
fin n'est pas affiché dans le message final !

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
Messages postés
9
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
30 mai 2005

en fait j'ai un peu de mal à utiliser ta source car je suis en vb .NET. les fonctions ne sont donc pas tout à fait les memes.

je vais essayer de me débrouiller et de faire au plus simple car je suis débutant en vb

merci
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
28
Messages postés
1
Date d'inscription
dimanche 25 février 2007
Statut
Membre
Dernière intervention
30 janvier 2008

Bonjour,

j'essaie de progresser en VB. Connaissez vous un moyen de lire l'image comme un tableaux de pixels afin de faire des opérations basiques. Symétrie, rotation, ect...
Toutes les sources que j'ai pu trouver jusqu'à présent ne travaillent qu'avec des images qui utilisent le format Bmp et qui ignores les images compressée en jpeg,png,...

Pour ceux qui connaissent le delphi. J'aimerai par exemple, trouver un équivalent  à

var x,y: integer;

begin

imagedestination.height:=imagesource.height;            
imagedestination.width:=imagesource.width;

for x:=0 to (imagesource.width-1) do
for y:=0 to (imagesource.height-1)do

imagedestination.Canvas.Pixels[(imagesource.width-1)-x,y]:=imagesource.Canvas.Pixels[x,y];

end;

Merci d'avance
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour

en .NET, l'objet Bitmap gère parfaitement le Jpeg, PNG et BMP au moins, et d'après quelques Test, le GIF en fait aussi partit.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site