c++ - 如何删除位图中的像素?

标签 c++

我正在降低位图的分辨率。我在网站上找到了如下方法

平均所有周围像素的值,将该值存储在所选像素位置,然后删除所有周围像素。因此 4*6 矩阵变为 4 x 3 矩阵。

我正在通过这段代码访问像素

for(int y = 0; y < bmp.bmHeight; y++)   
  {      
      for(int x = 0; x < bmp.bmWidth; x++)     
      {         
          COLORREF rgb = dc.GetPixel(x, y);     
          BYTE r = GetRValue(rgb);       
          BYTE g = GetGValue(rgb);     
          BYTE b = GetBValue(rgb);            
          dc.SetPixel(x, y, RGB(r,g,b));      
      }   
  } 

告诉我如何删除像素?

最佳答案

您不能真正删除像素,位图是像素矩阵。相反,您应该制作一个具有预期大小的新位图,并将像素复制到其中。

关于c++ - 如何删除位图中的像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3122678/

相关文章:

c++ - 如何检测进程何时不再存在?

c++ - 在 Netbeans IDE 8.0.2 中使用(低于分数) "_"

c++ - 如何强制 GNU make 重新编译在具有不同 FLAGS 的两个目标中使用的相同目标文件

c++ - 通过字符串解析 double C++

c++ - 按值返回堆栈中的对象

c++ - 使用转换函数直接初始化

c++ - Visual Studio : Hotkey/way to step into f() in statement a()->f(b(), c(),d()) 直接

c++ - 不确定如何在我的主函数中调用我的类(编译)

C++ ifstream从linux到arduino

c# - 无法让 SAFEARRAY 与 Interop 一起工作