我正在嘗試撰寫一些 C 來創建 256x256 正方形的 1048x1048x8 位矩陣。第一個的灰度值應該是 0,而最后一個應該是 255。這是我到目前為止所嘗試的。任何反饋表示贊賞。第一張圖片是我的結果。二是所愿。[1]:
uj5u.com熱心網友回復:
像素資料按行順序寫入。所以寫 256x256 的塊是行不通的。(您可以通過認為 img[256][256] 與 img[256*256] 相同來考慮這一點)。為了做到這一點,你必須寫第一行的前 4 個塊,然后寫第二行的前 4 個塊,等等……(這里的塊是指 256x256 部分)。
我認為這段代碼應該這樣做:
for (int row = 0; row < 1024; row) {
for (int col = 0; col < 1024; col) {
// the part ((row / 256) * 4 (col / 256)) will go from 0 to 15
unsigned char color = ((row / 256) * 4 (col / 256)) * 16;
if (row % 256 == 0 || col % 256 == 0) {
// This will not draw last border
color = 0;
}
// If you need last border uncomment below, but will reduce last block size by one
/*
if (row == 1024 - 1 || col == 1024 - 1) {
color = 0;
}
*/
binaryFile.write((char*) &color, sizeof(color));
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/417714.html
標籤:
上一篇:有什么方法可以在std::string_view迭代器上使用std::remove_if嗎?
下一篇:從.txt檔案中讀取浮點數的問題
