-
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
-
22.06.08 15:39 #32
- 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
-
meinst du das mit Parameter?
Namespace: System.IOCode csharp:1
fs = new FileStream(SaveFileDialog1.FileName, FileMode.Create);
-
22.06.08 16:24 #34
- 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
-
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.
-
22.06.08 17:03 #36
- 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
-
Wasserschaum um 3D Objekte erzeugen
Von Smulpa2k im Forum Cinema 4DAntworten: 6Letzter Beitrag: 15.08.09, 15:54 -
mehrere Objekte zeichnen und verschieben
Von twista im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 01.08.09, 02:44 -
OpenGL Objekte nebeneinander zeichnen
Von hury im Forum C/C++Antworten: 0Letzter Beitrag: 11.06.08, 20:46 -
[C#]GDI+ objekte über Windowsformselemente zeichnen
Von Catscrash im Forum .NET Windows FormsAntworten: 0Letzter Beitrag: 07.05.07, 15:12 -
Objekte in einer ListBox abhängig von deren Status zeichnen
Von maxpower24 im Forum C/C++Antworten: 1Letzter Beitrag: 14.12.05, 09:25



2Danke

Zitieren
Login





