Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

1

23.05.2014, 20:46

C# Alternative zu Bitmap.SetPixel()

Hi,
ich verwende zurzeit Bitmap.SetPixel, um bestimmte Bildpunkte zu verändern. Diese Methode ist allerdings recht langsam, gibt es andere empfehlenswerte Möglichkeiten eine Bilddatei zu erstellen und jeden einzelnen Pixel-RGB-Wert festlegen zu können?

Danke für eure Hilfe.

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

3

23.05.2014, 20:57

Ok, danke. Ich werde es mal testen.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

23.05.2014, 21:27

LockBits ist um Welten schneller, wenn man viel zu bearbeiten hat. Aber leider nur im Debug. Im Release-Modus ist der Unterschied gar nicht so gravierend. Allerdings hängt das auch davon ab, was man genau tut.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

5

23.05.2014, 22:15

Ich will eine Art Wasserzeichen in Bilddateien einfügen, muss also nur wenige Prozent aller Pixel verändern. Denkst du, dass LockBits gar nicht so viel Geschwindigkeit bringt?
Wäre es vielleicht eine Option, wenn ich die Bilddatei in dieses Format umwandle, dann manuell die Werte in der Textdatei verändere und die Bilddatei dann zurück in ein gängiges Format wandle?

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

6

23.05.2014, 22:26

Keine Ahnung ob das schneller ist, aber einen Versuch wäre es Wert:
Mit Hilfe von Graphics.FromImage ein Graphics-Objekt holen und damit alles auf das Bild zeichnen.

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

7

23.05.2014, 22:54

Zitat

Denkst du, dass LockBits gar nicht so viel Geschwindigkeit bringt?

Es bringt Geschwindigkeit. Wieviel, hängt davon ab, was du sonst noch machst.
Du kannst ja mit der Methode auch wunderbar nur einen Bereich locken, wie du hoffentlich schon selbst in der Dokumentation nachgelesen hast.

Zitat

Wäre es vielleicht eine Option, wenn ich die Bilddatei in dieses Format umwandle, dann manuell die Werte in der Textdatei verändere und die Bilddatei dann zurück in ein gängiges Format wandle?

Ich dachte es geht um Geschwindigkeit? Wie kann ein komplexes Umwandeln in ein fragwürdiges Textformat, anpassen von Hand(?) und dann wieder ein aufwendiges Konvertieren wieder zurück in richtige Bilddaten. Außerdem, wie kämen die Daten in dieses komische Format? Ja richtig, wohl nur mit "LockBits" etc.. Ich sehe den Sinn nicht ganz im Kontext dieses Themas.

Im Zweifelsfall wäre natürlich Sylences Methode die bevorzugte. Allerdings natürlich nur bei gänigen Zeichenmethoden. Wenn das Wasserzeichen in Form ines Text ist, dann so sehr einfach, aber wenn es sich um keine grafische Methode handelt, eher nicht sinnvoll.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

24.05.2014, 07:53

Für sowas würde ich passende Draw-Operationen nehmen statt es selbst zu machen. Schon daher, weil es um ein Vielfaches sauberer und besser verständlich wäre. Natürlich nur, wenn das Wasserzeichen sichtbar sein soll. Ansonsten muss man vermutlich eh selbst an Bits rumfummeln und dafür ist LockBits genau richtig.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

CeDoMain

Alter Hase

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

9

24.05.2014, 14:02

LockBits ist um Welten schneller, wenn man viel zu bearbeiten hat. Aber leider nur im Debug. Im Release-Modus ist der Unterschied gar nicht so gravierend. Allerdings hängt das auch davon ab, was man genau tut.

Ist LockBits im Release langsamer oder SetPixel schneller im Release? Interessiert mich jetzt... :D
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

10

24.05.2014, 15:33

Er meinte, "SetPixel" wäre schneller.
Habe ich selbst aber noch nicht beobachtet.

Werbeanzeige