mirror of
https://github.com/GRRLIB/GRRLIB.git
synced 2024-11-22 15:02:20 +00:00
[ADD] Added sepia function
This commit is contained in:
parent
f57e01bcfe
commit
b6e0bef531
2 changed files with 32 additions and 2 deletions
|
@ -74,15 +74,42 @@ void GRRLIB_BMFX_Grayscale (const GRRLIB_texImg *texsrc,
|
||||||
for (x = 0; x < texsrc->w; x++) {
|
for (x = 0; x < texsrc->w; x++) {
|
||||||
color = GRRLIB_GetPixelFromtexImg(x, y, texsrc);
|
color = GRRLIB_GetPixelFromtexImg(x, y, texsrc);
|
||||||
|
|
||||||
gray = (((color >> 24 & 0xFF)*77 + (color >> 16 & 0xFF)*150 + (color >> 8 & 0xFF)*28) / (255));
|
gray = (((color >> 24 & 0xFF)* 77 +
|
||||||
|
(color >> 16 & 0xFF)*150 +
|
||||||
|
(color >> 8 & 0xFF)* 28 ) / 255);
|
||||||
|
|
||||||
GRRLIB_SetPixelTotexImg(x, y, texdest,
|
GRRLIB_SetPixelTotexImg(x, y, texdest,
|
||||||
((gray << 24) | (gray << 16) | (gray << 8) | (color & 0xFF)));
|
((gray << 24) | (gray << 16) | (gray << 8) | (color & 0xFF)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
GRRLIB_SetHandle( texdest, 0, 0 );
|
GRRLIB_SetHandle(texdest, 0,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change a texture to sepia (old photo style).
|
||||||
|
* @see GRRLIB_FlushTex
|
||||||
|
* @param texsrc The texture source.
|
||||||
|
* @param texdest The texture grayscaled destination.
|
||||||
|
* @author elisherer
|
||||||
|
*/
|
||||||
|
void GRRLIB_BMFX_Sepia (const GRRLIB_texImg *texsrc, GRRLIB_texImg *texdest) {
|
||||||
|
unsigned int x, y;
|
||||||
|
u16 sr, sg, sb;
|
||||||
|
u32 color;
|
||||||
|
|
||||||
|
for (y = 0; y < texsrc->h; y++) {
|
||||||
|
for (x = 0; x < texsrc->w; x++) {
|
||||||
|
color = GRRLIB_GetPixelFromtexImg(x, y, texsrc);
|
||||||
|
sr = R(color)*0.393 + G(color)*0.769 + B(color)*0.189;
|
||||||
|
sg = R(color)*0.349 + G(color)*0.686 + B(color)*0.168;
|
||||||
|
sb = R(color)*0.272 + G(color)*0.534 + B(color)*0.131;
|
||||||
|
if (sr>255) sr=255; if (sg>255) sg=255; if (sb>255) sb=255;
|
||||||
|
GRRLIB_SetPixelTotexImg(x, y, texdest,
|
||||||
|
GRRLIB_GetColor(sr,sg,sb,color&0xFF));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
GRRLIB_SetHandle(texdest, 0,0);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Invert colors of the texture.
|
* Invert colors of the texture.
|
||||||
* @see GRRLIB_FlushTex
|
* @see GRRLIB_FlushTex
|
||||||
|
|
|
@ -56,6 +56,9 @@ void GRRLIB_BMFX_FlipV (const GRRLIB_texImg *texsrc,
|
||||||
void GRRLIB_BMFX_Grayscale (const GRRLIB_texImg *texsrc,
|
void GRRLIB_BMFX_Grayscale (const GRRLIB_texImg *texsrc,
|
||||||
GRRLIB_texImg *texdest) ;
|
GRRLIB_texImg *texdest) ;
|
||||||
|
|
||||||
|
void GRRLIB_BMFX_Sepia (const GRRLIB_texImg *texsrc,
|
||||||
|
GRRLIB_texImg *texdest) ;
|
||||||
|
|
||||||
void GRRLIB_BMFX_Invert (const GRRLIB_texImg *texsrc,
|
void GRRLIB_BMFX_Invert (const GRRLIB_texImg *texsrc,
|
||||||
GRRLIB_texImg *texdest) ;
|
GRRLIB_texImg *texdest) ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue