【问题标题】:How to clip a rectangle from a tiff?如何从 tiff 中剪切一个矩形?
【发布时间】:2010-03-08 22:24:28
【问题描述】:

我有一个 C# 中的 Winforms Gui,它允许用户在 tiff 的显示器上绘制一个矩形并保存位置、高度、宽度等。 基本上,我想要做的是获取矩形的保存位置、高度和宽度,并将该区域剪辑成一个 sep。然后可以传递给 sep 的位图。仅 OCR 位图的新剪辑的方法。 最好的方法是什么?

【问题讨论】:

    标签: c# winforms bitmap


    【解决方案1】:

    使用 Graphics.DrawImage() 复制源图像的选择部分。你需要the overload,它带有一个源矩形和一个目标矩形。通过 Graphics.FromImage() 在与矩形大小相同的新位图上创建 Graphics 实例。

        public static Bitmap CropImage(Image source, Rectangle crop) {
            var bmp = new Bitmap(crop.Width, crop.Height);
            using (var gr = Graphics.FromImage(bmp)) {
                gr.DrawImage(source, new Rectangle(0, 0, bmp.Width, bmp.Height), crop, GraphicsUnit.Pixel);
            }
            return bmp;
        }
    

    【讨论】:

    • 在缩放原始图像的显示时,还要确保以相对百分比与绝对百分比管理裁剪矩形。
    【解决方案2】:

    使用Bitmap.Clone() 创建裁剪区域的副本。

    public Bitmap ClipBitmap(Bitmap src, Rectangle crop)
    {
      return src.Clone(crop, src.PixelFormat);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-17
      • 2013-11-23
      • 1970-01-01
      • 1970-01-01
      • 2015-06-10
      相关资源
      最近更新 更多