ورود

View Full Version : سوال: پردازش تصوير در c++ Builder



aneshtain
یک شنبه 22 آذر 1388, 10:38 صبح
:گریه:خواهشن اگه كسي برنامه ذخيره و بازيابي تصاوير باينري يا همان سياه و سفيد رو داره كمكم كنه خيلي فوري

BORHAN TEC
پنج شنبه 26 آذر 1388, 23:23 عصر
سوالتون اصلاً واضح نيست!!!!
اگه منظورتون تبديل يك بيت مپ به يك بيت مپ با طيف رنگي خاكستري است كد زير:


/**********************To_Gray_Scalse************** ********/
Graphics::TBitmap *bm = new Graphics::TBitmap();
int MidColor,R,G,B;
bm->LoadFromFile("e:\\1.bmp"); // Enter Your File Name Here!
for (int x = 1; x <= bm->Width; x++)
for (int y = 1; y <= bm ->Height; y++){
R = GetRValue(bm->Canvas->Pixels[x][y]);
G = GetGValue(bm->Canvas->Pixels[x][y]);
B = GetBValue(bm->Canvas->Pixels[x][y]);
MidColor = RGB((R+G+B) / 3,(R+G+B) / 3,(R+G+B) / 3) ;
bm->Canvas->Pixels[x][y] = MidColor;
} // End of internal for
// End of outside for
bm->SaveToFile("e:\\2.bmp"); // Enter Your File Name Here!

و اگر منظورتون تبديل يك بيت مپ به يك بيت مپ به صورت سياه و سفيد است كد زير:


/********************To_Black_And_White************ ********/
Graphics::TBitmap *bm = new Graphics::TBitmap();
int MidColor,R,G,B;
bm->LoadFromFile("e:\\1.bmp"); // Enter Your File Name Here!
for (int x = 1; x <= bm->Width; x++)
for (int y = 1; y <= bm ->Height; y++){
R = GetRValue(bm->Canvas->Pixels[x][y]);
G = GetGValue(bm->Canvas->Pixels[x][y]);
B = GetBValue(bm->Canvas->Pixels[x][y]);
MidColor = RGB((R+G+B) / 3,(R+G+B) / 3,(R+G+B) / 3) ;
if (MidColor<=RGB(127,127,127))
bm->Canvas->Pixels[x][y] = 0x000000; // Black Color
else
bm->Canvas->Pixels[x][y] = 0xFFFFFF; // White Color
}
bm->SaveToFile("e:\\2.bmp"); // Enter Your File Name Here!


نميدونم، شايد منظورتون فرمت فايل bitmap يا JPEG و يا ... باشه.
به هر حال اگه كارتون راه نيفتاد دوباره پيام بفرستيد.