Dag vrienden,
Ik ben een programma aan het maken waarmee foto's gemaakt kunnen worden. Ik maak dit programma voor
het bedrijf waar ik werk. Deze foto's worden op een Pdf-bestand geplaatst, wat heel degelijk werkt.
Ik gebruik de library van Microsoft: Expression Encoder, om de webcam te kunnen gebruiken.
Het programma draait op een tablet met Windows 10.
Nu gebeurt het soms, dat wanneer de camera op start, of er een foto gemaakt moet worden (zie code),
dat het programma vast loopt en het beruchte "Programma werkt niet meer"-scherm verschijnt. Er wordt dan gezocht naar een oplossing voor het probleem, wat eindeloos duurt en niet werkt ;p
Nu heb ik geen flauw idee waar deze fout vandaan kan komen, of wat ik er aan moet doen. Ik krijg ook geen foutmelding, alleen het gegeven dat er ergens iets fout gaan, en wat het programma doet crashen.
Mijn code: (let niet te veel op hoe het geschreven is aub, tenzij daar het probleem ligt ;p)
Deze code wordt uitgevoerd wanneer de usercontrol waaruit de foto gemaakt wordt, wordt geladen. In het gros van de gevallen loopt dit gewoon prima.
Vervolgens kan er middels een knop een foto worden gemaakt. Dit gebeurt als volgt:
Ik heb geen idee waar ik moet beginnen met zoeken. Bovenstaande code heb ik verkregen uit de documentatie bij de library, en door zelf wat te knutselen.
Als jullie me zouden kunnen, heel graag!
Alvast bedankt en groeten,
Thijs
Ik ben een programma aan het maken waarmee foto's gemaakt kunnen worden. Ik maak dit programma voor
het bedrijf waar ik werk. Deze foto's worden op een Pdf-bestand geplaatst, wat heel degelijk werkt.
Ik gebruik de library van Microsoft: Expression Encoder, om de webcam te kunnen gebruiken.
Het programma draait op een tablet met Windows 10.
Nu gebeurt het soms, dat wanneer de camera op start, of er een foto gemaakt moet worden (zie code),
dat het programma vast loopt en het beruchte "Programma werkt niet meer"-scherm verschijnt. Er wordt dan gezocht naar een oplossing voor het probleem, wat eindeloos duurt en niet werkt ;p
Nu heb ik geen flauw idee waar deze fout vandaan kan komen, of wat ik er aan moet doen. Ik krijg ook geen foutmelding, alleen het gegeven dat er ergens iets fout gaan, en wat het programma doet crashen.
Mijn code: (let niet te veel op hoe het geschreven is aub, tenzij daar het probleem ligt ;p)
C#: snap.cs
1
2
3
4
5
| Mode Modus; LiveJob live; LiveDeviceSource source; Bitmap result; |
Deze code wordt uitgevoerd wanneer de usercontrol waaruit de foto gemaakt wordt, wordt geladen. In het gros van de gevallen loopt dit gewoon prima.
C#: snap.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| public void Initiate() { try { live = new LiveJob(); source = live.AddDeviceSource(((Checklist)this.Parent).WebCam, ((Checklist)this.Parent).Audio); SourceProperties sp = source.SourcePropertiesSnapshot(); panel1.Size = sp.Size; live.OutputFormat.VideoProfile.Size = new Size(sp.Size.Width, sp.Size.Height); source.PreviewWindow = new PreviewWindow(new System.Runtime.InteropServices.HandleRef(panel1, panel1.Handle)); live.ActivateSource(source); } catch (Exception c) { ((MainForm)this.ParentForm).Log("Foutmelding: " + c.Message.ToString()); MessageBox.Show(c.InnerException.ToString()); } } |
Vervolgens kan er middels een knop een foto worden gemaakt. Dit gebeurt als volgt:
C#: snap.cs
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
| try { Bitmap b = new Bitmap(panel1.Size.Width, panel1.Size.Height); using (Graphics g = Graphics.FromImage(B)) { Rectangle r = new Rectangle(); Point sp = panel1.PointToScreen(new Point(panel1.ClientRectangle.X, panel1.ClientRectangle.Y)); g.CopyFromScreen(sp, Point.Empty, panel1.Size); } panel1.BackgroundImage = b; XImage x = XImage.FromGdiPlusImage(B); button2.Enabled = true; live.StopEncoding(); live.RemoveDeviceSource(source); source.PreviewWindow = null; source = null; live = null; } catch (Exception ee) { MessageBox.Show(ee.Message); ((MainForm)this.ParentForm).Log("Foutmelding: " + ee.Message.ToString()); } |
Ik heb geen idee waar ik moet beginnen met zoeken. Bovenstaande code heb ik verkregen uit de documentatie bij de library, en door zelf wat te knutselen.
Als jullie me zouden kunnen, heel graag!
Alvast bedankt en groeten,
Thijs