From e545bb2ad81c4ec43f75d5585ba40ff6a2072897 Mon Sep 17 00:00:00 2001 From: Antony Lee Date: Tue, 29 Apr 2025 16:13:49 +0200 Subject: [PATCH] Rasterize dvi files without dvipng. This patch drops the reliance on dvipng to rasterize dvi files prior to inclusion by agg, instead performing the rasterization ourselves (as a consequence, the rasterization output also becomes dependent of the freetype version used). Note that this approach will be needed anyways to support xetex and luatex, as dvipng doesn't support dvi files generated by these engines. Baseline images change slightly, for the better or the worse. The top-left blue cross text in test_rotation.py ("Myrt0") seems to be better top-aligned against the blue line (the old version overshot a bit); the bounding box of the formulas in test_usetex.py seems a bit worse. --- lib/matplotlib/backends/backend_agg.py | 47 +++++++++++--- .../baseline_images/test_usetex/eqnarray.png | Bin 1322 -> 1925 bytes .../baseline_images/test_usetex/rotation.png | Bin 41784 -> 45461 bytes .../test_usetex/test_usetex.png | Bin 13512 -> 15757 bytes src/ft2font.cpp | 32 ++++++++++ src/ft2font.h | 5 ++ src/ft2font_wrapper.cpp | 58 ++++++++++++++++-- 7 files changed, 129 insertions(+), 13 deletions(-) diff --git a/lib/matplotlib/backends/backend_agg.py b/lib/matplotlib/backends/backend_agg.py index b435ae565ce4..473fe7da3a0c 100644 --- a/lib/matplotlib/backends/backend_agg.py +++ b/lib/matplotlib/backends/backend_agg.py @@ -22,6 +22,7 @@ """ from contextlib import nullcontext +import math from math import radians, cos, sin import numpy as np @@ -30,8 +31,9 @@ from matplotlib import _api, cbook from matplotlib.backend_bases import ( _Backend, FigureCanvasBase, FigureManagerBase, RendererBase) +from matplotlib.dviread import Dvi from matplotlib.font_manager import fontManager as _fontManager, get_font -from matplotlib.ft2font import LoadFlags +from matplotlib.ft2font import FT2Image, LoadFlags from matplotlib.mathtext import MathTextParser from matplotlib.path import Path from matplotlib.transforms import Bbox, BboxBase @@ -208,7 +210,8 @@ def get_text_width_height_descent(self, s, prop, ismath): _api.check_in_list(["TeX", True, False], ismath=ismath) if ismath == "TeX": - return super().get_text_width_height_descent(s, prop, ismath) + return [*map( + math.ceil, super().get_text_width_height_descent(s, prop, ismath))] if ismath: ox, oy, width, height, descent, font_image = \ @@ -227,19 +230,45 @@ def get_text_width_height_descent(self, s, prop, ismath): def draw_tex(self, gc, x, y, s, prop, angle, *, mtext=None): # docstring inherited # todo, handle props, angle, origins - size = prop.get_size_in_points() - - texmanager = self.get_texmanager() - Z = texmanager.get_grey(s, size, self.dpi) - Z = np.array(Z * 255.0, np.uint8) + size = prop.get_size_in_points() + dvifile = self.get_texmanager().make_dvi(s, size) + with Dvi(dvifile, self.dpi) as dvi: + page, = dvi + w = math.ceil(page.width) + h = math.ceil(page.height) + d = math.ceil(page.descent) + + image = np.zeros((h + d, w), np.uint8) + + for text in page.text: + hf = mpl.rcParams["text.hinting_factor"] + font = get_font(text.font_path) + font.set_size(text.font_size, self.dpi) + slant = text.font_effects.get("slant", 0) + extend = text.font_effects.get("extend", 1) + matrix = [ + [round(65536 * extend / hf), round(65536 * extend * slant)], + [0, 65536], + ] + font._set_transform(matrix, [0, 0]) + glyph = font.load_glyph(text.index) + # text.y is upwards from baseline, _draw_glyph_at wants upwards from bottom. + font._draw_glyph_at(image, text.x, d + text.y, glyph, + antialiased=gc.get_antialiased()) + + for box in page.boxes: + x0 = round(box.x) + x1 = x0 + max(round(box.width), 1) + y1 = round(h - box.y) + y0 = y1 - max(round(box.height), 1) + image[y0:y1, x0:x1] = 0xff - w, h, d = self.get_text_width_height_descent(s, prop, ismath="TeX") xd = d * sin(radians(angle)) yd = d * cos(radians(angle)) x = round(x + xd) y = round(y + yd) - self._renderer.draw_text_image(Z, x, y, angle, gc) + self._renderer.draw_text_image(image, x, y, angle, gc) def get_canvas_width_height(self): # docstring inherited diff --git a/lib/matplotlib/tests/baseline_images/test_usetex/eqnarray.png b/lib/matplotlib/tests/baseline_images/test_usetex/eqnarray.png index 249f15d238ddacf216965801675667d6edb85da3..96028d2951c399b21d7900d4c239df95ea106b4d 100644 GIT binary patch literal 1925 zcmb7_XHXN^7Jvhh7Ntp%A|e8YVgdw>ykBp2W`CS>=H5GZ&Ybq0TsM@1G)N5u005+& z9BnZ|8~nFOiVJnjbg8@0coFTqiP-26VtgPT2e=SOjJX<3yc!;KJPwB^ghxl2Kw&Vb zF*Fz#XJKq+7>WxFguz41;31~aV7M{-wDD;e?9}lvA~A-5Ffxk#-*;#xw!!>y#W& zogN9KPtqZgBq?P^O19*8V5vOEZjh^i!PO#sL-}q zE#@RR1lk$$Hh*$%lDTgw-`^knRBkIhUBuq_FM0rX0fP>h$vp6ZXE^H@au(ot5*76k+XeO;V* zSVEy3{#j)nJ?Vx*$uRw(28M?9QVJ)B?s&A28lOCgUmhN+wVD6?{8~GH*4dAFR8&z> zF(xP|h@NU^XGf({`=zC&$D<-6XWzf~ZoPA7cs*AEoUr!o&ktN~VL63+f1v%%-{n?ncxIL}a1Q){ZLBfZL3cMzT%W@duFO|jV{MurcL z{U_<`57nYxw_{pH{++j87lS1rnfDotuGTFkz#3@c-|{%XEb_L$uoJzrQE8L z6fCA|c<*hs`2qpCxy1)BPO_@)^VRH91?wJx6CIKD{;VWri3; zzgaS@VLQ8mhh1c7G~MOf?G~Ul(kf;1+?lxVw>b33b<4iBDu>6D4KkJ93ubRl#me7iv2zfSoqamO4()-tW-O&O5YIBCMlf zzM!P6Y`Ev9roOp(IR=ZZSs~e`6lk1jd?s$0&W>ADTl~Nru|yZ8NsTX#-FL8&ot>Rc z$};4*JE~A`+&F}Cb`BCoyx7@!*1tWh$luG;6OTlSj&ivXPZ}Gu>+9>8Oyhpsk%57MkcSg@M_tNJeg0iSR=hza^ljB_drM0T zv$eHAI2&&v5Xe!`IcuAW%Dn5>!`Hu$4X^|o%Ofvx6`GmM%2t1t^P4gVVLNKFv-#O0 z!1HYB5#t)y(8Em!#cq)|_pDw3i_l{_ef-P97qyH+O}w8Um7lcrd9d0Xy#cjO+lkSE zc>gy8DK6f#7)QWji~Z?zI>E=M%HQ0~EFugcR|kbczce-JwYIg*6@$@?spU}twEQ~l zY+`qN=7p9`ph7$8O`g_SCZyL%FBhtt^+GUl<2wktB0*K>1}cUfw} ziEQbuQo-eV7Ubpzwv8@)s7AyZOfd-#ZCDIub90r43W$h^a6`HDzJARqtl43vY{5fu zI2e2g+39c8)6*mIQ5_a^VD8J8h%xs0-^DGP6`t`{Eg0k4;Ux?P++HH7&p=;a%E0p? z7Hi|-;eilydKJGq{Sr0b6+P7z4(r#)HWD|}tx~sdC#zO=3}q@~0s`9fUji6Mit_3( z>MjuhPHP+h27Tq#4OK-Ajk~1|z|OQ?A7C6MNKq$acUKUP6icEnttNck;?E^Pw0YAn zuM_un5+lL7x|W&{x!>rhn&H$uciKVsqT=_>CD%$hT0ygEIGnB!6*t{7Csnq0)B1XQ zhYG2ue1+s)cGpx=y(XhET7F+`JBK8d`oG;yFaAif<x-#Too=ofRi1{wiS7q^cOdMdxii2 literal 1322 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Ė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%0A92~-s<#gA#@5}OE7_{!k!pQOcrPDR}lmVRoR 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 U{Y>p=3jWbl*HL?{ViENJ0HF}a1ONa4 diff --git a/lib/matplotlib/tests/baseline_images/test_usetex/test_usetex.png b/lib/matplotlib/tests/baseline_images/test_usetex/test_usetex.png index e4a9183612f5255bb048c6ffa1667584b6977405..dc4c931cb9b6fa2d4a1eca0d943fa14cc1c1d5d9 100644 GIT binary patch literal 15757 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 Txv&VBOo)>FE4dOG)4=})y6zS2 literal 13512 zcmeHuc|4T;_xDAmZXzj55#1#%wi2>rX+g-6?2LWiW5&*Cb(e5Q$WD^%>zEo@%8fM1 zKDLHRVvHp*wlU*5bASJMp1+=dp5H&u>-Ft5$Tino*Y!E)e9n2F_xpHgY^cM{d6*MH z5N_RTS4|LvJqAJ8zV6|GBMQA=e!!0#Xe~?hO@B9Zh-08D;_HYG@bO3ccsd;ob`1>j z^!Gb2BPVlCCcr-keNIX7f{cr6@L5Usb8;>UP6|%S%2G!?(C7daS=s;nK^gx*ciD2% zPdm8y9|6~_f)He%BkPOpl}3>#g2*4yy?V(sG;5w5fzDiun%+p{A2D&^x)XWO3gf#+ zFS|W?^q|L-U+hlF3x1i;c195TM|*ky`O$ZawEv&_G4XhV)ayUxi}AZUKR-U{CwFut zRBoj6G~2NH&5+q$AH#DIm-3MZj({{+kqu9kE zWtC&M80`CG#F!On{Bdp1;Yl4H8yE`0&zSaO2s?rZJwW!rK_T{|aL92_47~H;&;P#h zKVcFla%SV%lZ)=6$!q5mJy+jn^-l@KJNMcuiFVy}zU_7e*@+-$_p=Wk~dVwZ#G zM^7YnOrj5I?o#Kj`tuXNA!VcTOTn1v#YOb#&{p3`LyH&_k$vtyWAz3diDE+)YC|e0 zPU8p2U)EEd-e*_*R|1G0k7(rYkNmeTd|ZPXg8_<9_hFYNdF(msu? zDwE=;O0C%BDR=}(V(GRy(H#X&yk%x@@i?sLKnH>-rgJB zd-tBo?DE=XG7gK0Sr{25_D`{4TBRJ2m?a)D^|IpP({IRrx+Z6Z2LAcyUab}z<|;&` zrU_j6<;$0I6L;U`$)!KO%g;t*1?5+6X=&-hhYnR^7iVWp@{I$kj^(MdQpQuI$n~nN z=w|WLaIetN;ok6=@S~7Ks#?B&&0_?K^X2pN3iGh>YW9C{k;}-*F_%dTA{-Q|C@(j# ztF%aZ+C2@)Nu+%DD+NeH9jp7@!CXdYpEyKuKM9^-Z@k)X|W}dcS&^_aj+@!!L4<;_wDmu9B(x1V1O^Cmcs~l z*z($E*g3ww(ma}nR`FeIsp7kT`4RLz=4VopUcCI$pdiAdieg7h!Bif4 z53gR{h-~svQ}m4Py9Ubu`w#T>9rKLtOn`qc_r_FPUTYw_#JJ_k`}giXFMK&cF#l*x>y*ImxftEiCK#m=U>rBF+uc*1hPtg0wZ%bpQJLYg-wM0zKP$OR1NdM|+;)*v<;G9R2LsGh?}QTl8C7 z#mw><0YCHf>o1?<_>hcUs1_vSJ@~U`#7ApAGbcyJW_J}jMl zD(VkDJ4dDVfBJO2&9!W#zN^MPKql>`O159d!_$I>**&fHbnnJriQSY>>E}OAFGDo{ znZ?d=9AOVI1*8Ao*m@pOp87d&esR&_)WN=)nOBkOxiuqY@Y;&T_TSU+jQ$-vaFN_x zBo^nfsMGX3ahv-0i;bh?!9g?3b8h53q;REKxV9uAQvR@+Oj_+-`}2Nmg7Ml@%NrRb z_5KD%l)JlC#k&#yIJ{P=+l-E{Yo6ykBb4MPf+m4n5GOjdYV8x7E*|FBl)U zo91Nysw8n6(d4$G^U31YgCvq~NF;k+zr9=pdyh~0snA3t8aweue=pOui1 z7#JNbVbIqkMR+dMRb0+@FiK@ZSSMY}H?9iVe)Y1bNay_d^S?JDxy$vFY-Q3$M@I)n zMvAjlLrO|ZOTQ@~9->f^UhVf@^*?pc`gfpyxx3{)u-_>O6 zjjU~K277z+6B2m1xw(stPbs0y(+dgM?7(jWe>Czko-$jT>H0?b@41xqtc3 z!hTN!1A~z`!H|%U3uNnH2yUGOkz0hva+&pZ#ghI6RBZU2RnKBmJ@wqm;yY*lMJpa& zut}Vqon62AqtOEkeqAnd2K!z39^Ml#E+}v|z&pnu|KwH+dyI1@yS_}AbJr}co>*(R z9NsvJo3{21o+p_}^hTv-77LOazp`A&KvSVjY=8agESS2NX5%I zAO_MRJjD6nv|S>VLz14+QmBHCerdPBKodWFgn??3i`=1IcQ1uC+R@h5BzgCEI5=p+ zCNYy8Ba_P`)hpq(u;2&g@bvJw2Kj=%wuqN)plxQZfNM|cg5~ujl8KyMkWH>!x$@Di z_OP&UZ38*>!2@w!6bcpmYgbiM5Bp!-Q#W(p>Zl5gObkpfn~}ZEGwgE;ii(Qn>YAF= z3;QV<1Gs@Gd$^QUVCUb31Wmz+y_|9L>X8!IXHttzJDx@? zZfr!|ym>QNX*u*F1b;7+K_|X<%{MmwPv$)GnCyp#4Tb*wL-&nsMG2KR^})=Pkf><= zn&T>+Fb)Wo-59 zlS;NvO}AFpn(Qxz{dVc4(gaTMGorCeKRT23?Y4)jowe{|s9S`IMOgxQ;rrLG4oh&1 ze>zt!qW)CzsbZnTj?(c3INUoQEXau7o)!BlY?yP=YHofWw|Jg+&%y2-wT2&<&pB!~ zD|CjIZrk|ycu8V`c^P3fdb9WYxRHi+v^?~?S~xj$gke?OkwE73MP|TLUyf4N^SQd{|$9@7BbF7QG7_OC0D7!hj1S*?^o?p zfe_eNAVovgH#leRcY>s^UuZV%W%Iu57B((k4Au-eEI5Q}5~n=mmG2I=Tn(?bPAX5; z0t5he&~M_fC~0VDc!}Sgr^0^pv3pcCcq}!0VR^&+i>tW-l%_5LCgzRp>Q{!PlsU%7 zvKY$7dH2tzX#YyV5g+p;5i6yz6Qof_!h$^-oH@C6LLObr$um&f`T{GF_YvKnv?|Y4F4V|L8rakhIKcnmI z#a3sn)Sab#lNMQOGepRuS+nB**RQGvv9Su^dwlA+txS=RqD`-suk@wb8(|l7YBbc# zG_J+O#~^!VrY951{Jx@9P|E@>)?KISEm7|vI~5cZxK8tP?qY34w4-VvT59Zl>N7Vd z%yz{Ij|N*A+Ulx|iuu57G_GC9x)K0s0n}#57(;KTSUHU6n>nfwwM6pvDUf7{ylS(w z%d@K5yZ3R*HSsxfsEwjvv{=@3Gv3KOnV9aeSObi!vV&F z?33s7?kiOPCr_T>_!p}B0(#3PKbNIeH#IdWOprc&_-l26Tzd7`4aIcvG@_@E&-JCy zFY4vx;lRVh6{@N6bKi}F_HoivN+vh?- z;^&Fw=e++^uaNX**0Zratzoj$3BNzCjRiLM?EL5^ZSyV+hxesWD7`H$F;L(8DCqvV zi#y8rQ7vapa7&@)7pfFqmXh?+irx&YUk1;CJ5D6)?qa`vqC+$#c$baz4dHKGB{%e2 z%3OWi02Xym+XTO^O7N_Vq;@5kl8rQEwD6Oc8PLe{b*F20tu4WYG@8Et6L2w3lLnk&flJYqayXY6*E`3r@e0Z)}M+xp`W0 zCWTpTuJR{T*wJYy_6;X6II8^W%F3`bzS^?vd8VjkBI^m0I$zv*mj@31$h11oEURdA z`x^L0=FMI`EVh|Uc%3ENLu;9pC?DcG3)>7L%!by&ObOm5JsO*Da#;&i&-MTK@ccUm z;}IW{AI|Q>R3Iu)IUDwHXJ_Z5KlhU+xno;hCs)c^-jX!Lp(|im@8!5F^~YUIBC==l zAm=VzeZ4t47hFn@E4CxIln#!L5`Ju?U)P2%!|$EQ;lp0WuGHi~ty7(TOQ_RD0@@1{ z%9Dvjd-QkRV^3b$5Pw)-H!_m-ZeJ<9<1NltOsFqZ5Dj!Z3QZ>@7OVbe*F4p;3<2b@ zy#w}ys_00Bfi*M?|^;Dv4>!;kN8n$BP$^VyrH zfaA>Pne}dGWNk~UYHMrVk_pz<*78uQu-bDI%~(`(w}WCk@?ME+_qYwz64=D8t*wu) z9`p87u#B&+u6|S~k;-`qjs<)7z`j;cRxXCJ<#5&md%EI6Au0=J`?o5@iO^mzFE72m z$dLROC8$UG)dcL7{GLY(+ciWPo8Bo4Vz_N##g++U5pO9a6K;pY?X+;NcC{=Ut6cLt z0X1*cXCB&y)zx4qsU-9ilD8ki;s)Qtf1aQBDzCmw5)vTd5#WiGO$lkjo(#PxlSVv|Ms$sRl2VTt8XA72()|7!A;p_?qvXqILc)V5{O3E5 z?AZz1UUGH+Zqg1YReyK7u<$W-N05-_$MBV2Lk2oJv1*fw(7sMIMe(EbXf9n+s045d zE0#w75>0d`hwMsI-;G;fm*L)HKHNRMEICT@!I7Iuzh&b$*8nYy(kVK)wf@A}lx0C` zG}h45lnTMs=>fg>qc$hlum%^#`7C(|F^>0AQ&aVWV{?>lJ$Ll(&W0by0$%icY8`vx z+C45JB=kx}$Zk{#^^R5_kXbq9lkHx9a_ED`UPboYZVP<*WZ9bU@q|w3*VX#f0eD76 zzNNI=uoEwF9nITF#cMBIeA4BXqF4Bl33qo5Nj~v!Pba(4c5{^9Hm>~R;o>^sw>k7f zcpPp7^@%v&o|%>PbZp-3$ZP%@>p<#$_B1cHPg8*k5sb74&Cq@TVBlj``Rzy8x)Qf- zsB{0M%*@OfW3kwgW+(;`f$vQ?@89X8tem*}q+_x=4R=UX)b560QUC0qiD^9lVR)w| zl@<`Vx)|<;Gp{U6QA_T81(3ui?SS`Iu4z>F41}A0h4kw$^!oQ=HxBhPjC}%!XH=t96IomhFO+Dl7acgr^e!A{p@{qK4!BmfL_`#&EajI z^RL;qA^8YLL)pgO`=Lv?Awf0m?y11dQG25qt}DyZ2bu%OG)a}5?v%)fjF}NJYW8B( z_KC{nP2n9=X(d#Z?(vdoM)&qcT|(rn9V2luQm0n%XI)r2ZanIh4)iyGrnc!t>V>k~ zgBEF+Mw~Srxz+HUTNH3 z)!#R>qAyGN{Mk^Axwajm^;h`Z6P*>w3*Fsi(LXyhDqbn)c0;>DO@I_)&eZ;g$@tI71`JLFM|#2*SGRS*OxzJh|zaonS#NRlTnNvgm3L3QdC83@U73x z=8=S5FMKVY9l0$dsiKVW-tjB?=eZ*Nm>0{k>ZO7mi8GJXF3jL^v-`c>v1fEg>!$Qj z(Oou@G8!SPPooYI6+*B#Y$}^QJLzGRhs}NWZ)&7BcYnF*I*n?gmyg!b^mO}j8klvn zH2bYhcZ~Yl)8H?w```FCmd?7`MJ-TjRP3TR|KMj%yq0OY)l8Zs{9KToeMF|qSS`L0 z`-f;4(VyU57uMm2iu!dR?JZL;YpXBzgl>ceV;-mBa63fslmzMn^iJQn7R6kq`rgpItPpL6<* zwwK+-yPAvY!~IBuyESBV2?4YB3^fFL>+Pd+?XWc0M&_&}VRO~Uqd(O*oVC!o^Ar7M z7bYs+Y;8r1srXCVX=s#U!_U4L>TW)!yV(}OOjc|NmZcI%(|tK#tLo?8I2vH`R%`6H z{_a1a^l@%Ij(d7mb)lTPyPT$FYQ%MA#_Yn80r)ays@mJ%5+ZDV?GQEzDo^29*B+jI zVOep8oB(=HMUMaY@@gt-#U>wu{xeX zmia2r{`D{;V1}ni|Liz~7ddjVHt9uW)Eqf{qG4hxKr484>>E9fq6KKR{(~-kX z>Iw@{zl6miHAySQ`PgMyT4zKWcH;bb|6bq8z6*F{a6pRv4UQ;lo`oRuvK z-wnRl*4r^(zEqdU93SSK`+dRJ`bIY3t?d=tiej;`%VQP8Z%e}UPnLXHuebO5;LQB` zjt8hxAkow^{-Q45#hTno?-12J1qryjqLgaa?FEPe=tJW4GG(dbXTvv*rOt?y?axEF z!JyhZAq@SfXpg_9yv;obE^f?*i7*GP%8m>6O(V?amGIIie+2iBB(LRez-(92if@@v z_|C=;lZfBf=s=9lO*!bFaCig)qWKmOI-+{7EQECDOT3-8fAN&V;l{yXy%T&7 zYo>`A)r9T%mYR9r#ePTyWhne*F2Pv;pA}e#!aXsXJIY<~PoNM&i;u(OC3Cy|Un9?m zQzZ*GeQ=0kcqy(g03T5O9a^m1?x7xm&Xj-#vX`f4H5Q-KT3;Wm+xJp>3^)&kwP7tJ zUQ6(-u{+Qt(9Z(p5lp-;&Sw>9Zng(h6uVEX-e@1kU0{?}T^?wcD)Iyb2G$feU!ne+Zp#QaBy{Bah2 z{Lkbq0F@;L1+B~>02ojnJG{=!>lsKSpE<}$eXigOEuW~7r-9|^BXYksH>_L}3We>3 zVqSt-5FH>=p)ph?jpCmHg$uX{09SSOIbD-e2LtP0ow$De`Y92fQas+G*TWRJyChRZ z&zY$rrd_PMMO4IP#O?VmUPSL{a5m50y&tHw)UGODMOXt+yks)@@ZrNI02JFhI-o70 zv7Xs(PsX7ZL=UQZ-c^cAVx;=SO0ou68K`Ut{8;&MorDjQORtKGI_&C3qo^peHAM~w zMOfq0U!fOW$wh?+u4JSTr%ZrAu#(K}nDqRh{t+RagcGD3aGSuTJyKXj9F7CC-NH^% zYH?d+?ur?75;%)U^#IKXO)LA+816Wb9?j&(e#;}q`e?Qt{}CheieV!e7#T^X5tV_f z_OS$#(cn+Ong=;Ofn)32N_B$(;<4C;2p<5-TS*4s#D6%g)e2!>U*A~(C!lk*4zjhh zU*Q6$KzEM8U{3Syk*B44BUMjW3@wNhme4hf6Rsx#eF&W`5CGpDT#>3q^;FL_Vo~HanQVwxEQ`~JGJab#2D66b-DU{`uSq2HB7FoYU|sg(e6VadU>8R< z;7$Q)B04l0&C|{8<@XgJ;9YC2fbZB{!X6VJe-1eA!HJ1V<5Mp{r2(-4-h>y#CMGyo z1tp63T!VEd#KAt93Jm^LFt`ty1#{({29$G0EJIHvyB@o`5t%T^Hn0P%fV_H+_Bq4G zE6fdYV$2z*>Sv6gkPv*(eFUQk!i~di*u4<(x=BM+*UNm0BJgO)34m=J92|2K`fJ4; zik$x*djG8onhEjF#kEp!{m7jd6_$+i>j8W`K0aPIW1>((G*Q)t*Z3qn9U?Erg#PWt z#;*$s3V^|<0?ag{SQ4hTGb8S~<(U+oII91|uJ@(m|GH#TI((?sT?HVTtcpJ!O4q@}6eiJCL=iZZ|607%zPf zi^BNWHf8z;5=3LAW7(&sOJuuS)itTF2%6! z>s4~7J?mUW852On?~S)W2*H+2#bl#Z%Aue5PeDY5kTIAFz80r{&qse6!LAc;==R}; z>`HY+!>;b;5$OT>+jNMo5xu1}`Ek}GJlqvzXt8um#Dw4i~$OHNMaFDmNy)Yb6+Ln@`qZE$47YOxO~F$RcHFeeClm-GMLq|@h@LGl6d z8o=N|fJPDzfOr}!{|iO}0$RO8OwLO^spC}>{>d8XF>j;NN^m$cC}Gjf6FlKi5xu;< zZ^|Dof1QA_6X)w?%_@92o+wZ7>5w0*k6iJ277u0Ea(^1pOkh=-M81{Q!dBY>{wMTpu^Po(rEl6z-nJlZJcYxy{mSjpC? zm^E^M!Hf*qJhZOZe!U+k6QBiILkL29&+zU!#rN=3awniKsB2IfCE-`ThaO&DAIDom z0s@R-rN@2%3IAa}SQ4t^(%+I$DSCU6_OgO8=qV{C7Q^ZEpUw+NqGEN z$!hjN)$n+gey59^m%o47#3DW<^;vrQ6M3=E`u-8$QeDjd>iB-_$zQ;czSu~83y>d! zMxRQ*K3b%|TpO`AKUM_v6@7)pN&n055UDh;>Cf4q1Ol+m$jEq3^S@6Dl#0O}L*AbP zS;ejr|GczqDiCmx2Y??i!|%|GXogCj@u^opPaeCzLZbo18Yu#}1iVpATdcHBqNuNB zBQ>6XT*{ow8zN}5Z+>}$<;hN$x#=d*7D0`H0gS!LmUpdT!O|e^I)f}4anV2lW;T+= zq3E{r-t7S$0irs(OGWcAv3DI^C}UG!EHcw_t7?;QTJGZ53TBO%O* z?aDg_dtkjR)V{iUCPiDi5-OLyUY4Vf?oeHUE;ZBZd)_Kx zEL^HA0KgJD7)X7tX*dbPayNE?PnVHa_-90M>gh7FSArHK8ur_oZP!D&u2=<}Mzgh^f_?{p zE9*Y@FONd1W68F#;hZ}X&gC_BUNv{%09FjBi|!Ry*qaZ7HcWpVX0{Wrt_$mnfO=YXk&9qI|}EOB&l$a>tVy5)mF zRH-{og~gwKXYuC&N>aJq9ezsO#-+~RXyHKTmw3n%zN^(aN?0R99;^Yp6GD|MLT|&D z6dKV#AB$7k`en`PR-%3etx+2nRUGg#DUcDoMw;zIf`ci>MpbhJjRqz6?e25-wv?dd z)=7=Nku*cS#4uP|*R5pocjYsX* z^!|dJZLfNiWAIKndhbw+>ZVu-Vdv9zTE(_OkSrrvoI(&D&+k$Vrq15Y?cr~jZm@96 z-DrybNw8D(+ca*&*hkP@qqhGsl4tC0t~AZ6P^>m$vY=})kQ)WpbwS&R{*>k5l_Yx@})UiUG=CvMsewM8*P z|B`)KH-c-JyO>~xiEaA5?LjP%Wic0ji)W8V-|h2f{Ix2!cjght9CPkR31F3Tdj?4sWTn?*87xV z(zTzdsTYn+-emE0H?^)cY-QkQBNtAy2&d6-h5`Q&nU+5>1e99E>m1iLe{%DW4a+a3 zCv%g;eaR8EioPQ+)j}A>z+-yq_5p3U;NsbCMXY`e+@W2U+KC}m;>kLz#fLx%KDWq? zu+FTvEygl4yQ$L6nC2tw_{RB075aQEW~p%6oAGy50xvQ&6MH2@33X@5P4*MzXT-D( zU(;%J2sLUk+M>-hC;Uu-{r2yD=&f`yS#S1hj<58$zxy`7p!-K#i75}1r>Em*>Tj{S z6r=KT{J_>ZpM!-R-%0!GC}Kg%QU0$=zbkM5hqRMls+=evQ~z~4gVa*J`NnH8K4dE` zg7)ae;@%0HzNm#y)6aA}N=O~w1uMhi06;R=FZd6fTx6Jzgjqy;GPl<^xCroM2E;5G;Ko%LT zrOvvNKi8uySlrotY@{J@Z)F$k)v=lWO_Aq2BGa2zT6Pdhc+-r4& z>P9*f)KUl+nuH5k<{AJM1M+WwPtV_=dOkHQQczGZ+rL*Dsxe50j!`;2?0bT)8yJAD z25cJj!;|A?9qa=C@`~PWZrU)n!(;lU8WdH)_|{?~XH`UcCm8b+dKvat&SiE%aj2F| z*x`kdg84_lsh+ZR<6~nDKQ2>YY%1T_qc>nrEiY1?zcnMqd?#vQ+QnF#s4UP)obAcK z!s;vP{U`i#Ll(X$gL-HPrG4{PtVWr8ZWKv<5n32b`Pfd@6kzoD@7wJvSmxX4>5%9S zCSzkdcZk&_z=c%IlZzKiK~O8LtgM`q_r5;iC3Ug~@Ck_iHN>W0@3~5wjLNXEDfjq~ z{_Jy2^Y7J(xa-|i4h_bOS;|SLN zhVp?4i~PiBpWZ)AXdvXBd2fI0Ne^ZSHB@!DCvs2BFfY*T)X_w>SN=P(uAKrcxM7_4 zP|aF(TQ`eT%Iq?~r{Udjrv2EU#qn`rZ^!TSSravW+{$|{*_n!lg+8DeJ{n@_V-pqh z#pdQe74no7CW_dq^fFNmgQMYG#6$A?y?sn@e~1;EK6-eR8|Vk+ftn(x^5~TUF$x$` zyS~LqG?xRJ{XXKJ)0_JRn+rn;$DUkk+n}H`kUa(R&faAYrK_F|iBxJL!kVTO(ESK%ZrJ zJ@Atu;1CB-;9?YXE(jv>7wYc-i}v4{auzxD-)Z{)!M`I2vZ}U}QbEBVEFgzt1^#Q@ f|M$Pr*w*NN;VS&4Mq&nRis)(?Uah$7aOZykTBS5m diff --git a/src/ft2font.cpp b/src/ft2font.cpp index b2c2c0fa9bd1..1fa821fe27f2 100644 --- a/src/ft2font.cpp +++ b/src/ft2font.cpp @@ -306,6 +306,17 @@ void FT2Font::set_size(double ptsize, double dpi) } } +void FT2Font::set_transform( + std::array, 2> matrix, std::array delta) +{ + FT_Matrix m = {matrix[0][0], matrix[0][1], matrix[1][0], matrix[1][1]}; + FT_Vector d = {delta[0], delta[1]}; + FT_Set_Transform(face, &m, &d); + for (auto & fallback : fallbacks) { + fallback->set_transform(matrix, delta); + } +} + void FT2Font::set_charmap(int i) { if (i >= face->num_charmaps) { @@ -696,6 +707,27 @@ void FT2Font::draw_glyph_to_bitmap( draw_bitmap(im, &bitmap->bitmap, x + bitmap->left, y); } +void FT2Font::draw_glyph_at( + py::array_t im, + double x, double y, size_t glyphInd, bool antialiased) +{ + if (glyphInd >= glyphs.size()) { + throw std::runtime_error("glyph num is out of range"); + } + FT_Vector sub_offset = {FT_Fixed(x * 64 + .5), FT_Fixed(y * 64 + .5)}; + FT_Error error = FT_Glyph_To_Bitmap( + &glyphs[glyphInd], + antialiased ? FT_RENDER_MODE_NORMAL : FT_RENDER_MODE_MONO, + &sub_offset, // additional translation + 1 // destroy image + ); + if (error) { + throw_ft_error("Could not convert glyph to bitmap", error); + } + FT_BitmapGlyph bitmap = (FT_BitmapGlyph)glyphs[glyphInd]; + draw_bitmap(im, &bitmap->bitmap, bitmap->left, im.shape(0) - bitmap->top); +} + void FT2Font::get_glyph_name(unsigned int glyph_number, std::string &buffer, bool fallback = false) { diff --git a/src/ft2font.h b/src/ft2font.h index 209581d8f362..febec104e1a1 100644 --- a/src/ft2font.h +++ b/src/ft2font.h @@ -79,6 +79,8 @@ class FT2Font virtual ~FT2Font(); void clear(); void set_size(double ptsize, double dpi); + void set_transform( + std::array, 2> matrix, std::array delta); void set_charmap(int i); void select_charmap(unsigned long i); void set_text(std::u32string_view codepoints, double angle, FT_Int32 flags, @@ -107,6 +109,9 @@ class FT2Font void draw_glyph_to_bitmap( py::array_t im, int x, int y, size_t glyphInd, bool antialiased); + void draw_glyph_at( + py::array_t im, + double x, double y, size_t glyphInd, bool antialiased); void get_glyph_name(unsigned int glyph_number, std::string &buffer, bool fallback); long get_name_index(char *name); FT_UInt get_char_index(FT_ULong charcode, bool fallback); diff --git a/src/ft2font_wrapper.cpp b/src/ft2font_wrapper.cpp index ca2db6aa0e5b..849a45ca1db6 100644 --- a/src/ft2font_wrapper.cpp +++ b/src/ft2font_wrapper.cpp @@ -541,6 +541,25 @@ PyFT2Font_set_size(PyFT2Font *self, double ptsize, double dpi) self->x->set_size(ptsize, dpi); } +const char *PyFT2Font__set_transform__doc__ = R"""( + Set the transform of the text. + + This is a low-level function directly taking inputs in 26.6 format. Refer + to the FreeType docs of FT_Set_Transform for further description. + + Parameters + ---------- + matrix : (2, 2) array of int + delta : (2,) array of int +)"""; + +static void +PyFT2Font__set_transform( + PyFT2Font *self, std::array, 2> matrix, std::array delta) +{ + self->x->set_transform(matrix, delta); +} + const char *PyFT2Font_set_charmap__doc__ = R"""( Make the i-th charmap current. @@ -971,7 +990,7 @@ const char *PyFT2Font_draw_glyph_to_bitmap__doc__ = R"""( image : 2d array of uint8 The image buffer on which to draw the glyph. x, y : int - The pixel location at which to draw the glyph. + The position of the glyph's top left corner. glyph : Glyph The glyph to draw. antialiased : bool, default: True @@ -990,9 +1009,36 @@ PyFT2Font_draw_glyph_to_bitmap(PyFT2Font *self, py::buffer &image, auto xd = _double_to_("x", vxd); auto yd = _double_to_("y", vyd); - self->x->draw_glyph_to_bitmap( - py::array_t{image}, - xd, yd, glyph->glyphInd, antialiased); + self->x->draw_glyph_to_bitmap(image, xd, yd, glyph->glyphInd, antialiased); +} + +const char *PyFT2Font__draw_glyph_at__doc__ = R"""( + Draw a single glyph to the bitmap at pixel locations x, y. + + Parameters + ---------- + image : FT2Image + The image buffer on which to draw the glyph. If the buffer is too + small, the glyph will be cropped. + x, y : float + The position of the glyph's origin. + glyph : Glyph + The glyph to draw. + antialiased : bool, default: True + Whether to render glyphs 8-bit antialiased or in pure black-and-white. + + See Also + -------- + .draw_glyphs_to_bitmap +)"""; + +static void +PyFT2Font__draw_glyph_at( + PyFT2Font *self, + py::buffer &image, double x, double y, PyGlyph *glyph, + bool antialiased = true) +{ + self->x->draw_glyph_at(image, x, y, glyph->glyphInd, antialiased); } const char *PyFT2Font_get_glyph_name__doc__ = R"""( @@ -1615,6 +1661,7 @@ PYBIND11_MODULE(ft2font, m, py::mod_gil_not_used()) .def("clear", &PyFT2Font_clear, PyFT2Font_clear__doc__) .def("set_size", &PyFT2Font_set_size, "ptsize"_a, "dpi"_a, PyFT2Font_set_size__doc__) + .def("_set_transform", &PyFT2Font__set_transform, "matrix"_a, "delta"_a) .def("set_charmap", &PyFT2Font_set_charmap, "i"_a, PyFT2Font_set_charmap__doc__) .def("select_charmap", &PyFT2Font_select_charmap, "i"_a, @@ -1654,6 +1701,9 @@ PYBIND11_MODULE(ft2font, m, py::mod_gil_not_used()) PyFT2Font_draw_glyph_to_bitmap__doc__); } cls + .def("_draw_glyph_at", &PyFT2Font__draw_glyph_at, + "image"_a, "x"_a, "y"_a, "glyph"_a, py::kw_only(), "antialiased"_a=true, + PyFT2Font__draw_glyph_at__doc__) .def("get_glyph_name", &PyFT2Font_get_glyph_name, "index"_a, PyFT2Font_get_glyph_name__doc__) .def("get_charmap", &PyFT2Font_get_charmap, PyFT2Font_get_charmap__doc__)