@@ -717,84 +717,78 @@ private async Task DoTrans(OcrMethodType ocrMethodType)
717717
718718 else if ( _settingManager . OCRType == SettingManager . OcrType . OneOcr )
719719 {
720- if ( _winOcr . GetIsAvailable ( ) )
720+
721+ unsafe
721722 {
722- unsafe
723- {
724- Util . CheckTimeSpan ( true ) ;
725- int ocrAreaCount = FormManager . Instace . GetOcrAreaCount ( ) ;
726- List < ImgData > imgDataList = new List < ImgData > ( ) ;
723+ Util . CheckTimeSpan ( true ) ;
724+ int ocrAreaCount = FormManager . Instace . GetOcrAreaCount ( ) ;
725+ List < ImgData > imgDataList = new List < ImgData > ( ) ;
727726
728- if ( _settingManager . isUseAttachedCapture )
729- {
730- MakeImgModelsFromCapture ( ocrAreaCount , imgDataList , ref clientPositionX , ref clientPositionY ) ;
731- }
732- else
733- {
734- MakeImgModels ( ocrAreaCount , imgDataList , ref clientPositionX , ref clientPositionY ) ;
735- }
727+ if ( _settingManager . isUseAttachedCapture )
728+ {
729+ MakeImgModelsFromCapture ( ocrAreaCount , imgDataList , ref clientPositionX , ref clientPositionY ) ;
730+ }
731+ else
732+ {
733+ MakeImgModels ( ocrAreaCount , imgDataList , ref clientPositionX , ref clientPositionY ) ;
734+ }
736735
737- if ( isEndFlag )
738- {
739- break ;
740- }
736+ if ( isEndFlag )
737+ {
738+ break ;
739+ }
741740
742- string ocrResult = "" ;
743- string transResult = "" ;
744- finalTransResult = "" ;
741+ string ocrResult = "" ;
742+ string transResult = "" ;
743+ finalTransResult = "" ;
745744
746- OCRDataManager . Instace . ClearData ( ) ;
747- for ( int j = 0 ; j < imgDataList . Count ; j ++ )
748- {
749- Util . CheckTimeSpan ( false ) ;
745+ OCRDataManager . Instace . ClearData ( ) ;
746+ for ( int j = 0 ; j < imgDataList . Count ; j ++ )
747+ {
748+ Util . CheckTimeSpan ( false ) ;
750749
751- var task = _oneOcr . ConvertToTextAsync ( imgDataList [ j ] . data , imgDataList [ j ] . channels , imgDataList [ j ] . x , imgDataList [ j ] . y , imgDataList [ j ] . Clear ) . ConfigureAwait ( false ) ;
750+ var task = _oneOcr . ConvertToTextAsync ( imgDataList [ j ] . data , imgDataList [ j ] . channels , imgDataList [ j ] . x , imgDataList [ j ] . y , imgDataList [ j ] . Clear ) . ConfigureAwait ( false ) ;
752751
753- var result = task . GetAwaiter ( ) . GetResult ( ) ;
754- if ( result == null )
752+ var result = task . GetAwaiter ( ) . GetResult ( ) ;
753+ if ( result == null )
754+ {
755+ // 백그라운드에서 UI를 직접 호출하지 않음. UI 스레드에서 알리고 종료 트리거.
756+ _parent . BeginInvoke ( ( Action ) ( ( ) =>
755757 {
756- // 백그라운드에서 UI를 직접 호출하지 않음. UI 스레드에서 알리고 종료 트리거.
757- _parent . BeginInvoke ( ( Action ) ( ( ) =>
758+ if ( MessageBox . Show ( LocalizeString ( "Unable Use OCR Snipping Tool OCR Error" ) , "" , MessageBoxButtons . YesNo , MessageBoxIcon . Question ) == DialogResult . Yes )
758759 {
759- if ( MessageBox . Show ( LocalizeString ( "Unable Use OCR Snipping Tool OCR Error" ) , "" , MessageBoxButtons . YesNo , MessageBoxIcon . Question ) == DialogResult . Yes )
760- {
761760
762- Util . OpenURL ( "https://blog.naver.com/killkimno/224097385261" ) ;
763- }
761+ Util . OpenURL ( "https://blog.naver.com/killkimno/224097385261" ) ;
762+ }
764763
765- OnStopTranslate ? . Invoke ( true ) ;
766- } ) ) ;
764+ OnStopTranslate ? . Invoke ( true ) ;
765+ } ) ) ;
767766
768- // 작업 취소 플래그 설정 후 안전히 반환
769- _cts . Cancel ( ) ;
770- isEndFlag = true ;
771- return ;
772- }
773-
774- ocrResult = "" ;
775- foreach ( var line in result )
776- {
777- ocrResult += line . Text + System . Environment . NewLine ;
778- }
767+ // 작업 취소 플래그 설정 후 안전히 반환
768+ _cts . Cancel ( ) ;
769+ isEndFlag = true ;
770+ return ;
771+ }
779772
780- OCRDataManager . ResultData resultModel = OCRDataManager . Instace . AddData ( new OcrResult ( result ) , j , ocrMethodType == OcrMethodType . Snap , _settingManager . NowIsRemoveSpace ) ;
773+ ocrResult = "" ;
774+ foreach ( var line in result )
775+ {
776+ ocrResult += line . Text + System . Environment . NewLine ;
777+ }
781778
782- MakeFinalOcrAndTrans ( j , resultModel , imgDataList , ocrResult , ref ocrResult , ref finalTransResult ) ;
779+ OCRDataManager . ResultData resultModel = OCRDataManager . Instace . AddData ( new OcrResult ( result ) , j , ocrMethodType == OcrMethodType . Snap , _settingManager . NowIsRemoveSpace ) ;
783780
784- imgDataList [ j ] . ClearOriginalData ( ) ;
781+ MakeFinalOcrAndTrans ( j , resultModel , imgDataList , ocrResult , ref ocrResult , ref finalTransResult ) ;
785782
786- }
783+ imgDataList [ j ] . ClearOriginalData ( ) ;
787784
788- NowOcrString = ocrResult ;
789- imgDataList . Clear ( ) ;
790- imgDataList = null ;
791785 }
786+
787+ NowOcrString = ocrResult ;
788+ imgDataList . Clear ( ) ;
789+ imgDataList = null ;
792790 }
793- else
794- {
795- //준비되지 않았으면 이전과 같게 처리.
796- NowOcrString = formerOcrString ;
797- }
791+
798792 }
799793 #endregion
800794
0 commit comments