Suchergebnisse

Suchergebnisse 1-8 von insgesamt 8.

  • Benutzer-Avatarbild

    Hallo, ich arbeite immer noch an Bildverarbeitung. Das was ich im letzten Threads besprochen hatte, Hardwarebeschleunigung, habe ich jetzt mal verworfen, da ich nicht mit WPF arbeiten möchte und das mit Bitmaps nicht ganz so geht, an OpenGL etc. wollte ich mich jetzt auch noch nicht trauen, geht bisher nur um Lernzwecke. Dennoch möchte ich eine Methode haben, mit der sich gut und schnell arbeiten lässt. Bisher hatte ich Unsafe-Code und LockBits in einer Klasse, so wie hier in etwa: github.com/Lu…

  • Benutzer-Avatarbild

    @RodFromGermany Nein also der Memory-Leak bezieht sich auf 3. bei Marshal habe ich noch nicht auf Memory-Leaks geachtet. <T> bei Marshal ist eine Structure, deshalb PtrToStructure. So eine Structure besteht aus n Bytes. Wie meinst du verschiedene Tiefen?

  • Benutzer-Avatarbild

    @RodFromGermany So tief wie man möchte. Das Bild liegt ja in BGR im Array vor. Je nachdem wie groß dein Farbraum ist, kann n sein. Also ich würde sagen 1 bis 4, größere Farbräume habe ich jetzt noch nicht gesehen. Also wenn ich in die Speicherauslastung schaue geht es immer um 2 MB hoch. Rufe ich GetPixel nicht auf, passiert das nicht.

  • Benutzer-Avatarbild

    Hm ich dachte das wird automatisch vom GC entsorgt wenn es nicht mehr im scope ist. Wenn das zu nichts führt, kann ich später wenn ich zu Hause bin das Projekt mal posten.

  • Benutzer-Avatarbild

    Okay also muss ich mit GC.Collect() die arrays aufräumen? Als ich zuvor mit Structures gearbeitet habe, hatte ich das Problem nicht, da wurde alles immer direkt vom GC eingesammelt(trotz Stress). Desweiteren ist ja noch die Frage offen, ob Marshal.Copy oder so wie jetzt mit der Schleife.

  • Benutzer-Avatarbild

    Das ist doch auch nicht sehr schön, vorallem wenn andere Anwender die Klasse benutzen und Nichts von dem Memory-Leak wissen, wie soll man da darauf kommen GC.Collect() zu verwenden. Ich werde mal versuchen Marshal zu benutzen und die Zeit zu stoppen. Vielleicht bekomme ich dann ein paar Ergebnisse, unabhängig von der „Schönheit“ des Codes.

  • Benutzer-Avatarbild

    @jvbsl Danke für die ausführliche Erklärung, habe alles verstanden und es funktioniert auch, ohne "Memory-Leak". Ich habe aber noch ein paar generelle Fragen: Müssen die Structures generell mit Bytes aufgebaut sein, um sie mit Unsafe.Read<T> zu konvertieren? Also so: C#-Quellcode (7 Zeilen) Denn, wenn ich da int nehme, funktioniert das ganze nicht, da sagt es mir, mein Speicher ist beschädigt. Das andere: Was ist schneller beim rechnen: unsigned char oder int, ich habe nämlich nun schon oft Leut…

  • Benutzer-Avatarbild

    Okay, danke ja habe vergessen, dass int ja nicht ein Byte groß ist, mein IT-Lehrer würde mich umbringen. zu FieldOffset, das ist ein guter Hinweis, habe es mal ausprobiert, aber das war eigentlich nicht das was ich gemeint habe und das was ich gemeint habe ist ja nun eh hinfällig, also in dem Sinne, einfach nochmal danke