|
dev.gamez.lv Latvian Game Developers Community
|
View previous topic :: View next topic |
Author |
Message |
Valdo
Joined: 01 Nov 2006 Posts: 23
|
Posted: Sun Nov 18, 2007 2:35 pm Post subject: SDL Load BMP |
|
Tātad sākšu ar to ka es programmēju spēli pielietojot SDL. Bilžu ielādei izmantoju SDL_LoadBMP. Problēma ir tāda, ka man ir fons un es uz šī fona ielādēju bmp, kurā piemēram ir atēlots cilvēks. Bet šim cilvēkam, kurš ir nokļuvis uz mana fona, apkārt ir traucējoš balts četrstūris, lai gan loģiski domājot tā ir šis ielēdētās bildes sastāvdaļa. Tātad mans jautājums ir tāds: Vai nav kāda funkcija vai paņēmiens, ar kura palīdzību varētu nolasīt tikai to cilvēku no tās bildes, neņemot vērā balto krāsu viņam visapkārt, un tad šo bildi pārkopētu uz fona attēla.
Tad nu ja kādam tas ir zināms lūdzu palīdziet un pasakat kā to panākt?
|
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Nov 18, 2007 2:53 pm Post subject: |
|
Ir tāds jēdziens kā ColorKey - tu savai bildei norādi vienu konkrētu krāsas vērtību, kura tiks uztverta kā pilnīgi caurspīdīga, tb netiks zīmēta uz fona.
SDL'ā šo ColorKey konkrētajai surface uzstāda ar SDL_SetColorKey funkciju.
Advancētākā gadījumā katram pikselim var piekārtot Alpha vērtību no 0 līdz 255. 0 nozīmēs, ka pikselis ir pilnīgi caurspīdīgs (to nevajag zīmēt uz fona), un 255 nozīmēs, ka pikslelis ir pilnīgi necaurspīdīgs (to vajag zīmēt uz fona). Un jebkura cita vērtība norādīs pikseļa caurspīdīgumu, piemēram 128 - pikselis ir puscaurspīdīgs. Ar šo var panākt daudz vairāk efektus nekā tikai ar ColorKey. Alpha vērtību parasti glabā augšējos 8-bitos RGBA bildēs, vai arī kā atsevišķu bildi. Ir iespējams arī uzstādīt vienu konkrētu alpha vērtību visiem pikseļiem vienādu ar SDL_SetAlpha funkciju (ar to var panākt, piemēram, surfaces lēnu izdzišanu vai arī parādīšanos). |
|
Back to top |
|
|
Vecis
Joined: 01 Jan 2007 Posts: 144
|
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|