Comment dois-je remplir une image avec une couleur unie?
J'ai besoin de créer un bitmap 24 bits (résolution de 100x100 pixels) à l'aide d'une unique couleur RVB et enregistrer l'image générée sur le disque. J'utilise actuellement la SetPixel
fonction, mais il est extrêmement lent.
Bitmap Bmp = new Bitmap(width, height);
//...
//...
Bmp.SetPixel(x,y,Color.FromARGB(redvalue, greenvalue, bluevalue));
Est-il une méthode plus rapide que SetPixel
? Merci à l'avance.
Vous devez vous connecter pour publier un commentaire.
Ceci devrait faire ce dont vous avez besoin. Il occupe la totalité de l'image avec la couleur spécifiée.
Bitmap Bmp = new Bitmap(width, height);
, puis c'est correct. Je peux voir dans la question, il a aussi un exemple de code sur ce qui se fait actuellement de créer quelque chose à partir de zéro. A été plus ou moins fatigué de voir les Graphiques.FromImage() dans tous les " à partir de zéro réponses. Idéalement je voudrais voir une nouvelle image à partir de Graphiques à partir de zéro.Clear
est plus rapide que d'appelerFillRectangle
lorsque vous êtes à la compensation de l'ensemble de l'image.using
des gardes autour de toute opération à l'aide de bitmaps ou de graphiques, ou les objets ne seront pas éliminés correctement.Cela dépend de ce que vous essayez d'accomplir, mais habituellement, vous devez utiliser GDI+ par l'obtention d'un objet graphique et puis en tirant à elle:
Sa fait un gros sujet, voici quelques débutant tutoriels: GDI+ Tutoriels
Voici un extrait du tutoriel sur le dessin d'un rectangle avec un dégradé.
Vous pouvez utiliser LockBits pour accélérer l'écriture des pixels (pointeur d'accès au lieu de l'appel de la méthode par pixel).
Vous avez l'embarras du choix ici 🙂
Une alternative à l'utilisation de GDI+ est à utiliser WPF (voir RenderTargetBitmap.Rendre.)
Voir aussi cette question.
toujours Travailler avec régions ( rectangle ) est beaucoup plus rapide Que d'utiliser pixels individuels.
La création d'objet bitmap bmp de Taille s (hauteur , largeur) et la Couleur c.
Maintenant CreateBmp méthode qui renvoie la bitmap:
Je suggère de vérifier la Bibliothèque GD.
Je suis plutôt certain qu'il y est un c# de la bibliothèque.
http://www.boutell.com/gd/