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/
2021-01-26 01:31:56 +00:00
package arithmetic ;import (_d "bytes";_e "github.com/unidoc/unipdf/v3/common";_ac "github.com/unidoc/unipdf/v3/internal/jbig2/bitmap";_fc "github.com/unidoc/unipdf/v3/internal/jbig2/errors";_a "io";);type codingContext struct{_g []byte ;_ad []byte ;};var _cdce =[]state {{0x5601,1,1,1},{0x3401,2,6,0},{0x1801,3,9,0},{0x0AC1,4,12,0},{0x0521,5,29,0},{0x0221,38,33,0},{0x5601,7,6,1},{0x5401,8,14,0},{0x4801,9,14,0},{0x3801,10,14,0},{0x3001,11,17,0},{0x2401,12,18,0},{0x1C01,13,20,0},{0x1601,29,21,0},{0x5601,15,14,1},{0x5401,16,14,0},{0x5101,17,15,0},{0x4801,18,16,0},{0x3801,19,17,0},{0x3401,20,18,0},{0x3001,21,19,0},{0x2801,22,19,0},{0x2401,23,20,0},{0x2201,24,21,0},{0x1C01,25,22,0},{0x1801,26,23,0},{0x1601,27,24,0},{0x1401,28,25,0},{0x1201,29,26,0},{0x1101,30,27,0},{0x0AC1,31,28,0},{0x09C1,32,29,0},{0x08A1,33,30,0},{0x0521,34,31,0},{0x0441,35,32,0},{0x02A1,36,33,0},{0x0221,37,34,0},{0x0141,38,35,0},{0x0111,39,36,0},{0x0085,40,37,0},{0x0049,41,38,0},{0x0025,42,39,0},{0x0015,43,40,0},{0x0009,44,41,0},{0x0005,45,42,0},{0x0001,45,43,0},{0x5601,46,46,0}};func (_fe *codingContext )mps (_c uint32 )int {return int (_fe ._ad [_c ])};const (_dca =65536;_fdb =20*1024;);func (_fff *Encoder )flush (){_fff .setBits ();_fff ._eef <<=_fff ._eefg ;_fff .byteOut ();_fff ._eef <<=_fff ._eefg ;_fff .byteOut ();_fff .emit ();if _fff ._ec !=0xff{_fff ._acf ++;_fff ._ec =0xff;_fff .emit ();};_fff ._acf ++;_fff ._ec =0xac;_fff ._acf ++;_fff .emit ();};func (_egg *Encoder )Refine (iTemp ,iTarget *_ac .Bitmap ,ox ,oy int )error {for _ba :=0;_ba < iTarget .Height ;_ba ++{var _cc int ;_ead :=_ba +oy ;var (_cbe ,_aeef ,_ccc ,_gf ,_cbc uint16 ;_dbf ,_aaa ,_dac ,_fge ,_gc byte ;);if _ead >=1&&(_ead -1)< iTemp .Height {_dbf =iTemp .Data [(_ead -1)*iTemp .RowStride ];};if _ead >=0&&_ead < iTemp .Height {_aaa =iTemp .Data [_ead *iTemp .RowStride ];};if _ead >=-1&&_ead +1< iTemp .Height {_dac =iTemp .Data [(_ead +1)*iTemp .RowStride ];};if _ba >=1{_fge =iTarget .Data [(_ba -1)*iTarget .RowStride ];};_gc =iTarget .Data [_ba *iTarget .RowStride ];_gd :=uint (6+ox );_cbe =uint16 (_dbf >>_gd );_aeef =uint16 (_aaa >>_gd );_ccc =uint16 (_dac >>_gd );_gf =uint16 (_fge >>6);_afb :=uint (2-ox );_dbf <<=_afb ;_aaa <<=_afb ;_dac <<=_afb ;_fge <<=2;for _cc =0;_cc < iTarget .Width ;_cc ++{_cfc :=(_cbe <<10)|(_aeef <<7)|(_ccc <<4)|(_gf <<1)|_cbc ;_ebc :=_gc >>7;_cfee :=_egg .encodeBit (_egg ._bc ,uint32 (_cfc ),_ebc );if _cfee !=nil {return _cfee ;};_cbe <<=1;_aeef <<=1;_ccc <<=1;_gf <<=1;_cbe |=uint16 (_dbf >>7);_aeef |=uint16 (_aaa >>7);_ccc |=uint16 (_dac >>7);_gf |=uint16 (_fge >>7);_cbc =uint16 (_ebc );_bae :=_cc %8;_abg :=_cc /8+1;if _bae ==5+ox {_dbf ,_aaa ,_dac =0,0,0;if _abg < iTemp .RowStride &&_ead >=1&&(_ead -1)< iTemp .Height {_dbf =iTemp .Data [(_ead -1)*iTemp .RowStride +_abg ];};if _abg < iTemp .RowStride &&_ead >=0&&_ead < iTemp .Height {_aaa =iTemp .Data [_ead *iTemp .RowStride +_abg ];};if _abg < iTemp .RowStride &&_ead >=-1&&(_ead +1)< iTemp .Height {_dac =iTemp .Data [(_ead +1)*iTemp .RowStride +_abg ];};}else {_dbf <<=1;_aaa <<=1;_dac <<=1;};if _bae ==5&&_ba >=1{_fge =0;if _abg < iTarget .RowStride {_fge =iTarget .Data [(_ba -1)*iTarget .RowStride +_abg ];};}else {_fge <<=1;};if _bae ==7{_gc =0;if _abg < iTarget .RowStride {_gc =iTarget .Data [_ba *iTarget .RowStride +_abg ];};}else {_gc <<=1;};_cbe &=7;_aeef &=7;_ccc &=7;_gf &=7;};};return nil ;};func (_dab *Encoder )Reset (){_dab ._cb =0x8000;_dab ._eef =0;_dab ._eefg =12;_dab ._acf =-1;_dab ._ec =0;_dab ._cfe =nil ;_dab ._bc =_eg (_dca );};func (_cefa *Encoder )emit (){if _cefa ._ge ==_fdb {_cefa ._cf =append (_cefa ._cf ,_cefa ._cg );_cefa ._cg =make ([]byte ,_fdb );_cefa ._ge =0;};_cefa ._cg [_cefa ._ge ]=_cefa ._ec ;_cefa ._ge ++;};func (_bbb *Encoder )EncodeBitmap (bm *_ac .Bitmap ,duplicateLineRemoval bool )error {_e .Log .Trace ("\u0045n\u0063\u006f\u0064\u0065 \u0042\u0069\u0074\u006d\u0061p\u0020[\u0025d\u0078\u0025\u0064\u005d\u002c\u0020\u0025s",bm .Width ,bm .Height ,bm );var (_ae ,_af uint8 ;_ggg ,_dae ,_ea uint16 ;_bbe ,_ce ,_bbg byte ;_gbb ,_aa ,_cdg int ;_adf ,_bbc []byte ;);for _fg :