Arriver tableau RVB à partir d'une image en C#
Je suis actuellement à la rédaction d'un C# de la mise en œuvre d'un petit programme que j'ai écrit en Java.
J'avais utilisé BufferedImage.getRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize)
fonction dans mon application Java. Mais je ne pouvais pas vraiment trouver une version de cette en C# et je ne suis pas sûr de la façon de l'écrire manuellement.
OriginalL'auteur thecodekid | 2011-01-20
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas d'équivalent direct dans l' .NET Framework pour cette méthode. Toutefois, si votre image est un Système.De dessin.Bitmap, vous pouvez appeler la méthode LockBits, et cela renvoie une occurrence de BitmapData structure qui contient l'adresse de la première ligne de numérisation. Vous pouvez l'utiliser pour créer ce qui devrait être une API compatible wrapper. Je suis en supposant que vous êtes à l'aide de C# 3.5 ou plus, donc je suis en utilisant une méthode d'extension - si vous utilisez un vieux goût, la changer pour une méthode régulière en laissant tomber le " il " de l'argument Bitmap:
Ce gestionnaire peut maintenant être appelée comme ceci:
Espère que cette aide, et bienvenue .NET!
OriginalL'auteur Andy Hopper
Vous pourriez utiliser une image Bitmap.LockBits pour obtenir un accès direct aux pixels d'une image. Voici un exemple de mise en œuvre, il retourne une ligne de numérisation de l'image bitmap comme un int[]:
OriginalL'auteur Hans Passant
Je pense que le plus proche est
Bitmap.GetPixel(x,y)
que le retour d'un seul pixel de couleur en un point.Afin de simuler la fonction java, vous aurez besoin d'écrire un helper.
OriginalL'auteur Felice Pollano
Vous pouvez avoir besoin de vérifier
Également vérifier La conversion d'un tableau de Pixels d'une image en C#.
OriginalL'auteur Incognito
Cela dépend à quelle vitesse vous avez besoin de le faire.
Bitmap
aGetPixel()
méthode qui fonctionne très bien pour un pixel.Si vous avez besoin de faire un traitement d'image rapide, vous devez utiliser
LockBits
qui vous pouvez trouver un exemple ici."Cela dépend de comment gras vous devez le faire." Si vous préférez, j'ai quitté votre fautes d'orthographe, alors vous avez juste besoin de le dire.
Pas de probs. Pour une raison que aussi enlevé mon code que j'ai collé. Merci pour le retrait de ma faute d'orthographe - j'ai repasted mon code.
Je remarque dans le journal des modifications qu'il indique que j'ai supprimé l'exemple de code, je n'ai pas. Il n'était pas présent lorsque a décidé de l'éditer votre faute et n'était pas présent dans la fenêtre d'édition. Curieux. Un artefact de la simultanées de l'édition?
peut-être. Et je ne vois pas de solution vraiment.
OriginalL'auteur Aliostad