curtis
15小時前 0756bf12d10cf1b7f78c571de0a9ad69cbaeb7ca
fix: 更新內部引用方法參照
修改11個檔案
刪除1個檔案
新增1個檔案
208 ■■■■ 已變更過的檔案
doc/curtis/prompt/scanimpl_analysis/scanimpl_annalysis.ImageProcessor.json 1 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
doc/curtis/prompt/scanimpl_analysis/scanimpl_annalysis.UIView.json 3 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
reassemble/CB_IMGPSScanImp.api.pas 3 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
reassemble/CB_IMGPSScanImp.omr.pas 12 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
reassemble/img/mermaid/GetSiteOMR.md 12 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
reassemble/img/transformer.pas 25 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
reassemble/mermaid/omr/GetSiteOMR.md 20 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
reassemble/scan/twain.pas 57 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
reassemble/view/misc.pas 4 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
reassemble/view/toolBar.pas 3 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
scripts/dist/CB_IMGPSScanImp.pas.bk.image.csv 18 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
scripts/dist/deps.all.csv 18 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
scripts/list_image_dependencies.js 32 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
doc/curtis/prompt/scanimpl_analysis/scanimpl_annalysis.ImageProcessor.json
@@ -7,6 +7,7 @@
      "OMR 檢核"
    ],
    "deps": [
      "ClearLine",
      "FindPoint",
      "GetSiteOMR",
      "Get_OMR",
doc/curtis/prompt/scanimpl_analysis/scanimpl_annalysis.UIView.json
@@ -1645,6 +1645,7 @@
      "UIView.toolBar"
    ],
    "deps": [
      "BWTif2Jpg",
      "FileExists",
      "LoadFromFile",
      "SaveToFile",
@@ -3218,9 +3219,11 @@
    ],
    "deps": [
      "DirectoryExists",
      "FieldMask",
      "FileExists",
      "FindPoint",
      "LoadFromFile",
      "SaveAnnotation",
      "Str2Dir",
      "_DelTree"
    ],
reassemble/CB_IMGPSScanImp.api.pas
@@ -376,7 +376,8 @@
  引用相依:En_DecryptionStr_Base64, ProcessServlet_Get
  方法描述:向伺服器請求 LASTEST_FORM_INF 最新表單版本資訊(模式 7)。方法會獲取各
            文件編號對應的最新表單 ID 與版本號,並儲存於 LASTEST_FORM_INF_List。此
            資訊用於確保使用者掃瞄的是最新版表單,或是用於舊案件轉檔時的版本對照。
            資訊用於確保使用者掃瞄的是最新版表單,或是用於舊案件轉檔時與歷史版本
            對照。
============================================================================== }
Function TCB_IMGPSScanX.GetSetInf7 : Boolean; //取系統設定資訊mode5  LASTEST_FORM_INF
var
reassemble/CB_IMGPSScanImp.omr.pas
@@ -1,14 +1,8 @@
{ ==============================================================================
  方法名稱:GetSiteOMR
  引用相依:FindPoint, GetSiteOMR, Get_OMR, LoadFromFile
  方法描述:在指定影像文件的特定座標執行 OMR (光學標記辨識)。核心邏輯包含:
            1. 檢查並載入影像檔(若尚未載入),並呼叫 ClearLine 初始化黑白緩衝區。
            2. 讀取影像的 DPI 與寬高資訊。
            3. 使用 CM_Str2Rect 將 Site 字串轉為 TRect 矩陣,並參考定位點 (UpLPoi
            nt) 進行位移計算。
            4. 限制辨識區域座標不超出影像邊界。
            5. 呼叫 Get_OMR 對黑白圖形緩衝區執行辨識並返回結果值(通常為 1 或 0)。
            此方法是自動化資料檢核的重要工具。
  引用相依:ClearLine, FindPoint, GetSiteOMR, Get_OMR, LoadFromFile
  方法描述:在影像指定座標執行 OMR 辨識。載入影像、計算相對於定位點的座標偏移、限制
            邊界並呼叫核心辨識程式獲取結果。
============================================================================== }
function TCB_IMGPSScanX.GetSiteOMR(FileName,Site:String;bt: Integer): Integer;
var
reassemble/img/mermaid/GetSiteOMR.md
比對新檔案
@@ -0,0 +1,12 @@
```mermaid
flowchart TD
    Start([開始]) --> CheckFile{影像是否已載入?}
    CheckFile -- 否 --> LoadImg[從檔案載入影像並清除緩衝線]
    CheckFile -- 是 --> GetInfo[獲取影像 DPI 與寬高資訊]
    LoadImg --> GetInfo
    GetInfo --> CalcRect[將 Site 字串轉為座標矩陣, 並參考定位點位移]
    CalcRect --> BoundCheck[限制座標不超出影像邊界]
    BoundCheck --> GetOMR[呼叫 Get_OMR 執行辨識]
    GetOMR --> ReturnResult[返回辨識結果] --> End([結束])
```
reassemble/img/transformer.pas
@@ -2,15 +2,8 @@
  方法名稱:ImageReSize_FormID
  引用相依:CheckSize, FileExists, FindPoint, ImageReSize_FormID, ImageResize, L
            oadFileGetMD5, LoadFromFile, SaveToFile
  方法描述:根據表單的十字定位點或邊框 (ANCHOR/FRAME) 對掃瞄影像進行縮放調整。流
            程如下:
            1. 從 FORM_INF_List 取得表單預設高寬與定位類型。
            2. 載入對應案件下的影像檔,若為補件模式則跳過原有圖檔。
            3. 呼叫 FindPoint 尋找影像中的十字線或邊框。
            4. 呼叫 CheckSize 計算偏移與縮放比例。
            5. 呼叫 ImageResize 執行實際調整。
            6. 成功縮放後,記錄檔案 MD5 並儲存更新後的影像,同時將操作記錄寫入 ReS
            ize.dat;若定位點遺失或辨識錯誤,則記錄於 AnchorError.dat。
  方法描述:依據定位點縮放影像。查詢表單規格,載入影像(過濾補件模式),尋找十字線或
            邊框定位點,執行縮放並紀錄 MD5 與日誌。
