// // 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/v3/internal/bitwise";_g "github.com/unidoc/unipdf/v3/internal/imageutil";_b "io";);func ResampleUint32 (data []uint32 ,bitsPerInputSample int ,bitsPerOutputSample int )[]uint32 {var _cd []uint32 ;_be :=bitsPerOutputSample ;var _cda uint32 ;var _dfb uint32 ;_ff :=0;_cb :=0;_bc :=0;for _bc < len (data ){if _ff > 0{_eg :=_ff ;if _be < _eg {_eg =_be ;};_cda =(_cda <>uint (bitsPerInputSample -_eg ));_ff -=_eg ;if _ff > 0{_dfb =_dfb <>uint (_ff ));if _dge < bitsPerInputSample {_dfb =_ag <=bitsPerOutputSample {_fb :=_ff ;if _be < _fb {_fb =_be ;};_cda =(_cda <>uint (bitsPerInputSample -_fb ));_ff -=_fb ;if _ff > 0{_dfb =_dfb < 0&&_be < bitsPerOutputSample {_cda <<=uint (_be );_cd =append (_cd ,_cda );};return _cd ;};func NewReader (img _g .ImageBase )*Reader {return &Reader {_cc :_c .NewReader (img .Data ),_d :img ,_ee :img .ColorComponents ,_bb :img .BytesPerLine *8!=img .ColorComponents *img .BitsPerComponent *img .Width };};type Writer struct{_bed _g .ImageBase ;_af *_c .Writer ;_bedc ,_ec int ;_bf bool ;};func (_fg *Reader )ReadSamples (samples []uint32 )(_a error ){for _cf :=0;_cf < len (samples );_cf ++{samples [_cf ],_a =_fg .ReadSample ();if _a !=nil {return _a ;};};return nil ;};func (_gb *Reader )ReadSample ()(uint32 ,error ){if _gb ._fd ==_gb ._d .Height {return 0,_b .EOF ;};_ef ,_dg :=_gb ._cc .ReadBits (byte (_gb ._d .BitsPerComponent ));if _dg !=nil {return 0,_dg ;};_gb ._ee --;if _gb ._ee ==0{_gb ._ee =_gb ._d .ColorComponents ;_gb ._gc ++;};if _gb ._gc ==_gb ._d .Width {if _gb ._bb {_gb ._cc .ConsumeRemainingBits ();};_gb ._gc =0;_gb ._fd ++;};return uint32 (_ef ),nil ;};type Reader struct{_d _g .ImageBase ;_cc *_c .Reader ;_gc ,_fd ,_ee int ;_bb bool ;};type SampleWriter interface{WriteSample (_cee uint32 )error ;WriteSamples (_cdf []uint32 )error ;};func (_dfg *Writer )WriteSample (sample uint32 )error {if _ ,_dee :=_dfg ._af .WriteBits (uint64 (sample ),_dfg ._bed .BitsPerComponent );_dee !=nil {return _dee ;};_dfg ._ec --;if _dfg ._ec ==0{_dfg ._ec =_dfg ._bed .ColorComponents ;_dfg ._bedc ++;};if _dfg ._bedc ==_dfg ._bed .Width {if _dfg ._bf {_dfg ._af .FinishByte ();};_dfg ._bedc =0;};return nil ;};type SampleReader interface{ReadSample ()(uint32 ,error );ReadSamples (_f []uint32 )error ;};func (_dfd *Writer )WriteSamples (samples []uint32 )error {for _gbfb :=0;_gbfb < len (samples );_gbfb ++{if _bd :=_dfd .WriteSample (samples [_gbfb ]);_bd !=nil {return _bd ;};};return nil ;};func ResampleBytes (data []byte ,bitsPerSample int )[]uint32 {var _ab []uint32 ;_de :=bitsPerSample ;var _ed uint32 ;var _gbf byte ;_df :=0;_fc :=0;_da :=0;for _da < len (data ){if _df > 0{_gcg :=_df ;if _de < _gcg {_gcg =_de ;};_ed =(_ed <>uint (8-_gcg ));_df -=_gcg ;if _df > 0{_gbf =_gbf <>uint (_df ));if _ea < 8{_gbf =_ce <=bitsPerSample {_eag :=_df ;if _de < _eag {_eag =_de ;};_ed =(_ed <>uint (8-_eag ));_df -=_eag ;if _df > 0{_gbf =_gbf <