vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

VB.NET - Ein- und Umsteiger
Klasse PicList: Serialisierung 
Autor: Manfred X
Datum: 24.01.12 18:47

Diese Klasse dient der Serialisierung.
Sie kann alle Bilder in einem Verzeichnis laden (AddDir).

Public Class PicList
 
    Dim _PicSeries As PicSeries
 
    ''' <param name="Quality">Qualitätsstufe JPEG-Encoder (50-95)</param>
    Public Sub New(Optional ByVal Quality As Integer = 85)
        _PicSeries = New PicSeries(Quality)
    End Sub
 
    ''' <summary>Bilder JPEG-kopmprimiert in den Speicher laden</summary>
    ''' <param name="PicDirectory">Verzeichnis mit Bilddateien</param>
    ''' <param name="PicSize">Größe der Bilder im Speicher</param>
    ''' <param name="PicExtensions">optional: Bilddatei-Erweiterung(en)</param>
    Public Function AddDir(ByVal PicDirectory As String, ByVal PicSize As Size,
                   ByVal ParamArray PicExtensions() As String) As Integer
        If Not Directory.Exists(PicDirectory) Then Return -1
        If PicSize.Width < 5 Or PicSize.Height < 5 Then Return -1
        If PicExtensions.Length < 1 Then
            PicExtensions = ".jpg,.jpeg,.jpe,.bmp,.tif,.tiff,.gif,.png".Split( _
              ","c)
        End If
        Dim picextlist As New List(Of String)
        picextlist.AddRange(PicExtensions)
        For i As Integer = 0 To picextlist.Count - 1
            picextlist(i) = picextlist(i).ToUpper
        Next i
        Dim addedpics As Integer = 0
        For Each File As String In Directory.GetFiles(PicDirectory)
            If picextlist.Contains(Path.GetExtension(File).ToUpper) Then
                If _PicSeries.Add(File, PicSize) >= 0 Then addedpics += 1
            End If
        Next File
        Return addedpics
    End Function
 
    ''' <summary>Bilddatei JPEG-komprimiert an Liste anhängen</summary>
    ''' <param name="file">zu ladende Bilddatei</param>
    ''' <param name="Picsize">Größe des Bildes</param>
    Public Function Add(ByVal File As String, ByVal PicSize As Size) As Integer
        Return _PicSeries.Add(File, PicSize)
    End Function
 
    ''' <summary>Anzahl der geladenen Bilder</summary>
    Public ReadOnly Property Count() As Integer
        Get
            Return _PicSeries.piclist.Count
        End Get
    End Property
 
 
    ''' <summary>Bildstream aus der Liste entfernen</summary>
    ''' <param name="index">Index des Bildes</param>
    Public Sub RemoveAt(ByVal index As Integer)
        _PicSeries.RemoveAt(index)
    End Sub
 
    ''' <summary>Abfrage eines Bildes </summary>
    ''' <param name="Index">Bildindex (nullbasiert)</param>
    Default Public ReadOnly Property GetBitmap(ByVal Index As Integer) As Bitmap
        Get
            Return New Bitmap(_PicSeries.piclist(Index))
        End Get
    End Property
 
    ''' <summary>Pad/Name der geladenen Bilddatei</summary>
    ''' <param name="index">BildIndex (nullbasiert)</param>
    Public ReadOnly Property Bildpfad(ByVal index As Integer) As String
        Get
            Return _PicSeries.picpath(index)
        End Get
    End Property
 
    ''' <summary>Speichern der Bilderliste</summary>
    ''' <param name="File">Datei</param>
    ''' <returns>Alles OK?</returns>
    Public Function Save(ByVal File As String) As Boolean
        Try
            Using fs As New FileStream(File, _
               FileMode.OpenOrCreate, FileAccess.Write, FileShare.None)
                Dim bf As New _
                  System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
                bf.Serialize(fs, _PicSeries)
            End Using
            Return True
        Catch ex As System.Exception
            Return False
        End Try
    End Function
 
    ''' <summary>Laden der Bilderliste</summary>
    ''' <param name="File">Datei</param>
    ''' <returns>Alles OK?</returns>
    Public Function FromFile(ByVal File As String) As Boolean
        Try
            Using fs As New FileStream(File, _
               FileMode.Open, FileAccess.Read, FileShare.Read)
                Dim bf As New _
                  System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
                _PicSeries.Dispose()
                _PicSeries = CType(bf.Deserialize(fs), PicSeries)
            End Using
            _PicSeries.InitEncoder()
            Return True
        Catch ex As System.Exception
            Return False
        End Try
    End Function
 
    Public Sub Dispose()
        _PicSeries.Dispose()
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Arbeitsspeicher zu klein bei ImageList-Füllung2.710Caddy23.01.12 21:24
Re: Arbeitsspeicher zu klein bei ImageList-Füllung2.067Caddy23.01.12 22:21
Re: Arbeitsspeicher zu klein bei ImageList-Füllung2.052ModeratorFZelle24.01.12 11:22
Re: Arbeitsspeicher zu klein bei ImageList-Füllung2.054Caddy24.01.12 11:45
Re: Arbeitsspeicher zu klein bei ImageList-Füllung2.111Manfred X24.01.12 11:52
Re: Arbeitsspeicher zu klein bei ImageList-Füllung2.042Caddy24.01.12 12:00
Re: Arbeitsspeicher zu klein bei ImageList-Füllung2.064ModeratorFZelle24.01.12 12:52
Re: Arbeitsspeicher zu klein bei ImageList-Füllung2.098Caddy24.01.12 13:49
Re: Arbeitsspeicher zu klein bei ImageList-Füllung2.056Manfred X24.01.12 14:01
Re: Arbeitsspeicher zu klein bei ImageList-Füllung2.031Caddy24.01.12 14:23
Re: Arbeitsspeicher zu klein bei ImageList-Füllung2.043Manfred X24.01.12 14:46
Re: Arbeitsspeicher zu klein bei ImageList-Füllung2.063Caddy24.01.12 16:09
Re: Arbeitsspeicher zu klein bei ImageList-Füllung2.012Manfred X24.01.12 16:33
Re: Arbeitsspeicher zu klein bei ImageList-Füllung2.028Caddy24.01.12 17:13
Klasse Picseries: Bilderliste in Memorystream2.323Manfred X24.01.12 18:45
Re: Klasse Picseries: Bilderliste in Memorystream2.053Caddy24.01.12 19:52
Klasse PicList: Serialisierung2.086Manfred X24.01.12 18:47

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-2025 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