12 lines
15 KiB
Go
Raw Normal View History

2020-08-27 21:45:09 +00:00
//
// Copyright 2020 FoxyUtils ehf. All rights reserved.
//
// This is a commercial product and requires a license to operate.
// A trial license can be obtained at https://unidoc.io
//
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
//
// Use of this source code is governed by the UniDoc End User License Agreement
// terms that can be accessed at https://unidoc.io/eula/
2020-09-14 09:32:45 +00:00
package arithmetic ;import (_a "bytes";_g "github.com/unidoc/unipdf/v3/common";_b "github.com/unidoc/unipdf/v3/internal/jbig2/bitmap";_gb "github.com/unidoc/unipdf/v3/internal/jbig2/errors";_c "io";);func (_dbc *Encoder )renormalize (){for {_dbc ._ad <<=1;_dbc ._dc <<=1;_dbc ._ef --;if _dbc ._ef ==0{_dbc .byteOut ();};if (_dbc ._ad &0x8000)!=0{break ;};};};func (_ada *Encoder )code0 (_fdfb *codingContext ,_fdd uint32 ,_dcd uint16 ,_aaf byte ){if _fdfb .mps (_fdd )==0{_ada .codeMPS (_fdfb ,_fdd ,_dcd ,_aaf );}else {_ada .codeLPS (_fdfb ,_fdd ,_dcd ,_aaf );};};func (_cee *Encoder )codeLPS (_cfb *codingContext ,_ggd uint32 ,_dbe uint16 ,_aac byte ){_cee ._ad -=_dbe ;if _cee ._ad < _dbe {_cee ._dc +=uint32 (_dbe );}else {_cee ._ad =_dbe ;};if _dd [_aac ]._ebg ==1{_cfb .flipMps (_ggd );};_cfb ._eb [_ggd ]=_dd [_aac ]._cdg ;_cee .renormalize ();};func (_fc *codingContext )mps (_fd uint32 )int {return int (_fc ._df [_fd ])};func (_cc Class )String ()string {switch _cc {case IAAI :return "\u0049\u0041\u0041\u0049";case IADH :return "\u0049\u0041\u0044\u0048";case IADS :return "\u0049\u0041\u0044\u0053";case IADT :return "\u0049\u0041\u0044\u0054";case IADW :return "\u0049\u0041\u0044\u0057";case IAEX :return "\u0049\u0041\u0045\u0058";case IAFS :return "\u0049\u0041\u0046\u0053";case IAIT :return "\u0049\u0041\u0049\u0054";case IARDH :return "\u0049\u0041\u0052D\u0048";case IARDW :return "\u0049\u0041\u0052D\u0057";case IARDX :return "\u0049\u0041\u0052D\u0058";case IARDY :return "\u0049\u0041\u0052D\u0059";case IARI :return "\u0049\u0041\u0052\u0049";default:return "\u0055N\u004b\u004e\u004f\u0057\u004e";};};func _ec (_af int )*codingContext {return &codingContext {_eb :make ([]byte ,_af ),_df :make ([]byte ,_af )};};func (_gea *Encoder )setBits (){_cggc :=_gea ._dc +uint32 (_gea ._ad );_gea ._dc |=0xffff;if _gea ._dc >=_cggc {_gea ._dc -=0x8000;};};func (_gdd *Encoder )Init (){_gdd ._fa =_ec (_ecbf );_gdd ._ad =0x8000;_gdd ._dc =0;_gdd ._ef =12;_gdd ._fdf =-1;_gdd ._gfa =0;_gdd ._dg =0;_gdd ._ee =make ([]byte ,_gbf );for _dgd :=0;_dgd < len (_gdd ._fb );_dgd ++{_gdd ._fb [_dgd ]=_ec (512);};_gdd ._ac =nil ;};type codingContext struct{_eb []byte ;_df []byte ;};func (_bfe *Encoder )Refine (iTemp ,iTarget *_b .Bitmap ,ox ,oy int )error {for _dac :=0;_dac < iTarget .Height ;_dac ++{var _abgf int ;_fg :=_dac +oy ;var (_gbcd ,_be ,_dgb ,_ead ,_eaf uint16 ;_eafb ,_eff ,_ccc ,_gfd ,_fcg byte ;);if _fg >=1&&(_fg -1)< iTemp .Height {_eafb =iTemp .Data [(_fg -1)*iTemp .RowStride ];};if _fg >=0&&_fg < iTemp .Height {_eff =iTemp .Data [_fg *iTemp .RowStride ];};if _fg >=-1&&_fg +1< iTemp .Height {_ccc =iTemp .Data [(_fg +1)*iTemp .RowStride ];};if _dac >=1{_gfd =iTarget .Data [(_dac -1)*iTarget .RowStride ];};_fcg =iTarget .Data [_dac *iTarget .RowStride ];_aga :=uint (6+ox );_gbcd =uint16 (_eafb >>_aga );_be =uint16 (_eff >>_aga );_dgb =uint16 (_ccc >>_aga );_ead =uint16 (_gfd >>6);_dcf :=uint (2-ox );_eafb <<=_dcf ;_eff <<=_dcf ;_ccc <<=_dcf ;_gfd <<=2;for _abgf =0;_abgf < iTarget .Width ;_abgf ++{_aa :=(_gbcd <<10)|(_be <<7)|(_dgb <<4)|(_ead <<1)|_eaf ;_eafbb :=_fcg >>7;_eeb :=_bfe .encodeBit (_bfe ._fa ,uint32 (_aa ),_eafbb );if _eeb !=nil {return _eeb ;};_gbcd <<=1;_be <<=1;_dgb <<=1;_ead <<=1;_gbcd |=uint16 (_eafb >>7);_be |=uint16 (_eff >>7);_dgb |=uint16 (_ccc >>7);_ead |=uint16 (_gfd >>7);_eaf =uint16 (_eafbb );_bdd :=_abgf %8;_dcb :=_abgf /8+1;if _bdd ==5+ox {_eafb ,_eff ,_ccc =0,0,0;if _dcb < iTemp .RowStride &&_fg >=1&&(_fg -1)< iTemp .Height {_eafb =iTemp .Data [(_fg -1)*iTemp .RowStride +_dcb ];};if _dcb < iTemp .RowStride &&_fg >=0&&_fg < iTemp .Height {_eff =iTemp .Data [_fg *iTemp .RowStride +_dcb ];};if _dcb < iTemp .RowStride &&_fg >=-1&&(_fg +1)< iTemp .Height {_ccc =iTemp .Data [(_fg +1)*iTemp .RowStride +_dcb ];};}else {_eafb <<=1;_eff <<=1;_ccc <<=1;};if _bdd ==5&&_dac >=1{_gfd =0;if _dcb < iTarget .RowStride {_gfd =iTarget .Data [(_dac -1)*iTarget .RowStride +_dcb ];};}else {_gfd <<=1;};if _bdd ==7{_fcg =0;if _dcb < iTarget .RowStride {_fcg =iTarget .Data [_dac *iTarget .RowStride +_dcb ];};}else {_fcg <<=1;};_gbcd