vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Problem mit Ausgabe in PictureBox 
Autor: Kuno60
Datum: 27.03.18 16:29

Hallo,

ich habe dieses Beispiel ausprobiert und kann den Streifen rechts und unten bestätigen. Er tritt nur bei bestimmten Bildgrößen auf. Die Ursache ist mir unbekannt. Das interne, gezoomte Bild scheint immer die richtige Größe zu haben. Wenn ich den Originalcode der PictureBox nachbilde (mit DrawImage), tritt in keinem Fall ein Streifen auf.
Beste Lösung:
Erstelle ein eigenes Steuerelement.

Mit dieser PictureBox tritt kein Randstreifen auf.
Class MeinePictureBox
  Inherits PictureBox
 
  Protected Overrides Sub OnPaint(pe As PaintEventArgs)
    If Image IsNot Nothing AndAlso SizeMode = PictureBoxSizeMode.Zoom Then
      pe.Graphics.DrawImage(Image, ImageRectangle)
    Else
      MyBase.OnPaint(pe)
    End If
  End Sub
 
  Private Function ImageRectangle() As Rectangle
    Dim cr = ClientRectangle
    If Image IsNot Nothing Then
      Dim ims = Image.Size
      Dim ratio = Math.Min(cr.Width / ims.Width, cr.Height / ims.Height)
      cr.Width = CInt(ims.Width * ratio)
      cr.Height = CInt(ims.Height * ratio)
      cr.X = (Me.Width - cr.Width) \ 2
      cr.Y = (Me.Height - cr.Height) \ 2
    End If
    Return cr
  End Function
 
End Class
Du kannst das drehen des Bildes auch direkt mit in diese Box einbauen.
Zum Beispiel so:
  Protected Overrides Sub OnPaint(pe As PaintEventArgs)
    If Image IsNot Nothing AndAlso SizeMode = PictureBoxSizeMode.Zoom Then
      Dim g = pe.Graphics
      'Verschieben zum Mittelpunkt
      g.TranslateTransform(Me.Width / 2.0F, Me.Height / 2.0F)
      'Drehen um 5 Grad
      g.RotateTransform(5.0F)
      'Grafik vergrößern, damit keine Ränder sichtbar sind
      '(der genaue Faktor muss berechnet werden!)
      g.ScaleTransform(1.2F, 1.2F)
      'Zurückverschieben
      g.TranslateTransform(-Me.Width / 2.0F, -Me.Height / 2.0F)
      'Qualität verbessern
      g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
      'Bild zeichnen
      g.DrawImage(Image, ImageRectangle)
    Else
      MyBase.OnPaint(pe) 'internes zeichnen
    End If
  End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Problem mit Ausgabe in PictureBox2.957Dikn23.03.18 18:29
Re: Problem mit Ausgabe in PictureBox2.111Manfred X23.03.18 20:15
Re: Problem mit Ausgabe in PictureBox2.067Kuno6023.03.18 20:44
Re: Problem mit Ausgabe in PictureBox2.030Dikn25.03.18 10:10
Re: Problem mit Ausgabe in PictureBox2.074Manfred X25.03.18 12:48
Re: Problem mit Ausgabe in PictureBox2.053Dikn26.03.18 08:36
Re: Problem mit Ausgabe in PictureBox2.084Kuno6027.03.18 16:29
Re: Problem mit Ausgabe in PictureBox2.020Dikn26.03.18 09:58
Re: Problem mit Ausgabe in PictureBox2.038Manfred X26.03.18 11:26
Re: Problem mit Ausgabe in PictureBox2.032Dikn26.03.18 17:44
Re: Problem mit Ausgabe in PictureBox2.167Manfred X26.03.18 18:32
Re: Problem mit Ausgabe in PictureBox2.002Dikn27.03.18 09:22
Re: Problem mit Ausgabe in PictureBox2.151Manfred X27.03.18 09:33
Re: Problem mit Ausgabe in PictureBox1.986Dikn28.03.18 12:03
Re: Problem mit Ausgabe in PictureBox2.005Kuno6028.03.18 15:17
Re: Problem mit Ausgabe in PictureBox2.054Dikn28.03.18 18:01
Re: Problem mit Ausgabe in PictureBox1.976Kuno6004.04.18 07:06
Re: Problem mit Ausgabe in PictureBox1.926Manfred X04.04.18 13:37
Re: Problem mit Ausgabe in PictureBox1.868Kuno6004.04.18 20:18
Re: Problem mit Ausgabe in PictureBox1.838Manfred X04.04.18 20:51
Re: Problem mit Ausgabe in PictureBox1.900Kuno6004.04.18 21:10
Re: Problem mit Ausgabe in PictureBox1.901Manfred X04.04.18 21:40
Re: Problem mit Ausgabe in PictureBox1.819Kuno6004.04.18 22:52
Re: Problem mit Ausgabe in PictureBox1.864Manfred X04.04.18 23:02
Re: Problem mit Ausgabe in PictureBox1.850Kuno6004.04.18 23:20
Re: Problem mit Ausgabe in PictureBox1.893Manfred X04.04.18 23:33

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel