Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  VBasic / vb.net / vbs / wsh
  Imagelist als Bitmap speichern

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Imagelist als Bitmap speichern (1810 mal gelesen)
KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



Sehen Sie sich das Profil von KMassler an!   Senden Sie eine Private Message an KMassler  Schreiben Sie einen Gästebucheintrag für KMassler

Beiträge: 2657
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
Dell Precision 7540 mobile Workstation,
64GB, Quadro RTX 3000;
SWX2020 SP5;
SAP/PLM+ECTR;
DriveWorks Pro;
Programmierung: VBA, aktuell Visual Studio 2017/VB.Net

erstellt am: 16. Apr. 2015 14:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Experten,
ich habe mal wieder Probleme. Mit den ganzen Zeichen-, Mal-, Bitmap-, Image-, Graphics- usw.- Funktionen von VB.net stehe ich immer wieder auf Kriegsfuß!

Ich habe ein existierendes Programm, das aus einer Konfigurationsdatei die Namen von Bitmap-Dateien ausliest, diese liegen dann also als String-Array vor.

Nun will ich das Programm um diverse Dinge ergänzen, dazu verwende ich das SDK und die API von Solidworks.

Zur Darstellung im Befehlsmanager verlangt diese nun eine "IconList" in Form einer einzigen Bitmap-Datei (bmp oder png), in der eben alle einzelnen Bitmaps nebeneinander dargestellt sind.
Z.B. myCommandGroup.LargeIconList(Bitmapfilename)
Diese Gesamt-Bitmap habe ich aber nicht zur Verfügung.

Das heißt ich muss zur Laufzeit aus den einzelnen Bitmap-Dateien eine temporäre IconList-Bitmap-Datei erstellen.

Die Frage ist nur, wie kriege ich das hin?
Ich dachte mir, ich nutze die "Imagelist", füge der alle einzelnen Bitmaps mit
ImageList.Images.Add(Image.FromFile(Bitmapfilename))
hinzu.
Auf die einzelnen Bitmaps dieser Imagelist kann ich zugreifen mit
Imagelist.Images(index).
Das funktioniert.
Aber wie zaubere ich aus diesen x Einzelimages aus der Imagelist (oder auch ohne diese) ein Gesamt-Bitmap, in dem alle ursprünglichen schön nebeneinander liegen?

------------------
Klaus

www.al-ko.com | mein Gästebuch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

fritsrol
Mitglied
CAD-Systemingenieur


Sehen Sie sich das Profil von fritsrol an!   Senden Sie eine Private Message an fritsrol  Schreiben Sie einen Gästebucheintrag für fritsrol

Beiträge: 143
Registriert: 11.12.2002

Windows 10 64
Office 2013
Eplan P8 2.7 HF2
VS 2015
Medusa 2000i2

erstellt am: 16. Apr. 2015 15:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KMassler 10 Unities + Antwort hilfreich

Hallo Klaus,

probier's mal mit der Image.SaveAdd() Methode

Beispiel:
http://stackoverflow.com/questions/398388/convert-bitmaps-to-one-multipage-tiff-image-in-net-2-0

Gruß
Roland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



Sehen Sie sich das Profil von KMassler an!   Senden Sie eine Private Message an KMassler  Schreiben Sie einen Gästebucheintrag für KMassler

Beiträge: 2657
Registriert: 06.11.2000

erstellt am: 16. Apr. 2015 16:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke für den Tipp ...aber da steige ich aus.

Image.SaveAdd(EncoderParameters)

Das Beispiel ist leider in C-irgendwas, dazu kommt das völlig unverständliche Hin- und Her mit dem Parameter "EncoderParameters".
Was da wo wie in welche Parameter geschoben wird, ist eine mir total unverständliche Katastrofe.
Leider ist die Hilfe zu der Klasse EncoderParameters nicht wirklich erhellend, ich habe keine Ahnung, wie das anzuwenden ist.
Das Beispiel in der Hilfe ist da auch keine Hilfe.

Ich habe/möchte kein Jpeg, sondern eine Bitmap (bmp).

Zitat:
        Dim myEncoder As System.Drawing.Imaging.Encoder = System.Drawing.Imaging.Encoder.Quality
Was brauche ich bei Bmp anstatt "Quality"?

