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

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

1

26.01.2008, 14:39

farbton/color setzen

wie kann man bei SDL
den farbton eines bildes(SDL_Surface) ändern
und wie kann man ein bild(SDL_Surface) komplett mit einer farbe "ausmalen"

2

26.01.2008, 14:44

SDL_FillRect
Mein Projekt: Rise of the Sylvan

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

26.01.2008, 15:23

Farbton ändern:
Musst du per Hand machen. Also Surface sperren (Lock) und alle Pixel per Hand manipulieren.

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

4

26.01.2008, 15:43

meinst du so:

C-/C++-Quelltext

1
2
3
4
5
6
7
SDL_Surface *bitmap;
SDL_Color color;
SDL_LockSurface(bitmap);
for (int x = 0;i < bitmap->w;i++){
  for (int y = 0;i < bitmap->h;i++)
     //und wie jetzt den farbton ändern

}

und was ist mit
SDL_SetColors()

Beneroth

Alter Hase

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

5

26.01.2008, 16:42

Zitat von »"David Scherfgen"«

Farbton ändern:
Musst du per Hand machen. Also Surface sperren (Lock) und alle Pixel per Hand manipulieren.


SDL hat ja schon ein paar Funktionalitäten weniger als DX, aber so primitiv dann doch nicht... :x :lol:

@kiba:

ich empfehle dir eher das hier:

C-/C++-Quelltext

1
2
3
4
5
6
7
SDL_Surface *bitmap;
SDL_Color color; 
bitmap = SDL_CreateRGBSurface(SDL_GetVideoSurface()->flags,100,100,SDL_GetVideoSurface()->format->BitsPerPixel,                                        SDL_GetVideoSurface()->format->Rmask,SDL_GetVideoSurface()->format->Gmask,                                        SDL_GetVideoSurface()->format->Bmask,SDL_GetVideoSurface()->format->Amask);

color = SDL_MapRGB(bitmap ->format,0,220,0);

DL_FillRect(bitmap, NULL, color);


Lade dir mal von http://libsdl.org/docs.php die html-Dokumentation von SDL runter. Du kannst auch das Wiki benutzen, das ist aber leider nicht immer ganz aktuell und vorallem fehlen Funktionen dort.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

26.01.2008, 17:00

Zitat von »"Beneroth"«

SDL hat ja schon ein paar Funktionalitäten weniger als DX, aber so primitiv dann doch nicht... :x :lol:

Aber wenn es darum geht, den Farbton eines Bilds zu verändern - so wie man das in Grafikprogrammen tun kann - kommst du nicht darum herum, das für jeden Pixel "per Hand" zu machen.
Was du da gepostet hast, füllt einfach nur die komplette Surface mit einer Farbe.
Das beantwortet seine zweite Frage, aber nicht seine erste.

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

7

27.01.2008, 01:48

und wofür ist dann
SDL_SetColors()

Anonymous

unregistriert

8

27.01.2008, 09:09

Zitat von »"kiba"«

und wofür ist dann
SDL_SetColors()
Siehe Doku. f'`8k

[ ] Autocogito


Gruß, TGGC (making great games since 1992)

Beneroth

Alter Hase

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

9

30.01.2008, 23:01

Zitat von »"David Scherfgen"«

Zitat von »"Beneroth"«

SDL hat ja schon ein paar Funktionalitäten weniger als DX, aber so primitiv dann doch nicht... :x :lol:

Aber wenn es darum geht, den Farbton eines Bilds zu verändern - so wie man das in Grafikprogrammen tun kann - kommst du nicht darum herum, das für jeden Pixel "per Hand" zu machen.
Was du da gepostet hast, füllt einfach nur die komplette Surface mit einer Farbe.
Das beantwortet seine zweite Frage, aber nicht seine erste.


Hast vollkommen recht, ich hab nicht richtig gelesen... :oops:

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

10

03.02.2008, 12:36

wenn ich jetzt alle pixel per hand füllen muss
gibt es vll eine formel/funktion womit man ermitel kann
welcher farbe jetzt da eingesetzt werden soll um den richtigen farbton zu bekommen

Werbeanzeige