C++ 輸出PPM格式圖片文件


PPM簡介

學習圖形學時為了直觀地觀察結果,需要輸出圖片,而PPM是一種最簡單的圖片格式,非常適合新手使用。
PPM文件的內容大概是這樣的:

第一行固定為P3,代表寫入的是PPM格式的RGB圖像,除此之外還有PBM和PGM格式分別對應P1和P2,代表單色圖和灰度圖。
第二行兩個整數代表圖片的寬度高度
第三行代表像素值范圍,通常寫為255,代表每個顏色通道的值在0-255之間。

接下來每行三個整數代表一個像素各個顏色通道的值,總共有寬度*高度行。
順序按照從左上角開始,每行從左往右,然后從上往下逐行填充。

用C++輸出PPM圖片的示例代碼

int main()
{
	ofstream OutImage;
	OutImage.open("Image.ppm");
	int nx = 200;
	int ny = 100;
	OutImage << "P3\n" << nx << ' ' << ny << "\n255\n";
	for(int i = ny-1; i >= 0; i--)
	{
		for (int j = 0; j < nx; j++)
		{
			float r = (float)j / nx;
			float g = (float)i / ny;
			float b = 0.2;
			int ir = int(255.99 * r);
			int ig = int(255.99 * g);
			int ib = int(255.99 * b);
			OutImage << ir << ' ' << ig << ' ' << ib << '\n';
		}
	}
	return 0;
}

最后要查看PPM格式的圖片需要支持該格式的圖片查看器,我使用的是XnView。
結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM