From c12083614dded208bd51f753a67277b2c128af27 Mon Sep 17 00:00:00 2001
From: doom4ster <doom4ster@gmail.com>
Date: 星期四, 04 一月 2018 15:09:37 +0800
Subject: [PATCH] CB_IMGPSScan.cab ver2.0.1.63 修正掃瞄壓縮比無效的問題 匯入時灰階與彩色都能辨條碼
---
CB_IMGPSScanImp.pas | 61 ++++++++++++++++++++++++------
1 files changed, 49 insertions(+), 12 deletions(-)
diff --git a/CB_IMGPSScanImp.pas b/CB_IMGPSScanImp.pas
index 3479de7..ddc6977 100644
--- a/CB_IMGPSScanImp.pas
+++ b/CB_IMGPSScanImp.pas
@@ -2779,9 +2779,15 @@
ShowText := _Msg('檔案加入中,請稍候(' + inttostr(i) + '/' + inttostr(P) + ')');
DataLoading(True, True);
ISB.LoadFromFile(FName, i);
- // ISB.SaveToFile('C:\OCX\aaaaaa'+IntToStr(i)+'.tif');
DeskewImg(ISB.Graphic);
- // ISB.SaveToFile('C:\OCX\bbbbbb'+IntToStr(i)+'.tif');
+
+
+ ISB_BW.Graphic.Assign(ISB.Graphic); //20180104
+ If ISB.Graphic.ImageFormat <> ifBlackWhite Then //20180104
+ begin
+ ConvertToBW(ISB_BW.Graphic);
+ end;
+ ///ISB_BW.SaveToFile('KKKKKKKK.tif');
iGraphic_First := TTiffGraphic.Create;
iGraphic_sec := TTiffGraphic.Create;
@@ -2789,7 +2795,7 @@
iGraphic_First.Assign(ISB.Graphic);
//ShowMessage(IntToStr(iGraphic_First.Palette.palNumEntries)); //彩色 會為0 黑白 為2
- MpsGetBarcode(ISB.Graphic, MpsBarcodeinf); //判斷A3 有用FormID 所以要先辨條碼
+ MpsGetBarcode(ISB_BW.Graphic, MpsBarcodeinf); //判斷A3 有用FormID 所以要先辨條碼
//有必要的話先把影像轉正 再開始切圖
If CheckNeedCrop(iGraphic_First) Then
Begin
@@ -2817,7 +2823,13 @@
(TreeView1.Selected = MyTreeNode1) Then
Begin
SaveFilename := '';
- MpsGetBarcode(iGraphic, MpsBarcodeinf);
+ ISB_BW.Graphic.Assign(iGraphic); //20180104
+ If iGraphic.ImageFormat <> ifBlackWhite Then //20180104
+ begin
+ ConvertToBW(ISB_BW.Graphic);
+ end;
+ MpsGetBarcode(ISB_BW.Graphic, MpsBarcodeinf);
+//ShowMessage(IntToStr(MpsBarcodeinf.Count));
For n := 1 To MpsBarcodeinf.Count Do
Begin
If MpsBarcodeinf.r180[n] <> 0 Then // 依條碼角度轉影像
@@ -2828,6 +2840,7 @@
End;
End;
FormID := BarCode2FormID;
+//ShowMessage('FormID='+FormID);
// 取出FormID
SaveFilename := FormID;
If (TreeView1.Selected = NewTreeNode) Then
@@ -2895,8 +2908,8 @@
Break;
End;
End;
-
- if iGraphic.Palette.palNumEntries = 0 then //20171130 彩色 會為0 黑白 為2
+//ShowMessage(IntToStr(iGraphic.Palette.palNumEntries));
+ if (iGraphic.Palette.palNumEntries = 0) or (iGraphic.Palette.palNumEntries = 256) then //20171130 彩色 會為0 黑白 為2 灰階256
begin
iGraphic.Compression:=tcJPEG;
iGraphic.JpegQuality:=cooom;
@@ -2932,9 +2945,6 @@
// SaveStream.Free;
End;
End;
-
- // Rotate(ISB.Graphic,MpsBarcodeinf.r180[n]); //20170705 加入有條碼就轉正
- // ISB.SaveToFile(SavePath+SaveFilename);
SetContextList('A', -1, CaseID, DocDir, SaveFilename);
If (TreeView1.Selected = NewTreeNode) Then
@@ -2975,8 +2985,8 @@
Break;
End;
End;
- // Rotate(ISB.Graphic,MpsBarcodeinf.r180[n]); //20170705 加入有條碼就轉正
- if iGraphic.Palette.palNumEntries = 0 then //20171130 彩色 會為0 黑白 為2
+
+ if (iGraphic.Palette.palNumEntries = 0) or (iGraphic.Palette.palNumEntries = 256) then //20171130 彩色 會為0 黑白 為2
begin
iGraphic.Compression:=tcJPEG;
iGraphic.JpegQuality:=cooom;
@@ -4357,6 +4367,12 @@
end;
pScanInfo^.Graphic.Compression := tcJpeg;
pScanInfo^.Graphic.JpegQuality := FJpgCompression;
+//ShowMessage(IntToStr(pScanInfo^.Graphic.JpegQuality));
+//if pScanInfo^.Graphic.Compression = tcJpeg then
+//begin
+//ShowMessage('jpg');
+//end;
+
end
else
begin
@@ -4390,7 +4406,16 @@
//iGraphic.Assign(iGraphic_First);
iGraphic := iGraphic_First;
-
+ if iGraphic.ImageFormat=ifGray256 then //20180104
+ begin
+ iGraphic.Compression:=tcJPEG;
+ iGraphic.JpegQuality:=FJpgCompression;
+ end;
+ if iGraphic.ImageFormat=ifTrueColor then //20180104
+ begin
+ iGraphic.Compression:=tcJPEG;
+ iGraphic.JpegQuality:=FJpgCompression;
+ end;
while not iGraphic.IsEmpty do
@@ -4410,6 +4435,18 @@
Break;
End;
End;
+
+ if iGraphic.ImageFormat=ifGray256 then //20180104 因此旋轉後變為回packbits 所以要改為jpeg
+ begin
+ iGraphic.Compression:=tcJPEG;
+ iGraphic.JpegQuality:=FJpgCompression;
+ end;
+ if iGraphic.ImageFormat=ifTrueColor then
+ begin
+ iGraphic.Compression:=tcJPEG;
+ iGraphic.JpegQuality:=FJpgCompression;
+ end;
+
PageEnd;
IF PEFileName <> '' Then
begin
--
Gitblit v1.8.0