Springen naar inhoud


- - - - -
C# 2015

"programma Werkt Niet Meer"



  • Log in a.u.b. om te beantwoorden
Er zijn 2 reacties in dit onderwerp

#1 thijs

thijs

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 539 berichten
    Laatst bezocht 19 sep 2016 20:53
  • LocatieOude Tonge

Geplaatst op 14 juli 2016 - 09:18

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)

Code:
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.

Code:
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:

Code:
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
Jeuj (:

#2 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 575 berichten
    Laatst bezocht 15 aug 2017 16:57
  • LocatieMechelen (BE)

Geplaatst op 14 juli 2016 - 18:27

Kun je niet wachten tot je programma volledig geladen is, volgens mij is dat het probleem.

Ik zien dat je op tweakers ook al gestart bent met een topic: https://gathering.tw...essages/1705693

Veranderd door Damic, 14 juli 2016 - 18:50.


#3 thijs

thijs

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 539 berichten
    Laatst bezocht 19 sep 2016 20:53
  • LocatieOude Tonge

Geplaatst op 17 augustus 2016 - 17:45

Hoi Damic,

Sorry voor het late antwoord..

Wat bedoel je hier precies mee?

Jaa dat klopt, er zat enige haast bij toen.

Groeten,
Thijs
Jeuj (:




0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[C# 2015] Untitled 1

Met dank aan PascalBianca die tot op heden alles bijhoud sinds anno dec 2010)
Met dank aan J├╝rgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
vbib.be - vbnet.be - vbdotnet.be - visualbasic.be