Zitat:
        ' Create an EncoderParameters object.
        ' An EncoderParameters object has an array of EncoderParameter
        ' objects. In this case, there is only one
        ' EncoderParameter object in the array.
Dim myEncoderParameters As New EncoderParameters(1)
In this case... na super. Und in meinem Fall? Und warum gerade "...As New EncoderParameters(1)" und nicht (2) oder (97)?
Zitat:
Dim myEncoderParameter As New EncoderParameter(myEncoder, 50&)
und was bedeuten hier die 50&? Oder 3 Zeilen weiter die 100&?

Und so weiter. Also für mich ist diese Hilfe total verwirrend, da wird nix klar.  
Ich habs mal so wie im Hilfe-Beispiel versucht einzubauen. Das image.save funktioniert, mit und ohne EncoderParameters, beim SaveAdd steigt er immer aus:
Allgemeiner Fehler in GDI+.

Vielleicht ist es ja heute auch nur zu schwül, aber ich befürchte fast, das ist nicht der Grund^^

------------------
Klaus

www.al-ko.com | mein Gästebuch

[Diese Nachricht wurde von KMassler am 16. Apr. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

HenryV
Mitglied
Konstrukteur, Engineering


Sehen Sie sich das Profil von HenryV an!   Senden Sie eine Private Message an HenryV  Schreiben Sie einen Gästebucheintrag für HenryV

Beiträge: 778
Registriert: 18.05.2005

SolidWorks 2020 x64 SP3.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 21H1
Microsoft Office 365 ProPlus
Microsoft Visual Studio Enterprise 2022

erstellt am: 16. Apr. 2015 17:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KMassler 10 Unities + Antwort hilfreich

Hallo Klaus

Combine several images to form a single image using C#
konvertiert nach vb.net
Code:
Public Class Form1

    Private Sub CombineImages(ByVal ParamArray inputFiles As String())
        ' TODO: You may want to add input checking here.
        Dim images As Image() = New Image(inputFiles.Length - 1) {}
        Dim image__1 As Image = Nothing
        Dim height As Integer = 0, width As Integer = 0

        Try
            For i As Integer = 0 To inputFiles.Length - 1
                images(i) = Image.FromFile(inputFiles(i))
                image__1 = images(i)
                height = Math.Max(height, image__1.Height)
                width += image__1.Width
            Next

            image__1 = New Bitmap(width, height)
            width = 0

            Using g As Graphics = Graphics.FromImage(image__1)
                g.Clear(SystemColors.AppWorkspace)

                For i As Integer = 0 To images.Length - 1
                    g.DrawImage(images(i), New Point(width, 0))
                    width += images(i).Width
                Next
            End Using

            ' You don't need to save this in order to use the in-memory object.
            ' img3.Save(finalImage, System.Drawing.Imaging.ImageFormat.Jpeg)

            PictureBox1.Image = image__1
        Finally
            For i As Integer = 0 To inputFiles.Length - 1
                If images(i) IsNot Nothing Then
                    images(i).Dispose()
                End If
            Next
        End Try
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim bmps(4) As String
        bmps(0) = "images\1.bmp"
        bmps(1) = "images\2.bmp"
        bmps(2) = "images\3.bmp"
        bmps(3) = "images\4.bmp"
        bmps(4) = "images\5.bmp"

        CombineImages(bmps)

    End Sub

End Class



[edit]Function InlineAssignHelper eliminiert, weil unnötig[\edit]

Gruss Andreas

------------------
21 ist nur die halbe Antwort.

[Diese Nachricht wurde von HenryV am 16. Apr. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



Sehen Sie sich das Profil von KMassler an!   Senden Sie eine Private Message an KMassler  Schreiben Sie einen Gästebucheintrag für KMassler

Beiträge: 2657
Registriert: 06.11.2000

erstellt am: 17. Apr. 2015 10:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Henry,

mal wieder(!) vielen herzlichen Dank!

Das funktioniert und ich habe es sogar verstanden (heute ist es auch weniger schwül  )

Dafür Maximum-Us 

Mit einer kleinen Anpassung bei der g.DrawImage-Methode werden die Bitmaps auch auf eine Einheitsgröße skaliert, perfekt!
   

------------------
Klaus

www.al-ko.com | mein Gästebuch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz