Pengembangan Efek

Untuk memrogram efek Anda harus sudah melakukan persyaratan awal untuk mengkompilasi kode sumber Cekli PhotoLab. Modal dasar untuk memrogram efek adalah pengetahuan dasar C++ dan algoritma pengolahan citra. Yang Anda lakukan hanya membuat dua file, yaitu file header dan kode untuk efek Anda.

Buat file dengan nama sesuai nama efek yang Anda bikin, misalnya negatif.

// nama file: efekkecerahan.h  

#ifndef _EFEK_KECERAHAN_H_
#define _EFEK_KECERAHAN_H_

#include "general.h"
#include "effect.h"

class cpEfekKecerahan: public cpEffectBase
{
    class cpPerintahKecerahan: public cpEffectCommand
    {
    public:
        int m_Kecerahan;
    };

public:
   cpEfekKecerahan();
    ~cpEfekKecerahan();
    HRESULT ProcessImage(cpImage& image, cpEffectCommand* command);
    HRESULT Run(cpImage& image);
private:
    cpEfekKecerahan* cmd;
};

#endif

// nama file: efekkecerahan.h
 #include "testeffect.h"

cpTestEffect::cpTestEffect()
{
Init(wxT("Test Effect"), wxT("This is for testing the effect000."));
}

cpTestEffect::~cpTestEffect()
{
}

HRESULT cpTestEffect::ProcessImage(cpImage& image, cpEffectCommand* command) /*!< The main function to calculate the effect. */
{
cpTestEffectCmd* cmd = (cpTestEffectCmd*) command;
int brgt = cmd->brightness;
int w = image.GetWidth();
int h = image.GetHeight();
for (int x = 0; x < w; x++)
for (int y = 0; y < h; y++)
{
image.SetRGB(x, y, image.GetRed(x,y) + brgt, image.GetGreen(x,y) + brgt, image.GetBlue(x,y) + brgt);
}
Preview(image);
return cpR_OK;
}

HRESULT cpTestEffect::Run(cpImage& image) /*!< This function is the main loop for derived class. (return OK or Cancel) */
{
cmd = new cpTestEffectCmd;
cmd->brightness = 10;
//ProcessImage(image, cmd);
SubmitEffect(cmd);
//delete cmd;
return cpR_OK;
}

 

 

Trackback URL for this post:

http://cekli.com/id/trackback/44