【问题标题】:How can we use the colormatrix only a part of image rather than whole image?我们如何才能只使用图像的一部分而不是整个图像?
【发布时间】:2010-11-16 10:54:30
【问题描述】:

我知道颜色矩阵的使用。但这适用于整个图像。有什么方法可以只处理图像的一部分而不是整个图像。

例如,我想只给出图像边界区域的亮度。

我正在使用 c#。

【问题讨论】:

    标签: c# vb.net image-processing gdi+ colormatrix


    【解决方案1】:

    鉴于 ColorMatrix 仅适用于单个颜色矢量/像素,“所有”您需要做的就是仔细选择像素,使其符合您的标准。

    已经有一段时间了,但是如果您逐行扫描像素,则可以转换整个第一行和最后 n 行以及所有其他行的第一列和最后 n 列。

    【讨论】:

      【解决方案2】:

      如果:

      • bitmap1 是您的原始位图,
      • bitmap2 是新的位图,
      • new Rectangle(100, 50, 20, 20) 是您想要更改为的 Rectangle 制作,
      • yourImageAtributes 是 ImageAttributes 的对象(希望你知道 如何使用):
      位图 bitmap2 = new Bitmap(bitmap1.Width, bitmap1.Height);
      
      //将bitmap1复制到bitmap2
      Graphics.FromImage(bitmap2).DrawImage(bitmap1, 0, 0);
      
      //使用自己的图像属性(ColorMatrix等)将bitmap1的一部分复制到bitmap2
      Graphics.FromImage(bitmap2).DrawImage(bitmap1, new Rectangle(100, 50, 20, 20), 100, 50, 20, 20, GraphicsUnit.Pixel, yourImageAttributes);

      如果你只想要边框,你可以先改变整个图像,然后将原始图像的矩形复制到里面。

      【讨论】:

        猜你喜欢
        • 2021-11-05
        • 2020-12-05
        • 2013-04-24
        • 1970-01-01
        • 2019-07-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-22
        相关资源
        最近更新 更多