tutorials.de Buch-Aktion 05/2012
Seite 3 von 3 ErsteErste 123
ERLEDIGT
NEIN
ANTWORTEN
35
ZUGRIFFE
6214
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #31
    Avatar von Spyke
    Spyke Spyke ist offline Capoeirista
    Registriert seit
    Oct 2002
    Beiträge
    931
    Ev. liegt es am OpenFile() Stream vom SaveFileDialog.

    Probiers einfach mal in dem du das FileStream selbst erstellst:
    Code :
    1
    
    fs = new FileStream(...)

    Und warum hast du die Überprüfung für DialogResult.OK entfernt?
    Code :
    1
    2
    
            SaveFileDialog1.ShowDialog()
            If SaveFileDialog1.FileName <> "" Then

    Und vielleicht mal im debuggen schauen welchen Wert SaveFileDialog1.FileName hält.

    Und Streams sind IDisposable, ruf also am besten noch zum Schluss meinStream.Dispose() auf
     
    www.iv-interactive.de - Projektewebsite
    WikiParser - aktuelles Projekt

  2. #32
    Terminator2 Terminator2 ist offline Mitglied Brokat
    Registriert seit
    Aug 2005
    Beiträge
    256
    Hab ich auch schon vermutet, welche Parameter muss ich denn übergeben? Man benötigt ein Objekt, und da wüsste ich nicht wie ich das erstellen kann ohne mit der OpenFile Methode von dem Dialog...
    Werde gleich erstmal den Dialog jedes mal neu erzeugen.


    Gruß David
     

  3. #33
    Avatar von Spyke
    Spyke Spyke ist offline Capoeirista
    Registriert seit
    Oct 2002
    Beiträge
    931
    meinst du das mit Parameter?
    Code csharp:
    1
    
    fs = new FileStream(SaveFileDialog1.FileName, FileMode.Create);
    Namespace: System.IO
    Terminator2 bedankt sich. 
    www.iv-interactive.de - Projektewebsite
    WikiParser - aktuelles Projekt

  4. #34
    Terminator2 Terminator2 ist offline Mitglied Brokat
    Registriert seit
    Aug 2005
    Beiträge
    256
    Habe den Code ausprobiert, hat aber leider nichts genützt. Habe nun folgenden Code verwendet, in welchem ich den Dialog erst beim Button-Klick erzeuge:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            'SaveFileDialog einrichten:
            Dim SaveFileDialog1 As New SaveFileDialog
            SaveFileDialog1.Title = "Bild speichern"
            SaveFileDialog1.Filter = "JPEG-Dateiformat (*.jpg)|*.jpg|Windows Bitmap (*.bmp)|*.bmp|Graphics Interchange Format (*.gif)|*.gif|PNG-Dateiformat (*.png)|*.png|TIFF-Dateiformat (*.tif)|*.tif"
            SaveFileDialog1.FilterIndex = 1
     
            If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
                If SaveFileDialog1.FileName <> "" Then
                    Dim fs As System.IO.FileStream = New System.IO.FileStream(SaveFileDialog1.FileName, System.IO.FileMode.Create)
                    ' Saves the Image in the appropriate ImageFormat based upon the
                    ' file type selected in the dialog box.
                    ' NOTE that the FilterIndex property is one-based.
                    Dim Bild As Image = My.Resources._17052008109
     
                    Dim Puffer As Graphics = Graphics.FromImage(Bild)
                    Puffer = Objekte.SaveToImage(Bild, PictureBox1, Objekte.Element)
     
                    Select Case SaveFileDialog1.FilterIndex
                        Case 1
                            Bild.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg)
                        Case 2
                            Bild.Save(fs, System.Drawing.Imaging.ImageFormat.Bmp)
                        Case 3
                            Bild.Save(fs, System.Drawing.Imaging.ImageFormat.Gif)
                        Case 4
                            Bild.Save(fs, System.Drawing.Imaging.ImageFormat.Png)
                        Case 5
                            Bild.Save(fs, System.Drawing.Imaging.ImageFormat.Tiff)
                    End Select
                    fs.Close()
                    Puffer.Dispose()
                    Bild.Dispose()
                End If
            End If
        End Sub

    Jetzt kann ich nacheinander die Bilder in beliebigen Formaten speichern. Hier noch eine Übersicht der Dateigrößen bei einer Auflösung von 2484x1418Pixel:

    JPEG: 0,466MB
    BMP: 10MB
    GIF: 0,912MB
    PNG: 6,20MB
    TIFF: 8,96MB

    Ich denke mal, dass die Werte ok sind, ist eben ein 24-Bit Bild mit 300dpi.



    Gruß David
     

  5. #35
    Avatar von Spyke
    Spyke Spyke ist offline Capoeirista
    Registriert seit
    Oct 2002
    Beiträge
    931
    da fehlt noch SaveFileDialog1.Dispose()
    Und noch beim ShowDialog den Owner (dein Formular) übergeben.

    Zwar schon komisch warums vorhin nicht funktioniert hat, aber wenns nu läuft.
     
    www.iv-interactive.de - Projektewebsite
    WikiParser - aktuelles Projekt

  6. #36
    Terminator2 Terminator2 ist offline Mitglied Brokat
    Registriert seit
    Aug 2005
    Beiträge
    256
    So hab die Sachen noch reingeschrieben. Schon merkwürdig manchmal, aber irgendeinen Grund wirds gehabt haben...


    Gruß David
     

Ähnliche Themen

  1. Wasserschaum um 3D Objekte erzeugen
    Von Smulpa2k im Forum Cinema 4D
    Antworten: 6
    Letzter Beitrag: 15.08.09, 15:54
  2. mehrere Objekte zeichnen und verschieben
    Von twista im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 01.08.09, 02:44
  3. OpenGL Objekte nebeneinander zeichnen
    Von hury im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 11.06.08, 20:46
  4. [C#]GDI+ objekte über Windowsformselemente zeichnen
    Von Catscrash im Forum .NET Windows Forms
    Antworten: 0
    Letzter Beitrag: 07.05.07, 15:12
  5. Antworten: 1
    Letzter Beitrag: 14.12.05, 09:25