// // 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 (_g "github.com/unidoc/unipdf/v3/internal/bitwise";_de "github.com/unidoc/unipdf/v3/internal/imageutil";_df "io";);func (_fa *Writer )WriteSample (sample uint32 )error {if _ ,_ada :=_fa ._eea .WriteBits (uint64 (sample ),_fa ._bd .BitsPerComponent ); _ada !=nil {return _ada ;};_fa ._eb --;if _fa ._eb ==0{_fa ._eb =_fa ._bd .ColorComponents ;_fa ._eee ++;};if _fa ._eee ==_fa ._bd .Width {if _fa ._gec {_fa ._eea .FinishByte ();};_fa ._eee =0;};return nil ;};func NewWriter (img _de .ImageBase )*Writer {return &Writer {_eea :_g .NewWriterMSB (img .Data ),_bd :img ,_eb :img .ColorComponents ,_gec :img .BytesPerLine *8!=img .ColorComponents *img .BitsPerComponent *img .Width }; };type SampleReader interface{ReadSample ()(uint32 ,error );ReadSamples (_a []uint32 )error ;};func (_ac *Reader )ReadSamples (samples []uint32 )(_ad error ){for _dfc :=0;_dfc < len (samples );_dfc ++{samples [_dfc ],_ad =_ac .ReadSample ();if _ad !=nil {return _ad ; };};return nil ;};func (_afc *Writer )WriteSamples (samples []uint32 )error {for _bc :=0;_bc < len (samples );_bc ++{if _bgf :=_afc .WriteSample (samples [_bc ]);_bgf !=nil {return _bgf ;};};return nil ;};type SampleWriter interface{WriteSample (_ca uint32 )error ; WriteSamples (_dea []uint32 )error ;};func ResampleBytes (data []byte ,bitsPerSample int )[]uint32 {var _bg []uint32 ;_fb :=bitsPerSample ;var _cc uint32 ;var _dc byte ;_dfe :=0;_ba :=0;_e :=0;for _e < len (data ){if _dfe > 0{_aa :=_dfe ;if _fb < _aa {_aa =_fb ; };_cc =(_cc <>uint (8-_aa ));_dfe -=_aa ;if _dfe > 0{_dc =_dc <>uint (_dfe ));if _gca < 8{_dc =_da <=bitsPerSample {_cf :=_dfe ;if _fb < _cf {_cf =_fb ; };_cc =(_cc <>uint (8-_cf ));_dfe -=_cf ;if _dfe > 0{_dc =_dc < 0{_bgc :=_ab ;if _ge < _bgc {_bgc =_ge ;};_ef =(_ef <>uint (bitsPerInputSample -_bgc ));_ab -=_bgc ;if _ab > 0{_gef =_gef <>uint (_ab )); if _cgf < bitsPerInputSample {_gef =_ee <=bitsPerOutputSample {_ace :=_ab ;if _ge < _ace {_ace =_ge ;};_ef =(_ef <>uint (bitsPerInputSample -_ace )); _ab -=_ace ;if _ab > 0{_gef =_gef < 0&&_ge < bitsPerOutputSample {_ef <<=uint (_ge );_bga =append (_bga ,_ef );};return _bga ; };func NewReader (img _de .ImageBase )*Reader {return &Reader {_b :_g .NewReader (img .Data ),_f :img ,_cga :img .ColorComponents ,_dff :img .BytesPerLine *8!=img .ColorComponents *img .BitsPerComponent *img .Width };};type Reader struct{_f _de .ImageBase ; _b *_g .Reader ;_c ,_cg ,_cga int ;_dff bool ;};