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

In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.

Hinweis:
Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden!

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

Fragen zu Tipps & Tricks und Workshops im vb@rchiv
Tipp 1666: Bild skalieren (VB.NET) 
Autor: Guenterp66
 Tipp anzeigenDatum: 29.07.10 19:16

Und so funktionierts auch im Mobile:
 
Public Shared Function AutoSizeImage(ByVal oBitmap As Image, ByVal _
  DestinationRectangle As Rectangle) As Image
 
            Dim maxWidth As Integer = DestinationRectangle.Width
            Dim maxHeight As Integer = DestinationRectangle.Height
            ' Größenverhältnis der max. Dimension
            Dim maxRatio As Single = CSng(maxWidth / maxHeight)
 
            ' Bildgröße und aktuelles Größenverhältnis
            Dim imgWidth As Integer = oBitmap.Width
            Dim imgHeight As Integer = oBitmap.Height
            Dim imgRatio As Single = CSng(imgWidth / imgHeight)
 
            ' Bild anpassen?
            If (imgWidth > maxWidth Or imgHeight > maxHeight) Then
                If imgRatio <= maxRatio Then
                    ' Größenverhältnis des Bildes ist kleiner als die
                    ' maximale Größe, in der das Bild angezeigt werden kann.
                    ' In diesem Fall muss die Bildbreite angepasst werden.
                    imgWidth = CInt(imgWidth / (imgHeight / maxHeight))
                    imgHeight = maxHeight
                Else
                    ' Größenverhältnis des Bildes ist größer als die 
                    ' maximale Größe, in der das Bild angezeigt werden kann.
                    ' In diesem Fall muss die Bildhöhe angepasst werden.
                    imgHeight = CInt(imgHeight / (imgWidth / maxWidth))
                    imgWidth = maxWidth
                End If
 
                ' Bitmap-Objekt in der neuen Größe erstellen
                Dim oImage As New Bitmap(imgWidth, imgHeight)
 
                Dim g As System.Drawing.Graphics = _
                  System.Drawing.Graphics.FromImage(oImage)
                g.DrawImage(oBitmap, DestinationRectangle, New Rectangle(0, 0, _
                oBitmap.Width, oBitmap.Height), GraphicsUnit.Pixel)
                ' neues Bitmap zurückgeben
                Return oImage
            Else
                ' unverändertes Originalbild zurückgeben
                Return oBitmap
            End If
        End Function
Aufruf in ein Form mit einer PictureBox:
 
Public Sub New(ByVal MyPicture As Image)
 
        ' This call is required by the Windows Form Designer.
        InitializeComponent()
        ' Add any initialization after the InitializeComponent() call.
        Me.PictureBox1.Image = AutoSizeImage(MyPicture, _
          Me.PictureBox1.ClientRectangle)
    End Sub
Danke für die Anregung!

Beitrag wurde zuletzt am 29.07.10 um 19:21:55 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Tipp 1666: Bild skalieren (VB.NET)5.651Guenterp6629.07.10 19:16
Re: Bild skalieren (VB.NET)2.202Guenterp6630.07.10 08:37

Sie sind nicht angemeldet!
Um einen neuen Beitrag 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