============================================================================== }
Procedure TCB_IMGPSScanX.ImageReSize_FormID(CaseID,FileName:String);  //依十字定位點做縮放
var
@@ -94,11 +87,8 @@
{ ==============================================================================
  方法名稱:ImageReSize_tmp
  引用相依:CheckSize, ImageReSize_tmp, ImageResize, LoadFromFile, SaveToFile
  方法描述:針對暫存影像檔案執行十字定位點縮放處理。此方法是 ImageReSize_FormID
            的簡化版本,主要針對暫存檔 (FileName) 與指定的 FormID。邏輯包含從資料
            庫清單查詢表單尺寸與定位模式,若符合 ANCHOR 或 FRAME 類型,則載入影像
            並呼叫 CheckSize 檢查是否需要調整。若偵測到影像存在偏移或比例差異(Siz
            eStr 非空),則將調整後的影像直接覆蓋儲存回原始路徑。
  方法描述:針對暫存檔執行定位點縮放。簡化版 Resize 邏輯,若偵測到尺寸偏移則直接覆
            蓋原始檔案,用於處理臨時影像。
============================================================================== }
Procedure TCB_IMGPSScanX.ImageReSize_tmp(FormID,FileName:String);  //依十字定位點做縮放(暫存檔)
var
@@ -130,11 +120,8 @@
{ ==============================================================================
  方法名稱:CheckNeedCrop
  引用相依:CheckNeedCrop, TDibGraphic
  方法描述:判斷掃瞄影像是否為 A3 尺寸並需要進行切割(Crop)。判定邏輯有二:首先,檢
            查影像寬度是否大於 4 倍的 DPI 閥值,藉此初步判斷為大尺寸掃瞄件;其次,
            遍歷目前的條碼清單 (MpsBarcodeinf),統計有效的表單代碼 (FormID) 數量。
            如果影像寬度達標且有效表單數量正好為 2,則返回 True。這代表此張大圖實
            際上是由兩份 A4 表單併排掃瞄而成,後續需依此旗標進行影像分割處理。
  方法描述:判斷影像是否需執行 A3 切割。依據影像寬度(大於 4 倍 DPI)及條碼清單中有
            效表單代碼的數量(需為 2 個)作為判定據。
============================================================================== }
Function TCB_IMGPSScanX.CheckNeedCrop(Graphic:TDibGraphic):Boolean; //是否是A3要切影像
Var
reassemble/mermaid/omr/GetSiteOMR.md
檔案已刪除
reassemble/scan/twain.pas
@@ -2,11 +2,9 @@
  方法名稱:StatrTwainScan
  引用相依:OnAcquire, Scanner, Scanner.AcquireWithSourceOpen, Scanner.CloseSour
            ce, Scanner.OpenSource, StatrTwainScan, TTiffGraphic
  方法描述:啟動 TWAIN 掃瞄流程。此方法首先檢查掃瞄器驅動是否已安裝,接著初始化 Sc
            anInfo 結構並設定掃瞄參數(如 DPI、影像格式、是否顯示 UI、雙面掃瞄模式、
            亮度與對比)。流程中會開啟掃瞄來源,呼叫 AcquireWithSourceOpen 執行實際
            掃瞄作業,並利用 try...finally 確保不論掃瞄成功與否,最終都會關閉掃瞄
            來源並釋放資源。
  方法描述:啟動 TWAIN 掃描流程。檢查驅動是否安裝,初始化 ScanInfo 並設定 DPI、影像
            格式、UI 顯示及雙面掃描模式。執行 AcquireWithSourceOpen 並利用 try...f
            inally 確保資源釋放。
