各位大大好,我想請問一個問題
我開完圖檔後,要做灰階化
但是不知道為什麼,圖的寬只會處理到與高一樣的大小
例我要處理400*300的圖,但是灰階化只做了300*300的大小
不知道程式哪裡有問題,麻煩高手指點一下
附上圖檔
![](http://delphi.ktop.com.tw/loadfile.php?TOPICID=19594752&CC=438228)
這是錯誤的結果:
![](http://delphi.ktop.com.tw/loadfile.php?TOPICID=19595065&CC=438235)
另外還有一個開圖檔的問題
就是我要開video分割出來的352*240的bmp圖檔
顯現時上半部的畫面都是黑的 只出現了下半部的畫面
不知道是不是BCB本身不能開的問題還是程式哪裡有錯
我用影像軟體把352*240sacle到400*300就可以正常的開啟
真是奇怪 附上圖檔
![](http://delphi.ktop.com.tw/loadfile.php?TOPICID=19593813&CC=438207)
程式show出來的影像:
![](http://delphi.ktop.com.tw/loadfile.php?TOPICID=19594439&CC=438221)
void __fastcall TForm1::OpneImage1Click(TObject *Sender)
{
if (!OpenPictureDialog1->Execute()) return;
FileName1 = OpenPictureDialog1->FileName; Image1->Picture->LoadFromFile(FileName1);
Image_Height = Image1->Height;
Image_Width = Image1->Width;
GetBitmap();
}
//-------------------------------------------------------------------- void __fastcall TForm1::GetBitmap(void)
{
Data = new long*[Image_Height];
Data_temp = new long*[Image_Height];
for(int j = 0; j < Image_Height; j++)
{
Data[j] = new long[Image_Width];
Data_temp[j] = new long[Image_Width];
for(int i = 0; i < Image_Width; i++)
Data[j][i] = Data_temp[j][i]= (Image1->Canvas->Pixels[j][i])&0xff; } } //-------------------------------------------------------------------- void __fastcall TForm1::SetBitmap(void)
{
for(int j = 0; j < Image_Height; j++)
for(int i = 0; i < Image_Width; i++) Image1->Canvas->Pixels[j][i] = TColor(RGB(Data[j][i],Data[j][i],Data[j][i])); }
//-------------------------------------------------------------------- void __fastcall TForm1::GrayClick(TObject *Sender)
{ for(int j = 0; j < Image_Height; j++)
for(int i = 0; i < Image_Width; i++)
{
Data[j][i] = Data[j][i] - (Data[j][i]%32);
}
SetBitmap(); } 發表人 - yauyau 於 2004/12/30 21:32:51