簡體   English   中英

C# 根據 bitmap 位置裁剪位圖

[英]C# cropping bitmaps depending on bitmap location

我有一個包含大量手寫調查頁面的 PDF 文件。 My C# application currently breaks each PDF page down into single Bitmap objects (each PDF page is a Bitmap object) and then uses various APIs to read the hand-written data from each Bitmap object and then enters the extracted data into a database.

我的問題是,為了讓我的 API 提取起作用,每個復選框和每個答案框都需要位於每個 Bitmap 中完全相同的 XY 像素位置。 因為這些 PDF 文件是掃描圖像,所以每個 PDF 頁面在任何方向上都可能偏離幾個像素,例如某些 PDF 頁面向左、右、頂部或底部偏離幾個像素

有誰知道是否可以根據每個 Bitmap 中的一些常數來裁剪 Bitmap? 例如(請參閱下面的 Bitmap 圖像),如果我可以裁剪每個 Bitmap 從每頁左上角中學學習中的“S”開始,那么每個 Bitmap 將在完全相同的位置進行裁剪每個復選框和答案框位於相同 XY 位置的問題。

任何意見,將不勝感激

編輯:我能想到的唯一可能的解決方案是遍歷每個像素,從左上角開始,直到它碰到一個黑色像素(這將是中學學習中的第一個“S”)。 然后我可以從這個位置裁剪 Bitmap 嗎?

在此處輸入圖像描述

我想出了一個類似於我上面提到的解決方案。 我掃描每個像素,直到它到達中學學習中“S”中的第一個像素。 我使用這個像素 XY 位置,然后從該位置開始裁剪一個具有固定高度和寬度的矩形。 我使用bm.GetPixel().GetBrightness()找出像素何時到達“S”。

            Bitmap bm = new Bitmap(@"C:\IronPDFDoc\2.png", true);

            bool cropFlag = false;
            int cropX = 0;
            int cropY = 0;

            for (int y = 0; y < 155; y++)
            {
                for (int x = 0; x < 115; x++)
                {
                    float pixelBrightness = bm.GetPixel(x, y).GetBrightness();
                    if (pixelBrightness < 0.8 && cropFlag == false)
                    {
                        cropFlag = true;
                        cropX = x;
                        cropY = y;
                    }
                }
            }

            Rectangle crop = new Rectangle(cropX, cropY, 648, 915);
            Bitmap croppedSurvey = new Bitmap(crop.Width, crop.Height);

            using (Graphics g = Graphics.FromImage(croppedSurvey))
            {
                g.DrawImage(bm, new Rectangle(0, 0, croppedSurvey.Width, croppedSurvey.Height),
                                 crop,
                                 GraphicsUnit.Pixel);
            }

            croppedSurvey.Save(@"C:\IronPDFDoc\croppedSurvey.png", ImageFormat.Png);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM