From f3f08dd875d00043ff467997c2f080541c0674f7 Mon Sep 17 00:00:00 2001 From: sebthom Date: Fri, 16 Feb 2024 11:50:40 +0100 Subject: [PATCH] fix: langpack icons don't have transparent background #709 --- .../syntaxes/git-base/icon.png | Bin 1059 -> 189 bytes .../syntaxes/git-base/icon@2x.png | Bin 1253 -> 393 bytes .../syntaxes/markdown-math/icon.png | Bin 969 -> 176 bytes .../syntaxes/markdown-math/icon@2x.png | Bin 1041 -> 323 bytes .../syntaxes/search-result/icon.png | Bin 1012 -> 224 bytes .../syntaxes/search-result/icon@2x.png | Bin 1276 -> 456 bytes .../updater/pom.xml | 6 ------ .../VSCodeSingleExtensionSourceHandler.java | 19 ++++++++---------- 8 files changed, 8 insertions(+), 17 deletions(-) diff --git a/org.eclipse.tm4e.language_pack/syntaxes/git-base/icon.png b/org.eclipse.tm4e.language_pack/syntaxes/git-base/icon.png index 89e0ae9f8141f1b657f3c2a3d13cdd5070490076..7721bfca0bb333dab53b89d7c87107e66b60bcf8 100644 GIT binary patch delta 172 zcmV;d08{^?2)zN28Gi-<001BJ|6u?C0E9_IK~#8NrH#uCfFKY=@nQ=W;Y~^GLiAuE z7Hb`9^zJX&1SSjtoMbu7=b=@Go zK4Iu9QV5!O(h<-xYB$FL9s+iwXUv0;P%cmkiOC$X67#*XizTaRX7sS{75)#LMiA0*-Mp7%Mw=Q;V# z=CYsG#y7`_sJ1oJybr${!sm?`zIW_gzn>^ZxzF=0D2bRzh?K~PJXFlYLaf9_?BP(D zL`amxNIdi^lM1Pl8mWh?#$-aKWJcytB4=_TS8^jq0c}V_3zyODVNQ62S(%O5!&p=z zEXram9w>0A!m6ys>H!M9CTz-PYz{_TWfyj3H+D<~HN*f7N?_p(gP{#+XyLL4L!ri_ zA|~R&AI73m6*W;0c0qwdQ!x{BxCaz^#Z}zIVGnr#6Solu`~w0GK@BlLgA%Raz+h-Y z8d@Hb3&*JOn5u^$;SXa`nW;H)g~KJb1#Wy1KeVB2iyo-_X#IOeRyQRAXafQ&Uqqoz7%3 z*=#nS&$qR;6$%AxtE;Q4r>Cd4x3{maZ(v}cSS$_>4h{_s4G#~ON~MvJkq|@4eqCbn46G z{jtUVgI3trlD;}KaV&mjdd<5>QjaPA$ASLqxeJxg#yayIJe;ce@as=5@9%#2_df?L zdE=W$so2ANA3x{$N>(h5Y5B(SHR~qYXPUat{SZI( z(Z<-DBlCxTiT!-|%69(Z&igm{NHtx4n_oVAS#xpm?$K}eoO_b3Zh7zYuJ8UzB%aRi zttqzucaMJU{C&&Ochv9dUqK~#8N#gsix!$1&)jR*=iprzmhI1;T} z8j=+BRP;35jvGWumzJ7}C`y-Nainat{yZ~YdpG8jo|MeKH*fPJ7exZwMd^;>{NmJ& zSH67oORUQBhUKGPf~6Gw*>P|8w=AWYNya@tOvAz+_hkK9w&SxLYHM|`5kuQ;EAWl!@B=gc;ssY|Ij5t=QfWK0;6lp|xpFxB=ye$iw3 zqu>&2VLdz0qj`J5W!h4nYra8nX{@*>2`=vv^I2etCg!rjGK&6-z|v96J^xzn$x;3X XYFcn@=nMu400000NkvXXu0mjf7S+21 literal 1253 zcmW-h4@?wP9LIln84PAH)H=!Nq+?TLg*`@)lpNqXLJ0BJ3_~xr9-9KSbHU{h5Mjz? z8@Yi!b^@I;m{VNqwg`psr@++%gE3)N#0Z$MrkI2&=&Y&hq0)n6jC8q*aZbHg_1%cMoiy5eJxH7!E-VF+k%bu)u-A(1x_qE7IM#MvbGeF$4*J7>i0Or5EU1zozhQ zRPWQbBn{=uU9Z;{rDpV{qqprdtdV^l^zwaJ+JSEpr15pYmJl91VN_^nsL^N)4-Yq+ z%~4TNF)=Z5adC->iOI>yR;x8LGt*|X<>chp?RIRdprF9va5$aLva+(Osw$VuRa;wI zUtjNbyFDIHTU%Rud%M@`?dFF657=XRe(b0*CiOI>ynVFe|g@wh%#pUJY)zwwg zw!D5Kzvi@5i_Lkvdf%?}{-h1%87Z5$`~B3?={C)0pG)?)Y>559(UjD?w=ksP=2sEk zsb4EkHchRG6dzU>ylMTyuQxd4bjSYtHzR*IayG6v=<|nn@0Q#vxp!!z!w|fjUslxG za9~qm!q{YM3zdf6_^9xe{FEDaE;Y)zBRlNVxA$BdcWpg0cxrwjtfjfBq5DF^Kk28& zTl2O*J2vx4`3X}3heeb$Qp7}37ptyIg;^}W&-+yVuG89?i`0Lh--_CWeSqdsJ zZ5%wf6!6)4>+$ca{wzLg9X1%ARtMiYb2Yl}s3m@S_FSdYQ~1UZAK7`#d>|&;64to# z!u|a8;g!RKEyZIUkDHHvy7S=W!#rj0^!&u^N?zF8zo$Jq@98#O&zkDlR`k}@QCH4u vn>T&jm2lyBE2|#*L3|P8s z8L~W>|N6~q6#kDNKj3@}16bKPz!;f*;^axV1`z+vn>TPiP6L=(*~m8lorW0zGZ2KQ zO`i@H!)d^ShY#U=bQc&J8^ie+1`rBFbbw(1sQ_jG2%skrVi@so0070pn>$UJqQn3I N002ovPDHLkV1n1}JAnWI literal 969 zcmW-gQAm?v6oyY3C8AVHp%r4}MGb<{2fGrir8FUy)WFzHzZxe9N$|#9&5R`|1YSvp z7R0Dn7Y&NtWPyU@O$P!g8eXg$!4SehBpI{Q`~5#`s#_&mX=))Ift*Q~fB391#-&9gAaiY@Py# z!cN4AIx!E0US+4^RGk_aan%_+6KCoSQ$YBzH!~y?+fJ0D24A7uND>yJ1+K`5p`Q-dD zYCI}pK1le(SX8Q_hFoD66gU)9G31D(5dgT*j-cTdQ6dju;x^&{6AZ&4s38Vu+yoXl zFc{j9Hoqd@jbqe!3>!m`@Q1Oe)XXn1T)(FXH|qBpF3CfMx%>5oQF_KO9l!0+utyF( z_~nOK-a$AC()c@IO9&61Fsik+wY|N)v$M0iyE_tzM5EDIEY{Q06OYFei9|A)Or=uk zbUFwEY-?<6Y+_;}lgVVW*<3C+H#avwKfkcBkk97}g+j4dER{;-a(Quaad~-pb#)c? z*4EZ4l}fc*-PqXJ+S;nsYCAhS^?JSQ+{g;vfZRaerBr5pG2maqr<^S@aJ^eHedZXHZxTinoi%m__y@-j0XFUzG;5c z+}!)FGlV_?s1&kPCk0F z0HEqu7Cn1WKM5fCe7^9pOn`y8e7N{3|0E!y5&-Nuaom;I zDi_EfL`A3$8Z5?eG!~~Qr2_w^odQjNjvN0W(P%V{@c;|pwx1ptT|EE*002ovPDHLk FV1h#egDn66 literal 1041 zcmW-gUr5tY6vt26RLuDxmLoze>>(*yT(UsXvPm;yL@g+x7!{WyDUgai*!+V@N#uIS zIv`0S!c6QTiIAvavJ6fyN+CU1p+pRVK_Ein>3e?{wjYOk@ArJZ-}C$3ITktWFWy{C zME;g==s2EL?pKtL|IpL^3{gHEI~r|9No0sD5fcfKy2=r- z)lp!RtzkAShSfpgtXLy#M2sjHan-0b%0|T~x`G;FfCeS7u!qLbhBUNrS)CzQW3jbj ztvY{bi;CH@SXO5j6xbBDB32ac0fn&sQ+(sPm4+uB}HN*f7N*o0T8bce> z&{CJ2+eVEg%<6)KKeR<9!lK9(c0qwnR$)bsNE!iv3&#;O+#*Wk0ZiOR9AJWBI0QAs z0F9f#0tXsH8`A1VdAeCMG5) zC)4S4CX<1^+1c6o`T2!~g{7sXY&M(A<(8M1S65f7cAWcwFF;yC2cz+C=VJk1Ra(-y z5x$yVy8q>H_x@-} zoh2nN8iK)V#p^!b%D&BXjnVqEH`bniyyPpo80^!j6kVA*Q&7;{R~IiI%WFAuXy;;l zCY}3RI#&_hH?t==@v7%^YIO9#@x6V8U;JZ#K5gsV`t0@Pyp#10R|ZDAo^1Jbs9^Ye zTcdw_@@9AW_)2 z=oq91D?nFB2%`WTHs5>q<39-e`TGw{qsXJU1dC=24M1GB{RyfV7+?!990p*Bg98?e zA`qT<>?MX6h5;aqt^lV(T;k{oV3?!s+<%7BQ}{LGGXSO-8Azb3ff#@#5OFF-$MDoi zj%E;s1872e_w5g+B3u|FNuw(ugs}n~Ng4%X*o+Ne30Pd&830O3_}+Ft&T0Sv002ov JPDHLkV1kTlPrd*E literal 1012 zcmW-gUr5tY6vq!~X4=XON=htp4<<#68}{Ie8k$pLS?)oUVrbj~jX+SAkcg?!Fc?w7 zjp2hBnAs{4k|AOLB;jDTClRqAp%6nWoG-%Zdw)OJ#^Ij(J)iIQ?02s^P~pnjpG8Ej zN`Kj9{N~tCW*WYWj_s-;N~7uv!E%&DibxX~A|?`BDMd^>GTo!A{)_9E8 zthHEw7>mjnZCD$zc0qwdHkw(pz&)VQtHo$xEwG0?fQj3P1O5R4hoFWSph1aNa9}XB zAq_3D$=PGnc-R=RLBb!#qGC2I$Q5=$fkPu~1UVvU1OP6yBWSoql*j{^xQ#f#1jBF$ zYKQ?EH-QBX42CwO#jeP9;}|s_!Nw3I{9!CA7O@L-)^91CjoN)WOR`W-?smOSl$Oy+ z$8Os(Y>^!gcKHsLb>K{bH2x0Q62gNgjLOZ;&CAOxC@65d-NnVl9*?J_q{Qp>`g}gW z-yaABg27;2U0o;?!nT^5n_F61!r^d7M@M&ecO(*tMx*`x{jpeVaBy&VcsL%9kByBb z5{b#l$*HL+*h?mpb8~Zxi;GK3OUuj4Yinz%RBCf`^U#ro4|oG!RF<6!hUc$bEZy7X z$%(nfvwMDRA077g#Xe@tysI1?`g^$cNpeqSPjtf*4;@{&Gd*)HwXf^3JH74gzer(c za^+La$?2;6Q0M*cO%HZA42`Z9t(KmtuNrv8?Ozx24<7&B?$Lpn=U3MY{C%6_88=_M zYu}`w?!Eqb+m?~@mnLr9u75w!dZOa#%O4|c6X9FEUuJ7+U3dQ!MxMDQHs+hMcW!O` h*}BrWBhfM|8{ZD3&YpTC>ksYQTUj0`i~B-d{{dOy=2QRx diff --git a/org.eclipse.tm4e.language_pack/syntaxes/search-result/icon@2x.png b/org.eclipse.tm4e.language_pack/syntaxes/search-result/icon@2x.png index d1567b906c459993c197e9204d4beb6273c500bb..33f435d494dd308245c365b0492d3588491cc1dc 100644 GIT binary patch delta 441 zcmV;q0Y?7(3CIJG8Gi-<0047(dh`GQ0gp*UK~#8Ny_dU613?sq;{*64zJcH~So#vF zR1}jmwsv-s*1}%P1;HvLSucg45K|}wf}K&p3mQF>%*gy_?z`&`U-Qqo1+ueeYqeOl zuBNp{Zidb(QS+QP3!$(Yd50B^rJ3hgHcVKkC{e=XvIr6;m4A&>7#x627^h(r{aG;3 zfmAk_=w}<uyJO;sk5{&8?d<1Xj|Va0-LVCO``;sWL36cCawHC`pRklr0!G;8^jZ jezc{tOu61237_Xbp-Z5QYlt%h00000NkvXXu0mjf8061; literal 1276 zcmW-heM}of7{;%lW?(9x(QYoR1Pm0!l$^tDG6_&Vnz4p#of6_=A@kUpng}xn!p4Te zHi`)iOS@gt4Trd~514~0hGoiFhd7VO@Sg@F=s+cPgrXZnMm(SEC6v6m_n!CnJa5ys za!ZLedQ&tZL~AZJ?ZJP&`r8nRPg9R`jF3oDUS=&qNeCr`5yA-(gh*9UN+=_g6DkOm z>XK2y7-5_+L6}s%oD$9m=Y$KwrFtqT5sU~+ zbr_|bQbDOyV^J|i8K+E8CKUxPIis9YE-04@3cZ3+!Kn~bNHF3lm5fSGrJxd1K@BlL zgA!P{!(eDb8d`WPl_6E*aK;2kW}j>N_gB>Z74Dj}s> zV0itCBD_(x&+w8IR5*9F-f)zPF`SOtcG$2&4tr3`4`V3@;YpCj*8y8Xc<_W#@$vCG zoh~UUDK#}UBO}9TH0I>wj)dPDUcLNr5WQ@*u+`n|okEO(5tZ=~((jQ+AA;;S!w37J8E%TvCL2O3@Msb)<^ z^1xfw_J)Y_q$hoYiC0xO8=j3T+!$H-!(_m2_ioFxoW6Ox=2+L_lOmVXY3+$^B^S?L zyyQ;w*ptUin$}6fM1t$h6#c0yX^Cxf!_m9CgO$aTA3W{cQxc^)w4G=k6hC_AAI(1Z zL%Fhcxope1D&PHzS3kK{a=UhGW7^W})nLQW?vj;AnK3WsdCuVvY4`*fX{w^!|$n^Ea@wCr|UN2kAcYJJF zU0{#0$0lZMDJy667vfJeteSRcjm1lI^ABG*R9SHFo6WQA-S)>NqnBsT9K9LXYVF?k zxUs^Y?H=h^Ud%WD{O`+U|CxR~=>AoAGV8Uz0Y}brwKr;`8uzomj=bc`+Ma$T?@!*d zH{IRV)id4YiuZOrzh&o+`<|U6%L{i0%{A?B|F-;hXdtCRzscQcdq*daX;%F))1Mpe Psb4X3k;T+sVEgEQMN(&X diff --git a/org.eclipse.tm4e.language_pack/updater/pom.xml b/org.eclipse.tm4e.language_pack/updater/pom.xml index 1c501f00d..8eb15a9c3 100644 --- a/org.eclipse.tm4e.language_pack/updater/pom.xml +++ b/org.eclipse.tm4e.language_pack/updater/pom.xml @@ -59,11 +59,5 @@ - - - net.coobird - thumbnailator - 0.4.20 - \ No newline at end of file diff --git a/org.eclipse.tm4e.language_pack/updater/src/main/java/updater/VSCodeSingleExtensionSourceHandler.java b/org.eclipse.tm4e.language_pack/updater/src/main/java/updater/VSCodeSingleExtensionSourceHandler.java index 08d440953..f6bd91cd1 100644 --- a/org.eclipse.tm4e.language_pack/updater/src/main/java/updater/VSCodeSingleExtensionSourceHandler.java +++ b/org.eclipse.tm4e.language_pack/updater/src/main/java/updater/VSCodeSingleExtensionSourceHandler.java @@ -17,7 +17,6 @@ import java.awt.Graphics2D; import java.awt.RenderingHints; -import java.awt.Transparency; import java.awt.image.BufferedImage; import java.io.IOException; import java.nio.file.Files; @@ -28,7 +27,6 @@ import javax.imageio.ImageIO; -import net.coobird.thumbnailator.Thumbnails; import updater.Updater.Config; import updater.Updater.State.ExtensionState; import updater.Updater.State.LanguageState; @@ -107,8 +105,8 @@ void handle() throws IOException { final var targetIcon = targetSyntaxDir.resolve("icon.png"); logInfo("Copying file [icon.png]..."); final var sourceIcon = ImageIO.read(sourceExtensionDir.resolve(pkgJson.icon()).toFile()); - Thumbnails.of(sourceIcon).size(16, 16).outputFormat("png").toFile(targetIcon.toFile()); - Thumbnails.of(sourceIcon).size(32, 32).outputFormat("png").toFile(targetSyntaxDir.resolve("icon@2x.png").toFile()); + ImageIO.write(resizeImage(sourceIcon, 16, 16), "png", targetIcon.toFile()); + ImageIO.write(resizeImage(sourceIcon, 32, 32), "png", targetSyntaxDir.resolve("icon@2x.png").toFile()); } for (final Entry lang : pkgJsonLangs.entrySet()) { @@ -149,9 +147,8 @@ void handle() throws IOException { logInfo("Copying image [" + langCfg.icon().light() + "] -> [" + targetIcon.getFileName() + "]...", false); try { final var sourceIcon = ImageIO.read(sourceExtensionDir.resolve(langCfg.icon().light()).toFile()); - Thumbnails.of(sourceIcon).size(16, 16).outputFormat("png").toFile(targetIcon.toFile()); - Thumbnails.of(sourceIcon).size(32, 32).outputFormat("png") - .toFile(ctx.targetDir().resolve(langId + "@2x.png").toFile()); + ImageIO.write(resizeImage(sourceIcon, 16, 16), "png", targetIcon.toFile()); + ImageIO.write(resizeImage(sourceIcon, 32, 32), "png", ctx.targetDir().resolve(langId + "@2x.png").toFile()); logInfo(" OK", true, false); } catch (final Exception ex) { logInfo(" ERROR [" + ex.getMessage().replace("\n", " | ") + "]", true, false); @@ -184,8 +181,8 @@ void handle() throws IOException { final var grammarOverrides = defaultIfNull(source.inlineGrammars.get(scopeName), Config.InlineGrammarIgnoreable::new); if (!isBlank(grammarOverrides.ignoredReason) && !"false".equals(grammarOverrides.ignoredReason)) { - logInfo("Ignoring inline grammar contribution [" + scopeName + "] as per user config" + ("true".equals( - grammarOverrides.ignoredReason) ? "." : ": " + grammarOverrides.ignoredReason)); + logInfo("Ignoring inline grammar contribution [" + scopeName + "] as per user config" + + ("true".equals(grammarOverrides.ignoredReason) ? "." : ": " + grammarOverrides.ignoredReason)); continue; } final var grammarCfg = inlineGrammar.getValue(); @@ -197,10 +194,10 @@ void handle() throws IOException { } BufferedImage resizeImage(final BufferedImage originalImage, final int targetWidth, final int targetHeight) { - final BufferedImage resizedImage = new BufferedImage(targetWidth, targetHeight, Transparency.TRANSLUCENT); + final var resizedImage = new BufferedImage(targetWidth, targetHeight, BufferedImage.TYPE_INT_ARGB); final Graphics2D g2d = resizedImage.createGraphics(); - // Use RenderingHints to improve image quality + // use RenderingHints to improve image quality g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); g2d.drawImage(originalImage, 0, 0, targetWidth, targetHeight, null); g2d.dispose();