none
PictureBox Zoomen ? RRS feed

  • Frage

  • Hallo allerseits,

    ich habe eine Form in dieser lege ich eine PictureBox ab. Die PicutreBox wird mit einem image gefüllt... soweit so gut oft ist dieses image jetzt allerdings zu groß und selbst mit scollbalken zu unüberschtlich.

     

    Eine art Zoom-Funktion währe hier optimal allerdings sollte es sich dabei nicht um ein einfaches vergrößern oder verkleinern des Bildes handeln das bild wird immer als Jpeg geladen und hat oft dimensionen von mehr als 60000x12000 pixeln daher währen bitmaps eine eher schlechte wahl aufgrund des hohen Ressourcenverbrauchs.

    Skaliert man nur die größe so entsteht eine Unschärfe und die Qualität leidet. (jedenfalls bei meinen versuchen)

    Gibt es eine Funktion oder eine Lösung heraus und hinein zu "Zoomen" und das hin und her ... ohne Qualitätsverlust ?

    Die Jpeg(das bild wird im Programm aus gesammelten Daten erstellt) liese sich im code auch auf eine Bitmap "umlagern" wenn es nicht anders gehen sollte aber ursprünglich muss es eine jpeg datei bleiben.

     

    Ich hoffe jemand versteht das was ich so schreibe und kann mir auch noch helfen.

    mfg.

    Dienstag, 2. November 2010 12:50

Alle Antworten

  •  

     

    Hi,

    Es gibt die Möglichkeit die gesammte PictureBox zu vergrößern.

    Bei VergrößerungsButton:

     

    Size X = new
     Size(picbox.Width += 10 ,picbox.Height += 10 );
    Bitmap n= new Bitmap (picbox.Image ,X);
    picbox.Image = new Bitmap("//Pfad der File" );

    Bei VerkleinerungsButton:

     

     try
    
    {
     Size X = new Size(picbox.Width -= 10, picbox.Height -= 10);
    Bitmap n = new Bitmap(picbox.Image, X);
    picbox.Image = new Bitmap("//Pfad der Image" );
    }
    finally { }

    Der Nachteil ist, dass die PB irgendwann größer ist als das Fenster und man nur noch den oberen Teil sieht.

    Die Lösung:

    Buttons zum Verschieben der PB


    nach rechts:

     

     

    int
     X = picbox.Location.X;
    int Y = picbox.Location.Y;
    X += 20;
    picbox.Location = new Point(X, Y);


    nach links:

     

    try
    {
    int X = picbox.Location.X;
    int Y = picbox.Location.Y;
    X -= 20;
    picbox.Location = new Point(X, Y);
    }
    finally { }

     

    nach oben:

     

    try
    {
    int X = picbox.Location.X;
    int Y = picbox.Location.Y;
    Y -= 20;
    picbox.Location = new Point(X, Y);
    }
    finally { }

     

    nach unten:

     

    try
    
    {
    int X = picbox.Location.X;
    int Y = picbox.Location.Y;<br/>
    Y -= 20;
    picbox.Location = new Point(X, Y);
    }
    finally { }
    Samstag, 11. Dezember 2010 09:24