2020-11-11 18:48:37 +00:00
|
|
|
package bitmap ;import (_f "encoding/binary";_a "github.com/stretchr/testify/require";_b "github.com/unidoc/unipdf/v3/common";_df "github.com/unidoc/unipdf/v3/internal/bitwise";_gf "github.com/unidoc/unipdf/v3/internal/imageutil";_d "github.com/unidoc/unipdf/v3/internal/jbig2/basic";_cb "github.com/unidoc/unipdf/v3/internal/jbig2/errors";_de "image";_ea "math";_e "sort";_cg "strings";_g "testing";);const (PixSrc RasterOperator =0xc;PixDst RasterOperator =0xa;PixNotSrc RasterOperator =0x3;PixNotDst RasterOperator =0x5;PixClr RasterOperator =0x0;PixSet RasterOperator =0xf;PixSrcOrDst RasterOperator =0xe;PixSrcAndDst RasterOperator =0x8;PixSrcXorDst RasterOperator =0x6;PixNotSrcOrDst RasterOperator =0xb;PixNotSrcAndDst RasterOperator =0x2;PixSrcOrNotDst RasterOperator =0xd;PixSrcAndNotDst RasterOperator =0x4;PixNotPixSrcOrDst RasterOperator =0x1;PixNotPixSrcAndDst RasterOperator =0x7;PixNotPixSrcXorDst RasterOperator =0x9;PixPaint =PixSrcOrDst ;PixSubtract =PixNotSrcAndDst ;PixMask =PixSrcAndDst ;);func (_fadg *Points )Add (pt *Points )error {const _gebd ="\u0050\u006f\u0069\u006e\u0074\u0073\u002e\u0041\u0064\u0064";if _fadg ==nil {return _cb .Error (_gebd ,"\u0070o\u0069n\u0074\u0073\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064");};if pt ==nil {return _cb .Error (_gebd ,"a\u0072\u0067\u0075\u006d\u0065\u006et\u0020\u0070\u006f\u0069\u006e\u0074\u0073\u0020\u006eo\u0074\u0020\u0064e\u0066i\u006e\u0065\u0064");};*_fadg =append (*_fadg ,*pt ...);return nil ;};func _aeaef (_daad ,_cgce *Bitmap ,_edaa *Selection )(*Bitmap ,error ){const _adeda ="\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u004d\u006f\u0072\u0070\u0068A\u0072\u0067\u0073\u0032";var _gfce ,_efdf int ;if _cgce ==nil {return nil ,_cb .Error (_adeda ,"s\u006fu\u0072\u0063\u0065\u0020\u0062\u0069\u0074\u006da\u0070\u0020\u0069\u0073 n\u0069\u006c");};if _edaa ==nil {return nil ,_cb .Error (_adeda ,"\u0073e\u006c \u006e\u006f\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");};_gfce =_edaa .Width ;_efdf =_edaa .Height ;if _gfce ==0||_efdf ==0{return nil ,_cb .Error (_adeda ,"\u0073\u0065\u006c\u0020\u006f\u0066\u0020\u0073\u0069\u007a\u0065\u0020\u0030");};if _daad ==nil {return _cgce .createTemplate (),nil ;};if _ffga :=_daad .resizeImageData (_cgce );_ffga !=nil {return nil ,_ffga ;};return _daad ,nil ;};type Getter interface{GetBitmap ()*Bitmap ;};func TstImageBitmap ()*Bitmap {return _bgec .Copy ()};func (_cdfae CombinationOperator )String ()string {var _dbfa string ;switch _cdfae {case CmbOpOr :_dbfa ="\u004f\u0052";case CmbOpAnd :_dbfa ="\u0041\u004e\u0044";case CmbOpXor :_dbfa ="\u0058\u004f\u0052";case CmbOpXNor :_dbfa ="\u0058\u004e\u004f\u0052";case CmbOpReplace :_dbfa ="\u0052E\u0050\u004c\u0041\u0043\u0045";case CmbOpNot :_dbfa ="\u004e\u004f\u0054";};return _dbfa ;};var (_eeeg =[]byte {0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF};_gfbgf =[]byte {0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};);type CombinationOperator int ;func _aaea (_gbga ,_aeed *Bitmap ,_fdbfe ,_aadgf int )(_gecfc error ){const _fagd ="\u0073e\u0065d\u0066\u0069\u006c\u006c\u0042i\u006e\u0061r\u0079\u004c\u006f\u0077\u0034";var (_aaba ,_ecga ,_eage ,_fefb int ;_fedc ,_facee ,_dage ,_ddgffa ,_fdedc ,_afece ,_eeag byte ;);for _aaba =0;_aaba < _fdbfe ;_aaba ++{_eage =_aaba *_gbga .RowStride ;_fefb =_aaba *_aeed .RowStride ;for _ecga =0;_ecga < _aadgf ;_ecga ++{_fedc ,_gecfc =_gbga .GetByte (_eage +_ecga );if _gecfc !=nil {return _cb .Wrap (_gecfc ,_fagd ,"\u0066i\u0072\u0073\u0074\u0020\u0067\u0065t");};_facee ,_gecfc =_aeed .GetByte (_fefb +_ecga );if _gecfc !=nil {return _cb .Wrap (_gecfc ,_fagd ,"\u0073\u0065\u0063\u006f\u006e\u0064\u0020\u0067\u0065\u0074");};if _aaba > 0{_dage ,_gecfc =_gbga .GetByte (_eage -_gbga .RowStride +_ecga );if _gecfc !=nil {return _cb .Wrap (_gecfc ,_fagd ,"\u0069\u0020\u003e \u0030");};_fedc |=_dage ;};if _ecga > 0{_ddgffa ,_gecfc =_gbga .GetByte (_eage +_ecga -1);if _gecfc !=nil {return _cb .Wrap (_gecfc ,_fagd ,"\u006a\u0020\u003e \u0030");};_fedc |=_ddgffa <<7;};_fedc &=_facee ;if _fedc ==0||(^_fedc )==0{if _gecfc =_gbga .SetByte
|