// // 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/ package sampling ;import (_f "github.com/unidoc/unipdf/v3/internal/bitwise";_a "github.com/unidoc/unipdf/v3/internal/imageutil";_c "io";);type Reader struct{_g _a .ImageBase ;_fb *_f .Reader ;_aa ,_fc ,_gb int ;_af bool ;};type Writer struct{_ecd _a .ImageBase ; _ea *_f .Writer ;_afeg ,_cd int ;_df bool ;};type SampleReader interface{ReadSample ()(uint32 ,error );ReadSamples (_e []uint32 )error ;};func (_fe *Reader )ReadSample ()(uint32 ,error ){if _fe ._fc ==_fe ._g .Height {return 0,_c .EOF ;};_afc ,_ec :=_fe ._fb .ReadBits (byte (_fe ._g .BitsPerComponent )); if _ec !=nil {return 0,_ec ;};_fe ._gb --;if _fe ._gb ==0{_fe ._gb =_fe ._g .ColorComponents ;_fe ._aa ++;};if _fe ._aa ==_fe ._g .Width {if _fe ._af {_fe ._fb .ConsumeRemainingBits ();};_fe ._aa =0;_fe ._fc ++;};return uint32 (_afc ),nil ;};func (_aba *Writer )WriteSamples (samples []uint32 )error {for _gf :=0; _gf < len (samples );_gf ++{if _cfd :=_aba .WriteSample (samples [_gf ]);_cfd !=nil {return _cfd ;};};return nil ;};func NewWriter (img _a .ImageBase )*Writer {return &Writer {_ea :_f .NewWriterMSB (img .Data ),_ecd :img ,_cd :img .ColorComponents ,_df :img .BytesPerLine *8!=img .ColorComponents *img .BitsPerComponent *img .Width }; };func ResampleBytes (data []byte ,bitsPerSample int )[]uint32 {var _gc []uint32 ;_fcb :=bitsPerSample ;var _eg uint32 ;var _cc byte ;_ed :=0;_fbb :=0;_ee :=0;for _ee < len (data ){if _ed > 0{_ab :=_ed ;if _fcb < _ab {_ab =_fcb ;};_eg =(_eg <>uint (8-_ab )); _ed -=_ab ;if _ed > 0{_cc =_cc <>uint (_ed )); if _gbc < 8{_cc =_aaa <=bitsPerSample {_afb :=_ed ;if _fcb < _afb {_afb =_fcb ;};_eg =(_eg <>uint (8-_afb )); _ed -=_afb ;if _ed > 0{_cc =_cc < 0{_eb :=_egg ;if _cb < _eb {_eb =_cb ;};_b =(_b <>uint (bitsPerInputSample -_eb ));_egg -=_eb ;if _egg > 0{_dc =_dc <>uint (_egg )); if _afe < bitsPerInputSample {_dc =_dce <=bitsPerOutputSample {_afd :=_egg ;if _cb < _afd {_afd =_cb ;};_b =(_b <>uint (bitsPerInputSample -_afd )); _egg -=_afd ;if _egg > 0{_dc =_dc < 0&&_cb < bitsPerOutputSample {_b <<=uint (_cb );_ecg =append (_ecg ,_b );};return _ecg ; };func NewReader (img _a .ImageBase )*Reader {return &Reader {_fb :_f .NewReader (img .Data ),_g :img ,_gb :img .ColorComponents ,_af :img .BytesPerLine *8!=img .ColorComponents *img .BitsPerComponent *img .Width };};type SampleWriter interface{WriteSample (_bc uint32 )error ; WriteSamples (_cf []uint32 )error ;};