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?

Solaryzacja - Implementacja w C/C++
Ocena użytkownikóww: *****  / 1
SłabyŚwietny
Nadesłany przez Dariusz Rorat, 02 sierpnia 2010 10: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.

Solaryzacja - Builder/Unit1.cpp:
//Solaryzacja
//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;
double LUT[256];
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (OpenDialog1->Execute())
  Image1->Picture->LoadFromFile(OpenDialog1->FileName);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 int   i, j, r, g, b;
 TColor  col;
 int luminance;

luminance=CSpinEdit1->Value;
for (i=0 ; i<luminance;i++) LUT[i]=i; //solaryzacja
for (i=luminance ; i<=255;i++) LUT[i]=255-i;

for (j = 0 ; j<Image1->Height; j++)
   for (i = 0 ; i<Image1->Width; i++)
        {
            col = Image1->Canvas->Pixels[i][j];
            r = GetRValue(col);
            g = GetGValue(col);
            b = GetBValue(col);
            //zmien wartosc wedlug tablicy LUT
            col = (TColor)(LUT[r]) +
                    ((TColor)(LUT[g]) << 8) +
                    ((TColor)(LUT[b]) << 16);
            Image2->Canvas->Pixels[i][j] = col;
        }
}
//---------------------------------------------------------------------------
Dodaj komentarz