J'ai une image qui est 1px de large, et une certaine hauteur. J'ai besoin de dessiner cette image sur toute la largeur du contrôle sur son événement OnPaint. Je l'ai pour dessiner, mais pas correctement. Il semble que quand il l'étire, il ne remplit pas réellement tous les pixels. Comme si l'interpolation est désactivée. Existe-t-il un moyen de dire «arrête d'être intelligent, dessine-le déjà»? Je ne vois pas InterpolationMode.Off ou .None dans les options de l'objet graphique.C# Dessine l'image (mise à l'échelle) sur Graphics, n'interpole pas correctement. Corrige?
Je peux confirmer que je dessine réellement toute la largeur en utilisant une image de largeur X où X a la même largeur que le contrôle. Puis, quand il dessine, il couvre la zone entière comme d'habitude. Cependant, ce contrôle est redimensionné tout le temps, et pour économiser de la mémoire et tout ce jazz en utilisant des images larges 1px est tout à fait normal dans le monde Web. C'est pour une application C# de bureau cependant. Des idées pour résoudre le problème? InterpolationMode.NearestNeighbor est ce que vous voulez utiliser dans ce cas.
J'ai eu le même problème et après avoir essayé plusieurs variantes de PixelOffsetMode et InterpolationMode, c'est ce qui a fonctionné pour moi. Pour ceux qui effectuent une recherche via Google: Définir PixelOffsetMode sur Half permet à graphics.DrawImage (...) de redimensionner une image (comme dans MS Paint) sans alias et remplit la taille/rectangle de destination avec ce que vous spécifiez. Ceci est utile si vous souhaitez superposer une image ou un motif de couleur unique lorsque vous ne vous souciez pas des artefacts/du fondu (parce que c'est une couleur unie, il n'y en aura pas). – Andrew