试试http://www.free-ocr.com/。当我的 IDE 在编辑器会话中崩溃而没有警告时,我已经使用它从屏幕抓取中恢复源代码。这显然取决于您在编辑器中使用的字体(我在 Delphi 中使用 Courier New 10pt)。我尝试使用 Google Docs,它会在您上传图像时对图像进行 OCR - 虽然 Google Docs 在扫描文档上非常好,但由于某种原因它在 Pascal 源上惨遭失败。
工作中的 FreeOCR 示例: 输入图像:

给了这个:
begin
FileIDToDelete := FolderToClean + 5earchRecord.Name ;
Inc (TotalFilesFound) ;
if (DeleteFile (PChar (FileIDToDelete))) then
begin
Log5tartupError (FormatEx (‘%s file %s deleted‘, [Annotation, Fi eIDToDelete])) ;
Inc (TotalFilesDeleted) ;
end
else
begin
Log5tartupError (FormatEx (‘Error deleting %s file %s‘, [Annotat'on, FileIDToDelete])) ;
Inc (TotalFilesDeleteErrors) ;
end ;
end ;
FindResult := 5ysUtils.FindNext (5earchRecord) ;
end ;
所以替换缩进是大部分工作,然后将所有5
的更改为大写S
。它也被 80 列标记处的垂直线弄糊涂了。幸运的是,大多数错误都会被编译器发现(引用字符串中的错误除外)。
很遗憾,FreeOCR 没有“源代码”选项,其中空白被视为重要。
提示:如果您的源包含语法突出显示,请确保在上传之前将图像保存为灰度。