12 lines
27 KiB
Go
Raw Normal View History

2020-08-27 21:45:09 +00:00
//
// 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/
2020-10-05 19:28:24 +00:00
package imagerender ;import (_b "errors";_e "fmt";_fac "github.com/golang/freetype/raster";_gb "github.com/unidoc/unipdf/v3/common";_eaf "github.com/unidoc/unipdf/v3/internal/transform";_bf "github.com/unidoc/unipdf/v3/render/internal/context";_fa "golang.org/x/image/draw";_ec "golang.org/x/image/font";_bfd "golang.org/x/image/math/f64";_fe "golang.org/x/image/math/fixed";_ea "image";_dc "image/color";_f "image/draw";_g "math";_ee "sort";_d "strings";);func NewContextForRGBA (im *_ea .RGBA )*Context {_gcd :=im .Bounds ().Size ().X ;_af :=im .Bounds ().Size ().Y ;return &Context {_ffd :_gcd ,_abf :_af ,_fba :_fac .NewRasterizer (_gcd ,_af ),_bda :im ,_fc :_dc .Transparent ,_cf :_dfd ,_cfa :_ccg ,_cbd :1,_bca :_bf .FillRuleWinding ,_ggb :_eaf .IdentityMatrix (),_bfb :_bf .NewTextState ()};};func (_bbf *Context )MeasureString (s string )(_ceg ,_ggbcb float64 ){_gcdg :=&_ec .Drawer {Face :_bbf ._bfb .Tf .Face };_gcag :=_gcdg .MeasureString (s );return float64 (_gcag >>6),_bbf ._bfb .Tf .Size ;};func _aec (_aaa ,_ebea ,_bcd ,_cdg ,_bgf ,_ded float64 )float64 {return _aaa *_cdg +_ebea *_bgf +_bcd *_ded ;};func (_bcad *Context )MoveTo (x ,y float64 ){if _bcad ._ddf {_bcad ._abg .Add1 (_cceg (_bcad ._baa ));};x ,y =_bcad .Transform (x ,y );_agfa :=_eaf .NewPoint (x ,y );_ad :=_cceg (_agfa );_bcad ._dd .Start (_ad );_bcad ._abg .Start (_ad );_bcad ._baa =_agfa ;_bcad ._bbg =_agfa ;_bcad ._ddf =true ;};func _cab (_ggg ,_aad ,_cgc ,_fag ,_cbe ,_eebf float64 )_bf .Gradient {_gab :=circle {_ggg ,_aad ,_cgc };_ega :=circle {_fag ,_cbe ,_eebf };_ffdc :=circle {_fag -_ggg ,_cbe -_aad ,_eebf -_cgc };_cad :=_aec (_ffdc ._fbfa ,_ffdc ._ebec ,-_ffdc ._caed ,_ffdc ._fbfa ,_ffdc ._ebec ,_ffdc ._caed );var _cfea float64 ;if _cad !=0{_cfea =1.0/_cad ;};_effe :=-_gab ._caed ;_dbeg :=&radialGradient {_ebab :_gab ,_bbgd :_ega ,_eddb :_ffdc ,_bbab :_cad ,_bbd :_cfea ,_gaag :_effe };return _dbeg ;};func (_egcb *Context )SetMatrix (m _eaf .Matrix ){_egcb ._ggb =m };func (_ebe *Context )FillPreserve (){var _eddd _fac .Painter ;if _ebe ._fdd ==nil {if _bde ,_bee :=_ebe ._cf .(*solidPattern );_bee {_adb :=_fac .NewRGBAPainter (_ebe ._bda );_adb .SetColor (_bde ._bcce );_eddd =_adb ;};};if _eddd ==nil {_eddd =_caea (_ebe ._bda ,_ebe ._fdd ,_ebe ._cf );};_ebe .fill (_eddd );};func (_fca *Context )ClosePath (){if _fca ._ddf {_gdb :=_cceg (_fca ._baa );_fca ._dd .Add1 (_gdb );_fca ._abg .Add1 (_gdb );_fca ._bbg =_fca ._baa ;};};func (_dfg *Context )Rotate (angle float64 ){_dfg ._ggb .Rotate (angle )};func (_edcf *Context )DrawArc (x ,y ,r ,angle1 ,angle2 float64 ){_edcf .DrawEllipticalArc (x ,y ,r ,r ,angle1 ,angle2 );};func (_aef *Context )SetLineWidth (lineWidth float64 ){_aef ._cbd =lineWidth };func _gecf (_efcb float64 )_fe .Int26_6 {return _fe .Int26_6 (_efcb *64)};func (_de *Context )SetDashOffset (offset float64 ){_de ._ed =offset };func (_dff *Context )AsMask ()*_ea .Alpha {_bdef :=_ea .NewAlpha (_dff ._bda .Bounds ());_fa .Draw (_bdef ,_dff ._bda .Bounds (),_dff ._bda ,_ea .ZP ,_fa .Src );return _bdef ;};func (_bbb *Context )Push (){_fbag :=*_bbb ;_bbb ._cfc =append (_bbb ._cfc ,&_fbag )};func _aacc (_gebd float64 )float64 {return _gebd *_g .Pi /180};func (_dda *Context )Width ()int {return _dda ._ffd };func (_bgd *Context )drawString (_ggbc *_ea .RGBA ,_aggd string ,_cbg ,_cbc float64 ){_eacf :=&_ec .Drawer {Dst :_ggbc ,Src :_ea .NewUniform (_bgd ._fc ),Face :_bgd ._bfb .Tf .Face ,Dot :_cceg (_eaf .NewPoint (_cbg ,_cbc ))};_aga :=rune (-1);for _ ,_bed :=range _aggd {if _aga >=0{_eacf .Dot .X +=_eacf .Face .Kern (_aga ,_bed );};_dbdf ,_gde ,_cdb ,_daa ,_aff :=_eacf .Face .Glyph (_eacf .Dot ,_bed );if !_aff {continue ;};_aea :=_dbdf .Sub (_dbdf .Min );_aac :=_fa .BiLinear ;_eca :=_bgd ._ggb .Clone ();_eca .Translate (float64 (_dbdf .Min .X ),float64 (_dbdf .Min .Y ));_deb :=_bfd .Aff3 {_eca [0],_eca [3],_eca [6],_eca [1],_eca [4],_eca [7]};_aac .Transform (_eacf .Dst ,_deb ,_eacf .Src ,_aea ,_fa .Over ,&_fa .Options {SrcMask :_gde ,SrcMaskP :_cdb });_eacf .Dot .X +=_daa ;_aga =_bed ;};};func _gdge (_agd ,_fcaef ,_ggd ,_cde float64 )_bf .Gradient {_