[C#] Panel als bitmap opslaan

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Timons106
  • Registratie: Februari 2010
  • Laatst online: 04-06 09:07
Ik ben dus begonnen met het leren van C#, het eerste wat ik wilde proberen is een paint programma maken.
Het is me aardig gelukt om met verschillende kleuren op het panel te tekenen en om het panel te clearen, alleen kom ik er niet uit hoe ik de panel als een bitmap (BMP) bestand kan opslaan.

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {

        SolidBrush s;

        public Form1()
        {
            InitializeComponent();
            g = panel1.CreateGraphics();
        }
        bool canPaint = false;
        Graphics g;
        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            canPaint = true;
        }

        private void panel1_MouseUp(object sender, MouseEventArgs e)
        {
            canPaint = false;
        }

        private void panel1_MouseMove(object sender, MouseEventArgs e)
        {
            if (canPaint)
            {
                g.FillEllipse(s, e.X, e.Y, Convert.ToInt32(toolStripTextBox1.Text), Convert.ToInt32(toolStripTextBox1.Text)); 
                
            }
        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            g.Clear(Color.White);
        }

        private void blackToolStripMenuItem_Click(object sender, EventArgs e)
        {
            s = new SolidBrush(Color.Black);
        }

        private void blueToolStripMenuItem_Click(object sender, EventArgs e)
        {
            s = new SolidBrush(Color.Blue);
        }

        private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {

        }

        private void redToolStripMenuItem_Click(object sender, EventArgs e)
        {
            s = new SolidBrush(Color.Red);
        }

        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            panel1.Image.Save("D:\test.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
        }
    }
}


Het probleem is dus dat de code van toolStripButton2 niet werkt omdat Windows.Forms.Panel de definitie image niet kent.

Weet iemand wat ik hier fout doe? :9

Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Is het niet makkelijker om op een Canvas te tekenen?

Acties:
  • 0 Henk 'm!

  • Timons106
  • Registratie: Februari 2010
  • Laatst online: 04-06 09:07
Megamind schreef op zondag 13 mei 2012 @ 16:42:
Is het niet makkelijker om op een Canvas te tekenen?
Ik gebruik Windows Forms hé ;). Daar kan je (zo ver ik weet) geen canvas in gebruiken, alleen in WPF.

Acties:
  • 0 Henk 'm!

  • ThaStealth
  • Registratie: Oktober 2004
  • Laatst online: 11-09 10:19
Timons106 schreef op zondag 13 mei 2012 @ 16:46:
[...]

Ik gebruik Windows Forms hé ;). Daar kan je (zo ver ik weet) geen canvas in gebruiken, alleen in WPF.
Zekers wel, je zit dan met GDI te prutsen en niet met direct x, maar het kan wel.
Google maar eenkoppig graphics c# krijg je ondermeer deze link waar het eea duidelijk verteld word:

http://www.techotopia.com...awing_Graphics_in_C_Sharp

Mess with the best, die like the rest


Acties:
  • 0 Henk 'm!

  • Phyxion
  • Registratie: April 2004
  • Niet online

Phyxion

_/-\o_

Volgende keer eens Google proberen? Eerste hit:
http://stackoverflow.com/.../saving-panel-as-an-image

That said, zoals hierboven al aangegeven zou ik niet een Panel gebruiken.

[ Voor 24% gewijzigd door Phyxion op 13-05-2012 17:31 ]

'You like a gay cowboy and you look like a gay terrorist.' - James May


Acties:
  • 0 Henk 'm!

  • Timons106
  • Registratie: Februari 2010
  • Laatst online: 04-06 09:07
Phyxion schreef op zondag 13 mei 2012 @ 17:30:
Volgende keer eens Google proberen? Eerste hit:
http://stackoverflow.com/.../saving-panel-as-an-image

That said, zoals hierboven al aangegeven zou ik niet een Panel gebruiken.
Heb ik inderdaad gezien, ik Google altijd voor dat ik een forum post plaats.

Toch kom ik er niet uit, zoals ik al zei ben ik net begonnen, en dus nog een complete noob in C#, dus enige hulp zou echt heel mooi zijn :).
Zekers wel, je zit dan met GDI te prutsen en niet met direct x, maar het kan wel.
Google maar eenkoppig graphics c# krijg je ondermeer deze link waar het eea duidelijk verteld word:

http://www.techotopia.com...awing_Graphics_in_C_Sharp
Ah, bedankt! Dat ziet er goed uit!
Toch wil ik eerst hier uit komen, dus alle hulp is welkom!

[ Voor 55% gewijzigd door Timons106 op 13-05-2012 17:55 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Wáár kom je dan niet uit? Zeggen dat je de link met een kant-en-klare oplossing gezien hebt maar "er niet uitkomt" helpt nou niet echt. Wat snap je er niet aan?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Timons106
  • Registratie: Februari 2010
  • Laatst online: 04-06 09:07
NMe schreef op zondag 13 mei 2012 @ 17:56:
Wáár kom je dan niet uit? Zeggen dat je de link met een kant-en-klare oplossing gezien hebt maar "er niet uitkomt" helpt nou niet echt. Wat snap je er niet aan?
Nou eerlijk gezegd, waar ik dat in moet vullen, ik heb het geprobeerd in te vullen bij de toolStripButton2_Click, ofwel als je op de save knop drukt, maar dan gebeurt er niks.

Acties:
  • 0 Henk 'm!

  • ThaStealth
  • Registratie: Oktober 2004
  • Laatst online: 11-09 10:19
Wat heb je ingevult en wat doet hij wel, crasht hij met een exception, roept hij die functie niet aan?
Wat zegt je debugger, tot welke regel krijg je het gedebugged?
Wat doe je daadwerlijk in de code?

Mess with the best, die like the rest

Pagina: 1