我的 friend 被问到给定一张单色图像,在采访期间他被要求沿其中心 y 轴镜像图像之前,它是如何保存在字节数组中的。函数签名如下:
void mirrorImage(byte image[], int width, int height){
}
所以你可以看到图像的宽度和高度已经在签名中给出了。我想我可以通过逐行读取图像来操纵图像,保留一个计数器,只要我的计数器等于宽度,我就知道是时候读取下一行了。这是用字节数组存储图像的方式吗?我对图像处理或字节数组没有任何经验。谢谢!
编辑: 字节中的每一位代表一个像素。
最佳答案
因为它是单色的,所以我假设字节中的每一位代表一个像素。
您的方法很合理。只需确保反转每个字节中的位,以及反转行中的字节。
此外,如果宽度不是 8 的倍数,则必须将所有字节向左移动余数 (width mod 8
),并将溢出位从左移到就在这一行的对面。
关于c++ - 如何使用字节数组存储位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32954865/