algorytm.org

Implementacja w C/C++

Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Sepia - Implementacja w C/C++
Ocena użytkownikóww: *****  / 5
SłabyŚwietny
Nadesłany przez Dariusz Rorat, 09 sierpnia 2010 22:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

Sepia - Builder/Unit1.cpp:
//Sepia
//Dariusz Rorat
//www.algorytm.org
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
long color1,color2;
BYTE r,g,b,rr,gg;
int h,w;
int depth;
depth=CSpinEdit1->Value;
  for (h = 0 ; h< Image1->Height;h++)
  {
    for (w = 0 ; w < Image1->Width-1; w++)
    {
    //konwersja na odcienie szarosci
    color1=ColorToRGB(Image1->Canvas->Pixels[w][h]);

    r=GetRValue(color1);
    g=GetGValue(color1);
    b=GetBValue(color1);
    color2=(r+g+b) / 3;
    color2=RGB(color2,color2,color2);
    //konwersja do sepii
    if (RadioGroup1->ItemIndex==1)   //itemindex=1 - sepia
      {
        color1=color2;
     	r=GetRValue(color1);
		g=GetGValue(color1);
    	b=GetBValue(color1);
		rr=r+(depth*2);
    	gg=g+depth;
		if (rr <= ((depth*2)-1))
         	rr=255;
    	if (gg <= (depth-1))
        	gg=255;
        color2=RGB(rr,gg,b);
      }
    Image2->Canvas->Pixels[w][h]=(TColor) color2;
    }

  }
}
//---------------------------------------------------------------------------
Dodaj komentarz