Visa bilder på bättre sätt (Directx, GPU?)

Permalänk

Visa bilder på bättre sätt (Directx, GPU?)

Är ny på C#, och använder mig just nu av Picturebox eller Panel för att visa bilder.
Och finns fungerar det.
Men, när man kommer till högre storlekar (800x600+, beror starkt på datorn också har ja märkt) så drar det efter rejält.
Problemet är att jag inte använder det för att visa en enda bild, utan jag använder som som en "film", alltså den uppdaterar bilden konstant på en gång när en ny bild kommit in.

Varför ja inte kör med en film, är för att det inte är en ren "film". Den har ingen fps direkt, och sen är latency ett starkt krav.

Hur som helst.

Ja försöker hitta ett alternativ för att kunna visa bilder i en konstant loop, och ja tänker, Directx eller liknande, eftersom dom använder GPU, och GPU va ja förstår ska vara extremt mycket bättre när det kommer till Bilder och liknande, en CPU.

Men som sagt är jag ny på C#, och min kunskap inom Directx är så liten som den kan bli.

Så är öppen för alla förslag:)

Permalänk
Medlem

Inte för att jag kan mycket om det själv, men du bör nog kika på DirectX eller OpenGL biblioteken och se vad de har för stöd för vad du vill göra (eller snarare hur enkelt det är att använda). Vanliga GUI-komponenter i C# är inte direkt gjorda för att sätta några prestandarekord vad gäller bildvisning, så jag tror nog att det är en återvändsgränd i ditt fall. Du kan ju även kolla på XNA. Förmodligen inte lika effektivt som att gå rakt på DirectX/OpenGL, men ska vad jag har hört vara ganska enkelt att använda.

Permalänk

Jo problemet är, att jag inte förstår mig på dom. Men tror det bör vara relativt simpelt.
enda ja vill är liksom.

Ha en ruta, visa en bild, ändra bilden och visa den.

Typ så, fast konstant då.

och jo som du säger är knappast picturebox prestandamonstret nr 1 för att visa x antal bilder per sekund.

Permalänk
Medlem

Läser du bilderna från en hårddisk innan de visas så är väl snarare det problemet?

Permalänk

nope, bilden skickas via nätverk och tas från minnet, så hårddisken tror ja aldrig används.

Permalänk
Avstängd

Winforms är hopplöst segt, använd WPF istället vilket använder DirectX under huven.

Visa signatur
Permalänk

läst om det, men jag har all kod klar typ, och eftersom ja inte kan WPF så vet ja inte hur det är.
Kan ja bara copy pasta koden och vara glad?

Permalänk
Hedersmedlem

Du vill alltså göra annorlunda men helst inte skriva någon ny kod? Lycka till!
Nu har du ju fått lite tips på vägar du kan prova om du vill snabba upp det hela. Det är bara till att sätta sig och koda!

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk

skriva ny kod på sjävla sättet att visa bild, sure.
Men helst inte skriva om allt från grunden.

Och jo men tipsen har ja vetat om, men vet inte hur man använder sig av Directx, tänkte om någon här visste nåt lätt sätt att bara visa bild.

Däremot WPF kanske är något, beroende på om man måste göra om allt eller inte.

Permalänk

Okej har skapat lagt till WPF, och lyckats få den att öppnas samtidigt som mitt winform program.
Finns det någon möjlighet att kunna ändra variabler(bakgrundsbild etc) via winform?
för isf bör det vara rätt simpelt.

Permalänk

Har nu försökt få igång det men förstår inte hur ja ska kunna vissa en bild i WPF och byta den via winform.
WPF har helt annat system på hur man ska göra saker, och finns inte sådär jätte mycket info kring det ja vill göra, vilket bör vara relativt lätt, bara visa bilder inget mer med det.

Permalänk
Avstängd
Permalänk
Medlem

Hej!

Ett sätt som är lite småfult men som garanterat kommer gå snabbt är att du laddar in alla bilder i olika pictureboxes som du lägger på varandra med visible false, sen gör du som så i loopen att du swappar visibility till true på den bild som ska visas vid en viss tidpunkt i loopen.

Ett annat alternativ är att du sätter ihop alla bilder till en lång bild och sen ändrar du bara position på den stora bilden i pictureboxen så att bara den del av bilden som du vill ska visas.

Hälsningar,
Micke

Visa signatur

Mazariner är najs.