// // 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 (_c "github.com/unidoc/unipdf/v4/internal/bitwise";_ce "github.com/unidoc/unipdf/v4/internal/imageutil";_b "io";);type Writer struct{_fe _ce .ImageBase ;_dff *_c .Writer ;_ef ,_bc int ;_dbc bool ;};func ResampleBytes (data []byte ,bitsPerSample int )[]uint32 {var _gbb []uint32 ; _bb :=bitsPerSample ;var _db uint32 ;var _fb byte ;_fg :=0;_dcb :=0;_af :=0;for _af < len (data ){if _fg > 0{_gg :=_fg ;if _bb < _gg {_gg =_bb ;};_db =(_db <>uint (8-_gg ));_fg -=_gg ;if _fg > 0{_fb =_fb <>uint (_fg ));if _dd < 8{_fb =_fc <=bitsPerSample {_fa :=_fg ;if _bb < _fa {_fa =_bb ;};_db =(_db <>uint (8-_fa ));_fg -=_fa ;if _fg > 0{_fb =_fb < 0{_gc :=_de ;if _cg < _gc {_gc =_cg ; };_ga =(_ga <>uint (bitsPerInputSample -_gc ));_de -=_gc ;if _de > 0{_df =_df <>uint (_de ));if _aa < bitsPerInputSample {_df =_bad <=bitsPerOutputSample {_fba :=_de ; if _cg < _fba {_fba =_cg ;};_ga =(_ga <>uint (bitsPerInputSample -_fba ));_de -=_fba ;if _de > 0{_df =_df < 0&&_cg < bitsPerOutputSample {_ga <<=uint (_cg ); _ba =append (_ba ,_ga );};return _ba ;};func NewWriter (img _ce .ImageBase )*Writer {return &Writer {_dff :_c .NewWriterMSB (img .Data ),_fe :img ,_bc :img .ColorComponents ,_dbc :img .BytesPerLine *8!=img .ColorComponents *img .BitsPerComponent *img .Width }; };type Reader struct{_ceg _ce .ImageBase ;_cc *_c .Reader ;_g ,_e ,_bd int ;_ae bool ;};func (_dfg *Writer )WriteSamples (samples []uint32 )error {for _cb :=0;_cb < len (samples );_cb ++{if _eca :=_dfg .WriteSample (samples [_cb ]);_eca !=nil {return _eca ; };};return nil ;};func (_fd *Writer )WriteSample (sample uint32 )error {if _ ,_fce :=_fd ._dff .WriteBits (uint64 (sample ),_fd ._fe .BitsPerComponent );_fce !=nil {return _fce ;};_fd ._bc --;if _fd ._bc ==0{_fd ._bc =_fd ._fe .ColorComponents ;_fd ._ef ++; };if _fd ._ef ==_fd ._fe .Width {if _fd ._dbc {_fd ._dff .FinishByte ();};_fd ._ef =0;};return nil ;};func (_f *Reader )ReadSamples (samples []uint32 )(_gb error ){for _ab :=0;_ab < len (samples );_ab ++{samples [_ab ],_gb =_f .ReadSample ();if _gb !=nil {return _gb ; };};return nil ;};type SampleWriter interface{WriteSample (_cca uint32 )error ;WriteSamples (_dde []uint32 )error ;};func (_dc *Reader )ReadSample ()(uint32 ,error ){if _dc ._e ==_dc ._ceg .Height {return 0,_b .EOF ;};_bf ,_bg :=_dc ._cc .ReadBits (byte (_dc ._ceg .BitsPerComponent )); if _bg !=nil {return 0,_bg ;};_dc ._bd --;if _dc ._bd ==0{_dc ._bd =_dc ._ceg .ColorComponents ;_dc ._g ++;};if _dc ._g ==_dc ._ceg .Width {if _dc ._ae {_dc ._cc .ConsumeRemainingBits ();};_dc ._g =0;_dc ._e ++;};return uint32 (_bf ),nil ;};type SampleReader interface{ReadSample ()(uint32 ,error ); ReadSamples (_a []uint32 )error ;};