Bild über Bild zeichnen - wird größer?

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Fritz-albert.

    Bild über Bild zeichnen - wird größer?

    Hallo,

    Ich bin eine UserControl am programmieren und stehe jetzt vor einem Problem.

    Ich zeichne gerade den Header und über den Header zeichne ich Buttonbilder.

    Jetzt stehe ich vor dem Problem das die Buttons irgendwie so gezeichnet werden, als wären sie vergrößert, sie werden ebenfalls leicht unscharf.

    Kann mir jemand sagen woran das liegt?
    Dann musst Du den Bildern / Buttons / Controls die Eigenschaft geben, dass Bilder nicht vergrößert / verkleinert werden sollen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Form - BackGroundImage / BackGroundImageLayout = None / Tile / Center
    ToolStrip - ToolStripButton / ImageScaling = None
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Was soll mir denn Backgroundimagelayout bringen?


    Es geht doch garnicht darum, dass das Bild mehrmals gezeichnet wird.


    Es geht doch darum, dass das Bild vergrößert und verschwommen , also nicht 1:1 gezeichnet wird.

    Dieser Fehler tritt aber nur auf wenn ich auf den Header zeichne(wahrscheinlich weil der Header ja ein Bild ist)

    Zeichne ich ins WorkingArea(was kein Bild hat sondern nur eine graufärbung) passiert mir das nicht..
    Schau mal nach, in welcher DPI-Auflösung das Bild gespeichert ist. Ich wette mit dir, dass das Bild 72 dpi hat. Ich weiss nicht, welches Grafikprogramm du einsetzt, aber du müsstest die Auflösung in 96 dpi ändern. Danach wird nichts mehr größer.

    Warum das so ist, weiss nur Microsoft. Selbst ".DrawImageUnscaled" zeichnet das Bild nicht Pixelgetreu und richtet sich nach dem dpi-Wert.
    zeichnest du das bild mit gdi+? wenn ja:

    e.drawImageUnscaled(Bild als Bitmap, x Koordinat, y Koordinat)

    anstelle von:

    e.drawImage(Bild als Bitmap, x Koordinat, y Koordinat, Breite, Höhe)

    Edit: sorry hab den Beitrag drüber nicht ganz gelesen O.o