gpt4 book ai didi

c# - 改进算法使其更快 - 从文件中扫描图像

转载 作者:太空狗 更新时间:2023-10-30 00:32:52 27 4
gpt4 key购买 nike

我的代码在这里可以工作,但需要多花几秒钟,对于更大的文件,需要更长的时间,我想知道是否有人可以查看我的代码并提出任何有助于加快速度的改进建议。

目的:

这是扫描pdf文件,搜索二维码的位图图片,返回二维码(解码)

private void ScanQRPdf(string imagePath)
{
foreach (var item in Directory.GetFiles(imagePath))
{
if (Path.GetExtension(item).ToLower() == ".png")
{
Bitmap b = new Bitmap(imagePath);
try
{
QRCodeDecoder decoder = new QRCodeDecoder();
String decodedString = decoder.decode(new QRCodeBitmapImage(b));
rtbpdfData.Text += decodedString + "\n";
}
catch (Exception ex)
{
}
}
}
}

static void AddQRTag(PdfSharp.Drawing.XGraphics gfx, int xPosition, int yPosition, string QRdata, string HRdata)
{
gfx.DrawRectangle(XBrushes.White, xPosition, yPosition, xPosition + 55, yPosition + 85);

PdfSharp.Drawing.XImage xImage =
PdfSharp.Drawing.XImage.FromGdiPlusImage(BuildQR(QRdata.ToUpper(), 3,
QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC, 2, QRCodeEncoder.ERROR_CORRECTION.M));
gfx.DrawImage(xImage, xPosition + 5, yPosition + 5, xImage.PixelWidth * .8, xImage.PixelWidth * .8);


XFont font = new XFont("OCR B", 6);
XTextFormatter tf = new XTextFormatter(gfx);
tf.Alignment = XParagraphAlignment.Left;


XRect layout = new XRect(xPosition + 5, yPosition + 55, 55, 30);
tf.DrawString(HRdata.ToUpper(), font, XBrushes.Black, layout, XStringFormats.TopLeft);
}

最佳答案

在代码中,你过去的一切都很好。问题一定出在 QRCodeDecoder.decode 函数中。如果您通过 Bitmap.GetPixel 函数逐像素扫描图像,将会浪费很多时间。更好的方法是使用不安全代码并将位图转换为 BitmapData。

关于c# - 改进算法使其更快 - 从文件中扫描图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15137747/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com