Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Måla upp bild snabbt

Postades av 2005-04-26 18:57:44 - Rasmus Ågren, i forum c# (c-sharp), Tråden har 14 Kommentarer och lästs av 753 personer

I mitt program skall bakgrunden bestå av en bild som är uppbyggd av information som finns i en array. Bilden skall vara 600*600 pixlar(vilket också arrayen med färginfo är). Bilden kommer att uppdateras ofta och flera hundra små objekt skall röra sig över bakgrunden. Min fråga är nu, hur gör jag detta bäst. Jag misstänker att det inte är en bra ide att måla den pixel för pixel med en loop och sen ha de små objekten som ImageBox eller så. Ska jag försöka lära mig DirectDraw (vilket kan bli svårt eftersom jag nyss börjat lära mig C#)? Finns det någon ActiveX grej som gör att jag kan ha det i massa lager? Alla tips är välkomna!


Svara

Sv: Måla upp bild snabbt

Postades av 2005-04-26 19:30:32 - Daniel Tellberg

måla pixel för pixel blir segt, eftersom att array kommer att innehålla 36000 värden om bilden är 600*600


Svara

Sv: Måla upp bild snabbt

Postades av 2005-04-26 19:30:36 - Göran Andersson

Gör ett Image-objekt som du ritar upp bakgrunden på. För att lägga dit objekten så kopierar du Image-objektet för bakgrunden och ritar dit objekten på kopian. Sedan är det bara att visa den färdiga bilden.


Svara

Sv:Måla upp bild snabbt

Postades av 2005-04-26 19:35:13 - Rasmus Ågren

Men bakgrunden uppdateras och förändras hela tiden. Jag tror även jag att det kommer gå för trögt pixel för pixel.


Svara

Sv: Måla upp bild snabbt

Postades av 2005-04-26 20:15:13 - Göran Andersson

Ja, då är du ju kokt... ;P

Det skulle ju vara om det finns något effektivare sätt att sätta pixlarnas färgvärde än att plotta dem... Jag har letat lite men inte hittat något...


Svara

Sv:Måla upp bild snabbt

Postades av 2005-04-26 20:31:03 - Rasmus Ågren

Men om man tänker sig ett genomsnittligt spel så ritas ju bilden upp och förändras hela tiden så det måste ju gå! Eller om man tittar på en film så uppdateras den 25 gånger i sekunden.


Svara

Sv: Måla upp bild snabbt

Postades av 2005-04-27 06:47:08 - Jenny Månsson

Om man ska göra spel så använder man inte C#. Det språket är inte till för krävande grafik.


Svara

Sv:Måla upp bild snabbt

Postades av 2005-04-27 09:35:03 - Rasmus Ågren

Ok, då får det väl bli DirectDraw då. Om någon vet något så säg gärna till för det kommer nog ta ett par dygn att lära sig :-)


Svara

Sv:Måla upp bild snabbt

Postades av 2005-04-27 10:46:07 - Andreas Håkansson

Jenny,

<b>Om man ska göra spel så använder man inte C#. Det språket är inte till för krävande grafik.</b>

Vågat uttalande. Att använda Managed DirectX 9 tillsammans med .NET Framework ger väldigt god prestanda. Visst skulle du inte kunna (med reservation) skriva de mest moderna spelen så som Halo 2 och Half-Life 2 - men extremt många spel skulle du kunna skriva på .NET Framework tillsammans med ett valfritt managed språk så som C# eller VB.NET


Svara

Sv: Måla upp bild snabbt

Postades av 2005-04-27 10:57:04 - Jenny Månsson

Ja visst, men mitt uttalande grundade sig på endast C# utan managed directx osv eftersom han inte nämnde att han använde sig utav några extra komponenter :)


Svara

Sv:Måla upp bild snabbt

Postades av 2005-04-27 10:59:12 - Andreas Håkansson

Jenny,

Oki - kan dock inte låta bli att påpeka att språket C# inte alls har något med prestanda att göra, vilket var en av de punkterna du förde fram - extra komponenter eller inte.


Svara

Sv: Måla upp bild snabbt

Postades av 2005-04-27 11:00:56 - Jenny Månsson

ok, men det är vad jag har hört, men jag kan givetvis ha fel eftersom jag inte använt C# för grafik....


Svara

Sv:Måla upp bild snabbt

Postades av 2005-04-27 11:06:20 - Andreas Håkansson

Jenny,

C#, VB.NET, Managed C++, Effiel.NET etc etc är enbart syntax. De kompileras samtliga till MSIL (Microsoft Intermediate Language) som är en form av plattformsoberoende assembly. Den koden i sig komplierad ytterligare en gång när du kör dit program (Just-In-Time kompliering) till Native (assembly) kod som exekveras på datorn.

Det som är den största boven med högprestanda grafik med managed code är minneshanterings metoden som .NET använder sig av - Garbage Collection. Man måste passa sig för att producera för många temp-objekt som fyller upp generationerna och tvingar fram minnesresningar etc. Men det finns väldokumenterade 3d spel-loopar som fungerar mycket bra i .NET tillsammans med Managed DirectX ..

Kontentan - I .NET har olika språk maginella, med stort M, skillnader på prestandan - det är omkringliggande saker som kan påverka den övergripande prestandan ut ett program, framförallt minnshanteringen.


Svara

Sv: Måla upp bild snabbt

Postades av 2005-04-27 14:52:20 - Oskar Johansson

Det ska finnas någon möjlighet att låsa en bitmap och få ut den i form av en array/sedan kunna stoppa tillbaks den förändrade arrayen


Svara

Sv:Måla upp bild snabbt

Postades av 2005-04-27 15:12:21 - Andreas Håkansson

Oskar,

Stämmer mycket bra. <b>GetPixel</b> och <b>SetPixel</b> kan (läs: är i princip alltid) mycket långsamt och då får man ta till med <b>LockBits</b> och klassen <b>BitmapData</b> för att direkt läsa bit informationen i en bild. Problemet med detta är att man börjar använda pekare, vilket gör att man får använda sig av t.ex <b>unsafe</b> i C# .. vips! så behöver programmet betydligt högre rättigheter för att få exekvera.

Mer information om detta kan ni läsa på Bob Powell's hemsida. Bob är för övrigt MVP för just GDI+ så han är en jäkel på sånt =) http://www.bobpowell.net/lockingbits.htm


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 165
27 952
271 704
1 819
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies