Portfolio[UWM] Techniki Multimedialne / PIRO

Dodawanie i odejmowanie stałej od bitmapy

Zadanie
Zaimplementować funkcję dodającą i odejmującą stałą od bitmapy.

Obrazu wynikowym będzie rozjaśniony lub ściemniony obraz.

ma parametry funkcji:
  • _BitMap źródło obrazka,
  • _A stała o którą będziemy modyfikować obraz,
BitMap addConst(BitMap _BitMap, int _A)
{
	// utworzenie tablicy LUT
	// aby uniknąć niepotrzebnego liczenia. 
	int oLUT[256], oTemp;
	for(int i = 0; i < 256; i++)
		oLUT[i] = ((oTemp = i + _A) > 255) ? 255 : (oTemp < 0) ? 0 : oTemp;

	// utworzenie kopii bitmapy
	BitMap oNew = _BitMap; 
	oNew.Pixels = Clone(_BitMap);

	// proces przetwarzania 
	for(int y = 0; y < _BitMap.Height; y++)
		for(int x = 0; x < _BitMap.Width; x++)
		{
			Pix oPix = Get_PIX(x,y,_BitMap);
			oPix.Light = oLUT[oPix.Light];
			oPix.Red = oLUT[oPix.Red];
			oPix.Green = oLUT[oPix.Green];
			oPix.Blue = oLUT[oPix.Blue];
			Set_PIX(x,y,oPix,oNew);
		}

	return oNew;
}

  • Administracja