From ec95d7f571431a8d46158266123cd0806fc4fdc3 Mon Sep 17 00:00:00 2001 From: Vort Date: Fri, 3 Feb 2017 11:16:47 +0200 Subject: [PATCH] fix(icon): add more size versions to qtox.ico --- windows/generate-icon.sh | 63 +++++++++++++++++++++++++++++++++++++++ windows/qtox.ico | Bin 16958 -> 50927 bytes 2 files changed, 63 insertions(+) create mode 100644 windows/generate-icon.sh diff --git a/windows/generate-icon.sh b/windows/generate-icon.sh new file mode 100644 index 000000000..42c3750a6 --- /dev/null +++ b/windows/generate-icon.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# +# Copyright © 2017 The qTox Project Contributors +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Generates qtox.ico from qtox.svg +# +# Dependencies: +# base64 8.25 +# ImageMagick 7.0.4 +# icoutils 0.31.0 + +# Black, gray and transparent colors from Windows 16-color palette +base64 -d <<< R0lGODlhBAABAPEAAAAAAAAAAICAgMDAwCH5BAEAAAAALAAAAAAEAAEAAAIDjAYFADs= > pal.gif +# Generate 32 bpp images +convert -background none -depth 8 qtox.svg qtox_256_256_32.png +convert -resize 64x64 qtox_256_256_32.png qtox_64_64_32.png +convert -resize 48x48 qtox_256_256_32.png qtox_48_48_32.png +convert -resize 32x32 qtox_256_256_32.png qtox_32_32_32.png +convert -resize 24x24 qtox_256_256_32.png qtox_24_24_32.png +convert -resize 16x16 qtox_256_256_32.png qtox_16_16_32.png +# Generate 8 bpp images +convert +dither qtox_48_48_32.png png8:qtox_48_48_8.png +convert +dither qtox_32_32_32.png png8:qtox_32_32_8.png +convert +dither qtox_16_16_32.png png8:qtox_16_16_8.png +# Generate 1 bpp images +convert +dither -remap pal.gif qtox_32_32_8.png png8:qtox_32_32_1.png +convert +dither -remap pal.gif qtox_16_16_8.png png8:qtox_16_16_1.png +# Hack for Windows XP file properties page +convert -modulate 99.5 -strip qtox_256_256_32.png qtox_256_256_32.png +convert -modulate 99.5 qtox_64_64_32.png qtox_64_64_32.png +convert -modulate 99.5 qtox_48_48_32.png qtox_48_48_32.png +convert -modulate 99.5 qtox_32_32_32.png qtox_32_32_32.png +convert -modulate 99.5 qtox_24_24_32.png qtox_24_24_32.png +convert -modulate 99.5 qtox_16_16_32.png qtox_16_16_32.png +# Build .ico file from .png images +icotool -c -t 32 \ + qtox_32_32_1.png \ + qtox_16_16_1.png \ + qtox_48_48_8.png \ + qtox_32_32_8.png \ + qtox_16_16_8.png \ + --raw=qtox_256_256_32.png \ + qtox_64_64_32.png \ + qtox_48_48_32.png \ + qtox_32_32_32.png \ + qtox_24_24_32.png \ + qtox_16_16_32.png \ + > qtox.ico +# Show debug information +icotool -l qtox.ico diff --git a/windows/qtox.ico b/windows/qtox.ico index b322a59aa40aff41d33f4f855cf3608c3d3702e5..b95cb526c4874398113de55eff85b2d2604d63ab 100644 GIT binary patch literal 50927 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 F{|CA}CvgA( literal 16958 zcmeI2Yiv|S6vuDz1BqYC7fcit6QwMDKl<xpeN%y`8(;-MDai z?#w-N=KRj=&fc9FNs7R~#fv5Uy-l**ElD>>l4OCPO0q+!ej=|~x6jIgybd`9`3)jZ zV)+iS^*|~hQzpoLGkkPICNr;AYy*gWwvim5-89JeA&*e$yb%WMN)Gnv z;Rkno7_lokNZ`!@*vrC@f29uotpfR7DM=~k7o;xuLXXU!H(&JJvrPwouL%ByX$wE= zeYba&EX&zOWY^AJ&&5W^{wg9C_~_Na?-0>vOLNOcBiz1ia*e*eA08ggpEG;TAEC-maW^+LH~KQ^xn7>X zyh9K>{RRm5{713V_!*f8yz`zb)cGm?xv_IE4GavF@{T>_%QD+CDv&*BN zxu&w+>2&6>@-Q|wmQ%8#WRE4va#d+3PzUAxuZ}-8CG}j_(XOY}IXKvHuqrt*`Mla* zU^(dg^jmI6`;K}wyHeiNw#hE=_nxxuq3EFU$Hm0`()WH}xx&iQC;Cs6&x@P)lfZGG z6#VPfu4`j4tLrzsu%RWK_^rv-uhoqH%4ycLF9qiyXz%~*%u6qRi{a;sG zw^_~Sue`Qy?WS-Ue)HR=E~rm4#?h!xJ^O#F!jNCj{%>-i_!Ht2z70@c-249$ zUWn;nAmYk+DC0QolhPi!iT&w1|Ka7Ifp{*P7?b;R9Cb(3-$xD~d4|@-*4M9pDSmGJ z4}$wNbpFSigDAxEk>Gf)nZI(fa{m2&c>2`o60Cm=3+nR&_%U?;i}>k<_ER7$AbTKZ zA!Cqh7$#Cj>we1f59ywsp4C_f8!_OMo*h1g9Do!R0J`$M(GKMcU){<)`cY`}WsxtOMK4BjfYT%TH&2T3cFmod?NyIODjV+=c{yaZ&MJ z_4x9XJ3BioL!E!gy-PmiVP)CS9;!wTCiVCy&QH8Zd$=q%p8AUNiq}GwKkt#eP98=r zo2JI5rcmXlJzOm|o_mK59jcn-{PnE(PM$nj!o#R#Gc+_*!19m!dcJQd^Q;g9^Q)%giI=^NiRsSn)M(Y;59T)Uu)TBP{>aH(!+ISs?~1E53rq3Ocmd zcif;5;`feN%2{#ZH_V^M-Z}QvczjxQbY95MTJReF2+g$w`*a9% z%^qtSKelggXP)~|=YhWSlM<7@VdWI{bSCg7bE))sM?7^J@yb}|ab+&c?ACf79vKzfzywbXb-fp3X;Z-j{0N9>268G$Dd(<5SE4Dq*)=R4NQH9b?^BPNRAdjZQW5c*uy zLiR#FfsA^EuHS^vcj$wVTLTrb?4X{mlVwkbvdg1wPLEDk>#Lsnnb6e6M@M+e&~~c# z(QZ5CzPg=cL!ab_`Xo(#l8zkl=&2XHWv`}tzM|OkYTveWt@xMlqOx17xs@{I=Ly70 z`AVf6I3(##${#B3LJ>OB<B-eGf5cd{eh k>DCt_M?4xNRFAAhlBO(?M&#+F5xI@DY