2011-08-21 107 views

回答

0

您提供的信息太少。首先,相機提供的圖像格式是什麼?它是一些RAW格式,JPEG或其他?

否則它編程(用C爲例子):

去的最佳方法是使用一些圖像加載庫(例如SDL_image),並且將圖像加載到內存中,未壓縮的RGB作爲目標格式。一旦你有一個未壓縮的RGB圖像格式,你可以不喜歡

// bufPtr points to the start of the memory containing the bitmap 
typedef unsigned char byte; 
struct rgb { byte red, green blue; } * colorPtr = bufPtr; 
for (int i = 0; i < bufSize; i++, bufPtr++) { 
    byte gray = (unsigned char) (((float) bufPtr->red * 0.3f + 
           (float) bufPtr->green * 0.59f + 
           (float) bufPtr->blue * 0.11f))/3.0f * 255.0f + 0.5f); 
    bufPtr->red = bufPtr->green = bufPtr->blue = gray; 
    } 

如果你不想代碼,你可以如使用GIMP,加載您的圖像並應用顏色菜單中的去飽和度。您可以安裝GIMP的ufraw插件以加載RAW格式的圖像。如果要以8位存儲整個顏色信息(並且不使用每個顏色通道8位),則GIMP中還有另一個選項用於減少顏色深度。

+0

感謝karx,實際上我試圖轉換從相機拍攝的jpg圖像。而我所需要做的就是轉換而不使用任何其他工具。 – Sivalingaraja

+0

我是否理解你:你想轉換圖像既不寫你自己的程序,也不使用任何工具(圖像編輯程序)?這是不可能的。我唯一能想到的另一個選擇是相機在拍照時可以選擇創建灰度圖像。但是,如果您已經有了jpeg圖像,則需要使用某種工具來轉換它們。 – karx11erx

相關問題