小弟有一段c++程序(C++ builder),能否转成delphi上的
void __fastcall TForm1::Button2Click(TObject *Sender)
{
//图象黑白化
TColor bgr=0;
TColor Cb,Cg,Cr;for (int i = 0; i < 256; i++)
for (int j = 0; j < 256; j++)
{
bgr=Image1->Canvas->Pixels[i][j];
Cb=bgr & 0xff;
Cg=bgr & 0xff00; Cg=Cg >> 8;
Cr=bgr & 0xff0000; Cr=Cr >> 16;
WORD w=(Cb+Cg+Cr)/3; Cb=(TColor)(w);
Cg=(TColor)(w << 8);
Cr=(TColor)(w << 16); bgr=Cb | Cg | Cr;
Image1->Canvas->Pixels[i][j] = bgr;
nData[i][j]=(int)Cb;
}//画直方图
unsigned int unSum=0;
int n;
//unsigned int unHisto[256];for(int i=0;i<256;i++) unHisto[i]=0;for (int i = 0; i < 256; i++)
for (int j = 0; j < 256; j++)
{
n=nData[i][j];
unHisto[n]=unHisto[n]+1;
} Image2->Canvas->Pen->Style = psSolid;
Image2->Canvas->Pen->Color = clGray;
for(int i=0;i<256;i++)
{
Image2->Canvas->MoveTo(0,i);
Image2->Canvas->LineTo(345,i);
} int x0=25,y0=238;//原点
int x1=305,y1=18;//轴终点
int x2=280,y2=38;//数据终点 Image2->Canvas->Pen->Color = clBlack; Image2->Canvas->MoveTo(x0,y0);
Image2->Canvas->LineTo(x1,y0); Image2->Canvas->MoveTo(x0,y0);
Image2->Canvas->LineTo(x0,y1); int m=0,nScale;
for (int i = 0; i < 256; i++)
{
if(m<unHisto[i]) m=unHisto[i];
} nScale=m;
for (int i = 0; i < 256; i++)
{
m=unHisto[i]*200/nScale; Image2->Canvas->MoveTo(x0+i,y0);
Image2->Canvas->LineTo(x0+i,y0-m);
}}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
//图象黑白化
TColor bgr=0;
TColor Cb,Cg,Cr;for (int i = 0; i < 256; i++)
for (int j = 0; j < 256; j++)
{
bgr=Image1->Canvas->Pixels[i][j];
Cb=bgr & 0xff;
Cg=bgr & 0xff00; Cg=Cg >> 8;
Cr=bgr & 0xff0000; Cr=Cr >> 16;
WORD w=(Cb+Cg+Cr)/3; Cb=(TColor)(w);
Cg=(TColor)(w << 8);
Cr=(TColor)(w << 16); bgr=Cb | Cg | Cr;
Image1->Canvas->Pixels[i][j] = bgr;
nData[i][j]=(int)Cb;
}//画直方图
unsigned int unSum=0;
int n;
//unsigned int unHisto[256];for(int i=0;i<256;i++) unHisto[i]=0;for (int i = 0; i < 256; i++)
for (int j = 0; j < 256; j++)
{
n=nData[i][j];
unHisto[n]=unHisto[n]+1;
} Image2->Canvas->Pen->Style = psSolid;
Image2->Canvas->Pen->Color = clGray;
for(int i=0;i<256;i++)
{
Image2->Canvas->MoveTo(0,i);
Image2->Canvas->LineTo(345,i);
} int x0=25,y0=238;//原点
int x1=305,y1=18;//轴终点
int x2=280,y2=38;//数据终点 Image2->Canvas->Pen->Color = clBlack; Image2->Canvas->MoveTo(x0,y0);
Image2->Canvas->LineTo(x1,y0); Image2->Canvas->MoveTo(x0,y0);
Image2->Canvas->LineTo(x0,y1); int m=0,nScale;
for (int i = 0; i < 256; i++)
{
if(m<unHisto[i]) m=unHisto[i];
} nScale=m;
for (int i = 0; i < 256; i++)
{
m=unHisto[i]*200/nScale; Image2->Canvas->MoveTo(x0+i,y0);
Image2->Canvas->LineTo(x0+i,y0-m);
}}
Cg=bgr & 0xff00; Cg=Cg >> 8;
Cr=bgr & 0xff0000; Cr=Cr >> 16;
WORD w=(Cb+Cg+Cr)/3;
这几行代码请重点提示一下