============================================================================== }
procedure TCB_IMGPSScanX.StatrTwainScan;
var ScanInfo    : TScanInfo;
@@ -66,14 +64,8 @@
{ ==============================================================================
  方法名稱:OnAcquire
  引用相依:OnAcquire, TJpegGraphic, TTiffGraphic
  方法描述:掃瞄影像獲取後的回呼處理函數。核心邏輯包含:
            1. 將獲取的 DIB 句柄轉為影像對象並設定 DPI。
            2. 依影像格式執行對應處理:黑白影像會進行條碼辨識、依條碼角度旋轉、影像
            反向、傾斜矯正及清黑邊;全彩或灰階影像則設定 JPEG 壓縮品質。
            3. 檢查是否需要進行 A3 切割為 A4 的處理。
            4. 透過 Deletepage 檢查並過濾空白頁(依據檔案大小)。
            5. 對於有效影像,更新 UI 顯示並呼叫 PageEnd 決定儲存路徑與檔名,最後依
            副檔名儲存為 TIFF 或 JPEG 並呼叫 PageDone 完成頁面流程。
  方法描述:掃描影像獲取後的回調處理。處理 DIB 句柄、設定 DPI、執行條碼辨識、影像旋
            轉、反向、去偏斜及清黑邊。支援 A3 裁切判定與空白頁過濾。
============================================================================== }
procedure TCB_IMGPSScanX.OnAcquire( const DibHandle    : THandle;
                               const XDpi         : Word;
@@ -319,11 +311,8 @@
{ ==============================================================================
  方法名稱:PageDone
  引用相依:LoadFromFile, PageDone
  方法描述:完成單頁影像處理後的 UI 更新邏輯。此方法會遞增掃瞄影像總計數,並根據目
            前的掃瞄模式(新建、取代、插入或取樣)將儲存好的影像檔載入到對應的 Image
            ScrollBox 元件中。在新建模式下,還會根據 ScanImgShowMode 設定決定影像
            顯示的品質(反鋸齒開啟與否)與縮放模式(zmFittopage),確保使用者能即時預
            覽掃瞄結果。
  方法描述:單頁影像處理後的 UI 更新。累加計數,根據模式(新建、取代、插入、取樣)將影
            像載入對應的顯示元件,並依設定調整反鋸齒與縮放。
============================================================================== }
procedure TCB_IMGPSScanX.PageDone;
Var
@@ -380,14 +369,8 @@
  方法名稱:PageEnd
  引用相依:DirectoryExists, GetNoNameCase, PageEnd, SaveToFile, Str2Dir, _DelTr
            ee
  方法描述:管理掃瞄影像的儲存路徑與檔案命名規則。主要邏輯如下:
            1. 辨識條碼以取得 FormID,並判斷是否為導引頁或分案頁。
            2. 若偵測到分案頁,會重置計數並嘗試取得新的案件編號(CaseID)。
            3. 確定儲存目錄,包含處理「分份數」邏輯(依 DocNoNeedDiv 決定是否建立新
            子目錄)。
            4. 根據目前頁數與 FormID 產生標準化的檔名(如補零序號_FormID.tif)。
            5. 更新 ContextList(影像索引資訊)並在掃瞄新案件時更新 TreeView UI 結
            構。此方法確保每張影像都能正確歸類到對應的案件與文件目錄下。
  方法描述:管理影像儲存路徑與命名。辨識條碼區分表單、導引頁或分案頁;處理分份邏輯
            與自動建立目錄,並更新樹狀結構索引。
============================================================================== }
procedure TCB_IMGPSScanX.PageEnd;
Var
@@ -610,11 +593,8 @@
{ ==============================================================================
  方法名稱:R_W_Scanini
  引用相依:Scanner
  方法描述:讀取或寫入掃瞄設定檔(FBScan.ini)。此方法使用 Tinifile 物件處理掃瞄相
            關參數的 I/O 作業。當 Mode 為 'R' 時,從設定檔讀取包含空白頁刪除設定、
            影像反向、清黑邊、旋轉角度、傾斜矯正、亮度對比以及 UI 顯示模式等參數;當
            Mode 為 'W' 時,則將目前的系統變數值回寫至設定檔中,以利下次啟動時恢復
            使用者的個性化設定。
  方法描述:讀取或寫入 FBScan.ini。處理包含空白頁刪除、影像反向、清黑邊、旋轉、去偏斜
            、亮度對比及顯示模式等掃描參數。
============================================================================== }
Procedure TCB_IMGPSScanX.R_W_Scanini(Mode:Char); //'R'讀取;'W'寫入
var
@@ -662,12 +642,8 @@
{ ==============================================================================
  方法名稱:GetDefScanIni
  引用相依:FJpgCompression, Rotate, Scanner
  方法描述:從資料庫參數清單(WORK_INF_List)初始化並設定掃瞄的系統預設值。流程首先
            設定一組程式內建的預設數值,隨後遍歷 WORK_INF_List 並比對 PARA_NO 關
            鍵字,動態更新包含:空白頁判斷大小、影像是否反相、清黑邊、掃瞄 DPI、雙面掃
            瞄開啟、影像旋轉角度、傾斜矯正、亮度對比、影像儲存路徑、導引頁與分案頁代
            碼列表、以及 JPEG 壓縮品質等關鍵參數。這使得掃瞄行為可以透過後台設定進
            行彈性調整。
  方法描述:從資料庫參數清單初始化掃描預設值。設定 DPI、雙面模式、旋轉角度、路徑、導
            引頁及分案頁代碼等關鍵系統變數。
============================================================================== }
Procedure TCB_IMGPSScanX.GetDefScanIni; //取得掃瞄的預設值
var
@@ -850,11 +826,8 @@
{ ==============================================================================
  方法名稱:initkscan
  引用相依:Scanner, Scanner.CloseSource, Scanner.OpenSource, initkscan
  方法描述:初始化並偵測掃瞄器硬體能力。此方法會先將雙面掃瞄勾選框(ScanDuplexCB)
            設為停用,接著嘗試開啟掃瞄來源(OpenSource),檢查掃瞄器是否支援雙面掃瞄
            功能(DuplexCap > 0)。如果硬體支援,則啟用 UI 上的勾選框供使用者選擇。最
            後確保關閉掃瞄來源,若過程中發生異常,會呼叫 DataLoading(False,True)
            停止載入狀態提示。
  方法描述:偵測掃描器硬體能力。嘗試開啟掃描來源以檢查是否支援雙面掃描 (DuplexCap
            ),並據此啟用 UI 控制項。
============================================================================== }
procedure TCB_IMGPSScanX.initkscan;
begin
reassemble/view/misc.pas
@@ -4811,8 +4811,8 @@
{ ==============================================================================
  方法名稱:Case2Mask
  引用相依:DirectoryExists, FileExists, FindPoint, LoadFromFile, Str2Dir, _DelT
            ree
  引用相依:DirectoryExists, FieldMask, FileExists, FindPoint, LoadFromFile, Sav
            eAnnotation, Str2Dir, _DelTree
  方法描述:產生案件的遮罩影像(用於遮蔽敏感個資)。讀取 Context.dat,針對每張影像尋
            找定位點,並依據對應表單的 XML 定義執行區域遮罩,最後存入指定目錄。
============================================================================== }
reassemble/view/toolBar.pas
@@ -421,7 +421,8 @@
{ ==============================================================================
  方法名稱:SampleScanBtnClick
  引用相依:FileExists, LoadFromFile, SaveToFile, StatrTwainScan, upFile
  引用相依:BWTif2Jpg, FileExists, LoadFromFile, SaveToFile, StatrTwainScan, upF
            ile
  方法描述:處理「範本掃瞄」按鈕點擊。切換為範本模式並引導使用者輸入 FormID,掃瞄後
            產生 TIF 與 JPG 影像。隨後透過 HTTPS 將範本上傳至伺服器,上傳過程中會
            嚴格檢查網路狀態、Session 有效性與伺服器回傳結果。
scripts/dist/CB_IMGPSScanImp.pas.bk.image.csv
@@ -5,10 +5,10 @@
[V],"Button6Click","CB_IMGPSScanImp.pas.bk","598","Rotate","","BarCodeRotate : Integer; //條碼要轉的角度"
[V],"Button6Click","CB_IMGPSScanImp.pas.bk","615","FJpgCompression","","FJpgCompression:integer;// 20171211 jpg to tif çš„壓縮率"
[V],"GetSiteOMR","CB_IMGPSScanImp.pas.bk","674","GetSiteOMR","","function GetSiteOMR(FileName, Site: String;bt: Integer): Integer;"
[V],"ImageReSize_FormID","CB_IMGPSScanImp.pas.bk","742","ImageResize","","Procedure ImageReSize_FormID(CaseID,FileName:String);  //依十字定位點做縮放"
[V],"ImageReSize_FormID","CB_IMGPSScanImp.pas.bk","742","ImageReSize_FormID","","Procedure ImageReSize_FormID(CaseID,FileName:String);  //依十字定位點做縮放"
[V],"ImageReSize_tmp","CB_IMGPSScanImp.pas.bk","743","ImageResize","","Procedure ImageReSize_tmp(FormID,FileName:String);  //依十字定位點做縮放(暫存檔)"
[V],"ImageReSize_FormID","CB_IMGPSScanImp.pas.bk","742","ImageResize","","Procedure ImageReSize_FormID(CaseID,FileName:String);  //依十字定位點做縮放"
[V],"ImageReSize_tmp","CB_IMGPSScanImp.pas.bk","743","ImageReSize_tmp","","Procedure ImageReSize_tmp(FormID,FileName:String);  //依十字定位點做縮放(暫存檔)"
[V],"ImageReSize_tmp","CB_IMGPSScanImp.pas.bk","743","ImageResize","","Procedure ImageReSize_tmp(FormID,FileName:String);  //依十字定位點做縮放(暫存檔)"
[V],"CheckNeedCrop","CB_IMGPSScanImp.pas.bk","804","CheckNeedCrop","","Function CheckNeedCrop(Graphic:TDibGraphic):Boolean; //是否是A3要切影像"
[V],"CheckNeedCrop","CB_IMGPSScanImp.pas.bk","804","TDibGraphic","","Function CheckNeedCrop(Graphic:TDibGraphic):Boolean; //是否是A3要切影像"
[V],"Initialize","CB_IMGPSScanImp.pas.bk","1044","TDibGraphic","","EnPrint,  { for TEnvisionPrintMode, TDibGraphicPrinter }"
@@ -36,6 +36,7 @@
[V],"TCB_IMGPSScanX.PM302Click","CB_IMGPSScanImp.pas.bk","3483","ifGray256","","ScanColor := ifGray256;"
[V],"TCB_IMGPSScanX.PM303Click","CB_IMGPSScanImp.pas.bk","3492","ifTrueColor","","ScanColor := ifTrueColor;"
[V],"TCB_IMGPSScanX.PM510Click","CB_IMGPSScanImp.pas.bk","3664","DeskewImg","","DeskewImg(DisplayISB.Graphic);"
[V],"TCB_IMGPSScanX.SampleScanBtnClick","CB_IMGPSScanImp.pas.bk","4015","BWTif2Jpg","","BWTif2Jpg(ImageScrollBox1.Graphic);"
[V],"TCB_IMGPSScanX.StatrTwainScan","CB_IMGPSScanImp.pas.bk","4402","TTiffGraphic","","ScanInfo.Graphic := TTiffGraphic.Create;"
[V],"TCB_IMGPSScanX.OnAcquire","CB_IMGPSScanImp.pas.bk","4455","TTiffGraphic","","iGraphic,iGraphic_First,iGraphic_sec : TTiffGraphic;"
[V],"TCB_IMGPSScanX.OnAcquire","CB_IMGPSScanImp.pas.bk","4457","TJpegGraphic","","JpgGr : TJpegGraphic;"
@@ -61,17 +62,18 @@
[V],"Deletepage","CB_IMGPSScanImp.pas.bk","4659","SaveQuality","","JpgGr.SaveQuality := FJpgCompression;"
[V],"TCB_IMGPSScanX.GetSiteOMR","CB_IMGPSScanImp.pas.bk","5173","GetSiteOMR","","function TCB_IMGPSScanX.GetSiteOMR(FileName,Site:String;bt: Integer): Integer;"
[V],"TCB_IMGPSScanX.GetSiteOMR","CB_IMGPSScanImp.pas.bk","5191","FindPoint","","FindPoint(ImageScrollBox1.Graphic,UpLPoint,UpRPoint,DownLPoint,'');"
[V],"TCB_IMGPSScanX.GetSiteOMR","CB_IMGPSScanImp.pas.bk","5197","ClearLine","","ClearLine(ISB_BW.Graphic,bt);"
[V],"TCB_IMGPSScanX.GetSiteOMR","CB_IMGPSScanImp.pas.bk","5222","Get_OMR","","result := Get_OMR(ISB_BW.Graphic,OMRRect);"
[V],"TCB_IMGPSScanX.GetDefScanIni","CB_IMGPSScanImp.pas.bk","5366","Rotate","","Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_ROTATE_MODE' Then //掃瞄時旋轉角度"
[V],"TCB_IMGPSScanX.GetDefScanIni","CB_IMGPSScanImp.pas.bk","5462","FJpgCompression","","FJpgCompression := StrToInt(PARA_CONTENT);"
[V],"TCB_IMGPSScanX.CaseReSize","CB_IMGPSScanImp.pas.bk","6336","ImageResize","","ImageReSize_FormID(CaseID,FileName);  //依十字定位點做縮放"
[V],"TCB_IMGPSScanX.CaseReSize","CB_IMGPSScanImp.pas.bk","6336","ImageReSize_FormID","","ImageReSize_FormID(CaseID,FileName);  //依十字定位點做縮放"
[V],"TCB_IMGPSScanX.ImageReSize_FormID","CB_IMGPSScanImp.pas.bk","6343","ImageResize","","Procedure TCB_IMGPSScanX.ImageReSize_FormID(CaseID,FileName:String);  //依十字定位點做縮放"
[V],"TCB_IMGPSScanX.CaseReSize","CB_IMGPSScanImp.pas.bk","6336","ImageResize","","ImageReSize_FormID(CaseID,FileName);  //依十字定位點做縮放"
[V],"TCB_IMGPSScanX.ImageReSize_FormID","CB_IMGPSScanImp.pas.bk","6343","ImageReSize_FormID","","Procedure TCB_IMGPSScanX.ImageReSize_FormID(CaseID,FileName:String);  //依十字定位點做縮放"
[V],"TCB_IMGPSScanX.ImageReSize_FormID","CB_IMGPSScanImp.pas.bk","6343","ImageResize","","Procedure TCB_IMGPSScanX.ImageReSize_FormID(CaseID,FileName:String);  //依十字定位點做縮放"
[V],"TCB_IMGPSScanX.ImageReSize_FormID","CB_IMGPSScanImp.pas.bk","6376","FindPoint","","//FindPoint(ImageScrollBox1.Graphic,UpLPoint,UpRPoint,DownLPoint,NowW,NowH);"
[V],"TCB_IMGPSScanX.ImageReSize_FormID","CB_IMGPSScanImp.pas.bk","6379","CheckSize","","SizeStr := CheckSize(ISB_BW,UpLPoint,UpRPoint,DownLPoint,DW,DH);"
[V],"TCB_IMGPSScanX.ImageReSize_tmp","CB_IMGPSScanImp.pas.bk","6421","ImageResize","","Procedure TCB_IMGPSScanX.ImageReSize_tmp(FormID,FileName:String);  //依十字定位點做縮放(暫存檔)"
[V],"TCB_IMGPSScanX.ImageReSize_tmp","CB_IMGPSScanImp.pas.bk","6421","ImageReSize_tmp","","Procedure TCB_IMGPSScanX.ImageReSize_tmp(FormID,FileName:String);  //依十字定位點做縮放(暫存檔)"
[V],"TCB_IMGPSScanX.ImageReSize_tmp","CB_IMGPSScanImp.pas.bk","6421","ImageResize","","Procedure TCB_IMGPSScanX.ImageReSize_tmp(FormID,FileName:String);  //依十字定位點做縮放(暫存檔)"
[V],"TCB_IMGPSScanX.ImageReSize_tmp","CB_IMGPSScanImp.pas.bk","6437","CheckSize","","SizeStr := CheckSize(ImageScrollBox1,UpLPoint,UpRPoint,DownLPoint,DW,DH);"
[V],"TCB_IMGPSScanX.ImageScrollBox1NewGraphic","CB_IMGPSScanImp.pas.bk","6447","TDibGraphic","","procedure TCB_IMGPSScanX.ImageScrollBox1NewGraphic(const Graphic: TDibGraphic);"
[V],"TCB_IMGPSScanX.ImageScrollBox1NewGraphic","CB_IMGPSScanImp.pas.bk","6453","ConvertToBW","","ConvertToBW(ISB_BW.Graphic);"
@@ -84,13 +86,17 @@
[V],"TCB_IMGPSScanX.initParameter","CB_IMGPSScanImp.pas.bk","9301","ifTrueColor","","ScanColor := ifTrueColor ;"
[V],"TCB_IMGPSScanX.SmoothCBClick","CB_IMGPSScanImp.pas.bk","9927","Image_Smooth","","Image_Smooth(ISB1.Graphic);"
[V],"TCB_IMGPSScanX.Case2Mask","CB_IMGPSScanImp.pas.bk","9962","FindPoint","","//ParserPoint(CropMpsV.FindPoint(Anchor));"
[V],"TCB_IMGPSScanX.Case2Mask","CB_IMGPSScanImp.pas.bk","9985","FieldMask","","FieldMask(ImageScrollBox1,SiteList.Text,'Mask',UpLPoint);"
[V],"TCB_IMGPSScanX.Case2Mask","CB_IMGPSScanImp.pas.bk","9987","SaveAnnotation","","SaveAnnotation(ImageScrollBox1,DePath+S.Strings[i]);"
[V],"TCB_IMGPSScanX.CheckNeedCrop","CB_IMGPSScanImp.pas.bk","9996","CheckNeedCrop","","Function TCB_IMGPSScanX.CheckNeedCrop(Graphic:TDibGraphic):Boolean; //是否是A3要切影像"
[V],"TCB_IMGPSScanX.CheckNeedCrop","CB_IMGPSScanImp.pas.bk","9996","TDibGraphic","","Function TCB_IMGPSScanX.CheckNeedCrop(Graphic:TDibGraphic):Boolean; //是否是A3要切影像"
[V],"TCB_IMGPSScanX.PrintImg","CB_IMGPSScanImp.pas.bk","10223","TDibGraphic","","GraphicPrinter : TDibGraphicPrinter;"
[V],"PrintWithManualPrintJob","CB_IMGPSScanImp.pas.bk","10241","TDibGraphic","","property of the TDibGraphicPrinter object is used to specify the"
[V],"PrintWithAutoPrintJob","CB_IMGPSScanImp.pas.bk","10274","TDibGraphic","","GraphicPrinter := TDibGraphicPrinter.Create;"
[V],"TCB_IMGPSScanX.OMRCheckCase","CB_IMGPSScanImp.pas.bk","12510","ImageResize","","ImageReSize_FormID(CaseID,OMRFile);"
[V],"PrintWithAutoPrintJob","CB_IMGPSScanImp.pas.bk","10286","Watermark","","watermark2(Image1.Picture.Bitmap,70,'',ImageScrollBox1.DisplayedGraphic);"
[V],"PrintWithAutoPrintJob","CB_IMGPSScanImp.pas.bk","10286","Watermark2","","watermark2(Image1.Picture.Bitmap,70,'',ImageScrollBox1.DisplayedGraphic);"
[V],"TCB_IMGPSScanX.OMRCheckCase","CB_IMGPSScanImp.pas.bk","12510","ImageReSize_FormID","","ImageReSize_FormID(CaseID,OMRFile);"
[V],"TCB_IMGPSScanX.OMRCheckCase","CB_IMGPSScanImp.pas.bk","12510","ImageResize","","ImageReSize_FormID(CaseID,OMRFile);"
[V],"TCB_IMGPSScanX.OMRCheckCase","CB_IMGPSScanImp.pas.bk","12545","GetSiteOMR","","//Showmessage(ColCName +','+ inttostr(OMRMpsV1.GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site))+','+inttostr(Pixel + SafePixel));"
[V],"TCB_IMGPSScanX.OMRCheckCase","CB_IMGPSScanImp.pas.bk","12548","FindPoint","","//FindPoint(ISB_BW.Graphic,UpLPoint,UpRPoint,DownLPoint,ANCHOR);"
[V],"TCB_IMGPSScanX.view_image_DocNo","CB_IMGPSScanImp.pas.bk","13278","DpiResize","","DpiResize(ISB.Graphic,36,False);"
scripts/dist/deps.all.csv
@@ -5,10 +5,10 @@
[V],Button6Click,CB_IMGPSScanImp.pas.bk,598,Rotate,,BarCodeRotate : Integer; //條碼要轉的角度
[V],Button6Click,CB_IMGPSScanImp.pas.bk,615,FJpgCompression,,FJpgCompression:integer;// 20171211 jpg to tif çš„壓縮率
[V],GetSiteOMR,CB_IMGPSScanImp.pas.bk,674,GetSiteOMR,,function GetSiteOMR(FileName, Site: String;bt: Integer): Integer;
[V],ImageReSize_FormID,CB_IMGPSScanImp.pas.bk,742,ImageResize,,Procedure ImageReSize_FormID(CaseID,FileName:String);  //依十字定位點做縮放
[V],ImageReSize_FormID,CB_IMGPSScanImp.pas.bk,742,ImageReSize_FormID,,Procedure ImageReSize_FormID(CaseID,FileName:String);  //依十字定位點做縮放
[V],ImageReSize_tmp,CB_IMGPSScanImp.pas.bk,743,ImageResize,,Procedure ImageReSize_tmp(FormID,FileName:String);  //依十字定位點做縮放(暫存檔)
[V],ImageReSize_FormID,CB_IMGPSScanImp.pas.bk,742,ImageResize,,Procedure ImageReSize_FormID(CaseID,FileName:String);  //依十字定位點做縮放
[V],ImageReSize_tmp,CB_IMGPSScanImp.pas.bk,743,ImageReSize_tmp,,Procedure ImageReSize_tmp(FormID,FileName:String);  //依十字定位點做縮放(暫存檔)
[V],ImageReSize_tmp,CB_IMGPSScanImp.pas.bk,743,ImageResize,,Procedure ImageReSize_tmp(FormID,FileName:String);  //依十字定位點做縮放(暫存檔)
[V],CheckNeedCrop,CB_IMGPSScanImp.pas.bk,804,CheckNeedCrop,,Function CheckNeedCrop(Graphic:TDibGraphic):Boolean; //是否是A3要切影像
[V],CheckNeedCrop,CB_IMGPSScanImp.pas.bk,804,TDibGraphic,,Function CheckNeedCrop(Graphic:TDibGraphic):Boolean; //是否是A3要切影像
[V],Initialize,CB_IMGPSScanImp.pas.bk,1044,TDibGraphic,,EnPrint,  { for TEnvisionPrintMode, TDibGraphicPrinter }
@@ -36,6 +36,7 @@
[V],TCB_IMGPSScanX.PM302Click,CB_IMGPSScanImp.pas.bk,3483,ifGray256,,ScanColor := ifGray256;
[V],TCB_IMGPSScanX.PM303Click,CB_IMGPSScanImp.pas.bk,3492,ifTrueColor,,ScanColor := ifTrueColor;
[V],TCB_IMGPSScanX.PM510Click,CB_IMGPSScanImp.pas.bk,3664,DeskewImg,,DeskewImg(DisplayISB.Graphic);
[V],TCB_IMGPSScanX.SampleScanBtnClick,CB_IMGPSScanImp.pas.bk,4015,BWTif2Jpg,,BWTif2Jpg(ImageScrollBox1.Graphic);
[V],TCB_IMGPSScanX.StatrTwainScan,CB_IMGPSScanImp.pas.bk,4402,TTiffGraphic,,ScanInfo.Graphic := TTiffGraphic.Create;
[V],TCB_IMGPSScanX.OnAcquire,CB_IMGPSScanImp.pas.bk,4455,TTiffGraphic,,iGraphic,iGraphic_First,iGraphic_sec : TTiffGraphic;
[V],TCB_IMGPSScanX.OnAcquire,CB_IMGPSScanImp.pas.bk,4457,TJpegGraphic,,JpgGr : TJpegGraphic;
@@ -61,17 +62,18 @@
[V],Deletepage,CB_IMGPSScanImp.pas.bk,4659,SaveQuality,,JpgGr.SaveQuality := FJpgCompression;
[V],TCB_IMGPSScanX.GetSiteOMR,CB_IMGPSScanImp.pas.bk,5173,GetSiteOMR,,function TCB_IMGPSScanX.GetSiteOMR(FileName,Site:String;bt: Integer): Integer;
[V],TCB_IMGPSScanX.GetSiteOMR,CB_IMGPSScanImp.pas.bk,5191,FindPoint,,FindPoint(ImageScrollBox1.Graphic,UpLPoint,UpRPoint,DownLPoint,'');
[V],TCB_IMGPSScanX.GetSiteOMR,CB_IMGPSScanImp.pas.bk,5197,ClearLine,,ClearLine(ISB_BW.Graphic,bt);
[V],TCB_IMGPSScanX.GetSiteOMR,CB_IMGPSScanImp.pas.bk,5222,Get_OMR,,result := Get_OMR(ISB_BW.Graphic,OMRRect);
[V],TCB_IMGPSScanX.GetDefScanIni,CB_IMGPSScanImp.pas.bk,5366,Rotate,,Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_ROTATE_MODE' Then //掃瞄時旋轉角度
[V],TCB_IMGPSScanX.GetDefScanIni,CB_IMGPSScanImp.pas.bk,5462,FJpgCompression,,FJpgCompression := StrToInt(PARA_CONTENT);
[V],TCB_IMGPSScanX.CaseReSize,CB_IMGPSScanImp.pas.bk,6336,ImageResize,,ImageReSize_FormID(CaseID,FileName);  //依十字定位點做縮放
[V],TCB_IMGPSScanX.CaseReSize,CB_IMGPSScanImp.pas.bk,6336,ImageReSize_FormID,,ImageReSize_FormID(CaseID,FileName);  //依十字定位點做縮放
[V],TCB_IMGPSScanX.ImageReSize_FormID,CB_IMGPSScanImp.pas.bk,6343,ImageResize,,Procedure TCB_IMGPSScanX.ImageReSize_FormID(CaseID,FileName:String);  //依十字定位點做縮放
[V],TCB_IMGPSScanX.CaseReSize,CB_IMGPSScanImp.pas.bk,6336,ImageResize,,ImageReSize_FormID(CaseID,FileName);  //依十字定位點做縮放
[V],TCB_IMGPSScanX.ImageReSize_FormID,CB_IMGPSScanImp.pas.bk,6343,ImageReSize_FormID,,Procedure TCB_IMGPSScanX.ImageReSize_FormID(CaseID,FileName:String);  //依十字定位點做縮放
[V],TCB_IMGPSScanX.ImageReSize_FormID,CB_IMGPSScanImp.pas.bk,6343,ImageResize,,Procedure TCB_IMGPSScanX.ImageReSize_FormID(CaseID,FileName:String);  //依十字定位點做縮放
[V],TCB_IMGPSScanX.ImageReSize_FormID,CB_IMGPSScanImp.pas.bk,6376,FindPoint,,//FindPoint(ImageScrollBox1.Graphic,UpLPoint,UpRPoint,DownLPoint,NowW,NowH);
[V],TCB_IMGPSScanX.ImageReSize_FormID,CB_IMGPSScanImp.pas.bk,6379,CheckSize,,SizeStr := CheckSize(ISB_BW,UpLPoint,UpRPoint,DownLPoint,DW,DH);
[V],TCB_IMGPSScanX.ImageReSize_tmp,CB_IMGPSScanImp.pas.bk,6421,ImageResize,,Procedure TCB_IMGPSScanX.ImageReSize_tmp(FormID,FileName:String);  //依十字定位點做縮放(暫存檔)
[V],TCB_IMGPSScanX.ImageReSize_tmp,CB_IMGPSScanImp.pas.bk,6421,ImageReSize_tmp,,Procedure TCB_IMGPSScanX.ImageReSize_tmp(FormID,FileName:String);  //依十字定位點做縮放(暫存檔)
[V],TCB_IMGPSScanX.ImageReSize_tmp,CB_IMGPSScanImp.pas.bk,6421,ImageResize,,Procedure TCB_IMGPSScanX.ImageReSize_tmp(FormID,FileName:String);  //依十字定位點做縮放(暫存檔)
[V],TCB_IMGPSScanX.ImageReSize_tmp,CB_IMGPSScanImp.pas.bk,6437,CheckSize,,SizeStr := CheckSize(ImageScrollBox1,UpLPoint,UpRPoint,DownLPoint,DW,DH);
[V],TCB_IMGPSScanX.ImageScrollBox1NewGraphic,CB_IMGPSScanImp.pas.bk,6447,TDibGraphic,,procedure TCB_IMGPSScanX.ImageScrollBox1NewGraphic(const Graphic: TDibGraphic);
[V],TCB_IMGPSScanX.ImageScrollBox1NewGraphic,CB_IMGPSScanImp.pas.bk,6453,ConvertToBW,,ConvertToBW(ISB_BW.Graphic);
@@ -84,13 +86,17 @@
[V],TCB_IMGPSScanX.initParameter,CB_IMGPSScanImp.pas.bk,9301,ifTrueColor,,ScanColor := ifTrueColor ;
[V],TCB_IMGPSScanX.SmoothCBClick,CB_IMGPSScanImp.pas.bk,9927,Image_Smooth,,Image_Smooth(ISB1.Graphic);
[V],TCB_IMGPSScanX.Case2Mask,CB_IMGPSScanImp.pas.bk,9962,FindPoint,,//ParserPoint(CropMpsV.FindPoint(Anchor));
[V],TCB_IMGPSScanX.Case2Mask,CB_IMGPSScanImp.pas.bk,9985,FieldMask,,FieldMask(ImageScrollBox1,SiteList.Text,'Mask',UpLPoint);
[V],TCB_IMGPSScanX.Case2Mask,CB_IMGPSScanImp.pas.bk,9987,SaveAnnotation,,SaveAnnotation(ImageScrollBox1,DePath+S.Strings[i]);
[V],TCB_IMGPSScanX.CheckNeedCrop,CB_IMGPSScanImp.pas.bk,9996,CheckNeedCrop,,Function TCB_IMGPSScanX.CheckNeedCrop(Graphic:TDibGraphic):Boolean; //是否是A3要切影像
[V],TCB_IMGPSScanX.CheckNeedCrop,CB_IMGPSScanImp.pas.bk,9996,TDibGraphic,,Function TCB_IMGPSScanX.CheckNeedCrop(Graphic:TDibGraphic):Boolean; //是否是A3要切影像
[V],TCB_IMGPSScanX.PrintImg,CB_IMGPSScanImp.pas.bk,10223,TDibGraphic,,GraphicPrinter : TDibGraphicPrinter;
[V],PrintWithManualPrintJob,CB_IMGPSScanImp.pas.bk,10241,TDibGraphic,,property of the TDibGraphicPrinter object is used to specify the
[V],PrintWithAutoPrintJob,CB_IMGPSScanImp.pas.bk,10274,TDibGraphic,,GraphicPrinter := TDibGraphicPrinter.Create;
[V],TCB_IMGPSScanX.OMRCheckCase,CB_IMGPSScanImp.pas.bk,12510,ImageResize,,ImageReSize_FormID(CaseID,OMRFile);
[V],PrintWithAutoPrintJob,CB_IMGPSScanImp.pas.bk,10286,Watermark,,watermark2(Image1.Picture.Bitmap,70,'',ImageScrollBox1.DisplayedGraphic);
[V],PrintWithAutoPrintJob,CB_IMGPSScanImp.pas.bk,10286,Watermark2,,watermark2(Image1.Picture.Bitmap,70,'',ImageScrollBox1.DisplayedGraphic);
[V],TCB_IMGPSScanX.OMRCheckCase,CB_IMGPSScanImp.pas.bk,12510,ImageReSize_FormID,,ImageReSize_FormID(CaseID,OMRFile);
[V],TCB_IMGPSScanX.OMRCheckCase,CB_IMGPSScanImp.pas.bk,12510,ImageResize,,ImageReSize_FormID(CaseID,OMRFile);
[V],TCB_IMGPSScanX.OMRCheckCase,CB_IMGPSScanImp.pas.bk,12545,GetSiteOMR,,//Showmessage(ColCName +','+ inttostr(OMRMpsV1.GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site))+','+inttostr(Pixel + SafePixel));
[V],TCB_IMGPSScanX.OMRCheckCase,CB_IMGPSScanImp.pas.bk,12548,FindPoint,,//FindPoint(ISB_BW.Graphic,UpLPoint,UpRPoint,DownLPoint,ANCHOR);
[V],TCB_IMGPSScanX.view_image_DocNo,CB_IMGPSScanImp.pas.bk,13278,DpiResize,,DpiResize(ISB.Graphic,36,False);
scripts/list_image_dependencies.js
@@ -16,40 +16,63 @@
])).join('|')
// 您提供的關鍵字 (以 | 分隔)
const keywordsStr = Array.from(new Set([
  'BWTif2Jpg',
  'BmpConverJpg',
  'BrightnessImg', // iis_image_process
  'CheckNeedCrop',
  'CheckSize',
  'CleanupBorder',
  'ClearLine',
  'Color2BW_RTS', //  iis_image_process
  'Color2tif',
  'ConvertTo256Gray',
  'ConvertToBW',
  'ConvertToGray',
  'CreateDraft',
  'CreateNote',
  'CreateReportImg',
  'CreateReportImg_JSON', // iis_image_process
  'CreateStamp', // iis_image_process
  'CropImg',
  'DeskewImg',
  'DpiResize',
  'DrawPointLine',
  'Emboss',
  'FieldMask',
  'FilterColor', // iis_image_process
  'FindBlackPoint', // iis_image_process
  'FindPoint',
  'GetSiteOMR',
  'GetBlackSpots', // iis_image_process
  'GetExif_CaptureDateTime',
  'GetPixBW',
  'GetPosAngle',
  'GetSelectRect',
  'GetSelectRect2String', // iis_image_process
  'GetSelectRect_Back',
  'GetSelectRect_Black2String',
  'GetSiteOMR',
  'GetTag', //
  'Get_OMR',
  'Gray2BW_RTS', // iis_image_process
  'ImageResize', // iis_image_process
  'ImageProcessor.anchorAnalyzer',
  'ImageProcessor.barcodeRecognizer',
  'ImageProcessor.converter',
  'ImageProcessor.transformer',
  'ImageReSize_FormID',
  'ImageReSize_tmp',
  'ImageResize',
  'ImageResize', // iis_image_process
  'Image_Smooth',
  'JpgReSize_Exif',
  'JpgReSize_Exif', // iis
  'MpsGetBarcode',
  'NegativeImg',
  'NegativeImg',
  'PrintBarcode', // iis
  'Rotate',
  'SaveAnnotation',
  'SetSelectRect',
  'SetSelectRect_Original',
  'SetTag', // iis
  'ShowKeyinRect', // iis
  'TDibGraphic',
@@ -57,7 +80,12 @@
  'TNBCleanupBorderTransform', // iis
  'TTiffGraphic',
  'TWatermarkTransform', // iis
  'Watermark',
  'Watermark1',
  'Watermark1_Hong', // iis
  'Watermark1_Hong_New',
  'Watermark2',
  // 以下可省
  'CleanupBorder',
  'ConvertToBW',