//---------------------------------------------------------------------------
#include
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenDialog1->Execute())
{
Image1->Picture->LoadFromFile(OpenDialog1->FileName);
int r, g, b, color;
for(int i = 0; i < 256; i++)
{
for(int j = 0; j < 256; j++)
{
color = Image1->Picture->Bitmap->Canvas->Pixels[i][j];
r = color & 0xff;
g = (color>>8) & 0xff;
b = (color>>16) & 0xff;
image[i][j] = (r+g+b)/3;
}
}
for(int i = 0; i < 256; i++)
{
for(int j = 0; j < 256; j++)
{
Image2->Canvas->Pixels[i][j] = RGB(image[i][j], image[i][j], image[i][j]);
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
image = new unsigned char*[256];
for(int i = 0; i < 256; i++)
{
image[i] = new unsigned char[256];
}
}
//---------------------------------------------------------------------------
질문 1. jpg이미지를 불러온 후, 그 각각의 픽셀값에 접근하는 법을 잘 모르겠습니다.
질문 2. 그림을 불러온 후 직후 있는 이중 for문을 돌리면 그림이 다시 사라지는데 그 원인을 잘 모르겠습니다.
for문을 지우면 그림은 제대로 불러와 집니다.
|