From 5ac31920ee32a0db3b1e49ae674c64242403c4fd Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Wed, 8 Jul 2015 11:39:01 +0300 Subject: [PATCH] Fix #317 Crop images to square form before making thumbnail, not square images cause issues on Windows --- scripts/icons_update.py | 16 ++++++++++++++++ scripts/renders_update.py | 16 ++++++++++++++++ staticdata/icons/icon107_12.png | Bin 871 -> 883 bytes staticdata/icons/icon109_64_1.png | Bin 3382 -> 788 bytes staticdata/icons/icon109_64_2.png | Bin 3317 -> 750 bytes 5 files changed, 32 insertions(+) diff --git a/scripts/icons_update.py b/scripts/icons_update.py index ea44ca97c..c152f55be 100644 --- a/scripts/icons_update.py +++ b/scripts/icons_update.py @@ -165,6 +165,21 @@ for fname in os.listdir(export_dir): fnames.add(fname) +def crop_image(img): + w, h = img.size + if h == w: + return img + normal = min(h, w) + diff_w = w - normal + diff_h = h - normal + crop_top = diff_h // 2 + crop_bot = diff_h // 2 + diff_h % 2 + crop_left = diff_w // 2 + crop_right = diff_w // 2 + diff_w % 2 + box = (crop_left, crop_top, w - crop_right, h - crop_bot) + return img.crop(box) + + def get_icon_file(request): """ Get the iconFile field value and find proper @@ -190,6 +205,7 @@ def get_icon_file(request): except KeyError: fullpath = sizes[max(sizes)] img = Image.open(fullpath) + img = crop_image(img) img.thumbnail(ICON_SIZE, Image.ANTIALIAS) else: img = Image.open(fullpath) diff --git a/scripts/renders_update.py b/scripts/renders_update.py index e57fd5486..dfe88e448 100644 --- a/scripts/renders_update.py +++ b/scripts/renders_update.py @@ -58,11 +58,27 @@ toupdate = existing.intersection(needed) toadd = needed.difference(existing) +def crop_image(img): + w, h = img.size + if h == w: + return img + normal = min(h, w) + diff_w = w - normal + diff_h = h - normal + crop_top = diff_h // 2 + crop_bot = diff_h // 2 + diff_h % 2 + crop_left = diff_w // 2 + crop_right = diff_w // 2 + diff_w % 2 + box = (crop_left, crop_top, w - crop_right, h - crop_bot) + return img.crop(box) + + def get_render(type_id): fname = '{}.png'.format(type_id) fullpath = os.path.join(export_dir, fname) img = Image.open(fullpath) if img.size != RENDER_SIZE: + img = crop_image(img) img.thumbnail(RENDER_SIZE, Image.ANTIALIAS) return img diff --git a/staticdata/icons/icon107_12.png b/staticdata/icons/icon107_12.png index 0b907587e6f201102190447636a5b19eee045f23..1bf43c7e21500e801314b7a0c7b91c6468c7797e 100644 GIT binary patch delta 860 zcmV-i1Ec)s2J;4xB!40$9ZAR>%Xl>MJi zC6)WPjemeO8fA!R0|4DL&xOmDyW1nmP%vpzyEHznpi(6QM1&nBc)#Qr#_Y+W8d^xL zeQZ~Y!(OS$*+(q%GQR= zyY)h;!1uH_ihopdcw2=QA!p^@d%FA78C6v|MNzDJ3nKtT#C<;Y&Ic5z$qfzqyufy$ zU9z{z$*h=h2P&<+z$T~Tg&T=KULCz0n^I0FKdWkl<5f~Q1r_V?EB<4vg{4l9S4x<9 zQ`C+8J)fu1*kWbbs@!cOPdA%gym)nHBC)%equiP zYr4Pvbj#ySN1d6q;CtrS^4Gli(B*G#uh^+u1Y;S=80P!WX zE`4!5#!^~;i(l>w`rWX&xCENE!8Q9D;iFH!v>1c+!T!F0Q8L#6poZ`u@SkG)dpnxm z4pn&Nft*oxq*gaF{f`}VHU~ThoRW(Ln}g~1Kl|#nTxDzWKOaX#$ZDTcZ>DSuQIJewVx)Liw(2SdA$yu&#ch=|eZ!Z-mV@+Uw3_AU3>y|Qf7teP8A z#Z@oPCY-)qy@J1Kvo|q0RhXQblm~~Ncjd{v~n^4NRdd01Ay8rE*g5h-6)yG zWY$|d^?%ColK^n??dN-*d*fJa|Il0a93HR_CA`|URK=)&cJ8tc0K_>bBI5DP@y_&L zmmbS%SC^g)9oy}>srZ+2*}ayY@8@#Ul{U8vXMg%RtX*G#r^Qh#F6#$QeD}+kKtvoI zbRcl#`fMRRelYye(+}?)cz>m`{L&v27yIXvDSyayJ$!m>G@RC!?BLzq=J@Xk7TU4( zRRDst_D-Bdj|vot&Ad2e&rbh3idwl^b*nN>PA5b|n`2A468Z=3lUy<+fvD_IlvV)p ztt(J0#@EIfe*J}K!~Qn+!FIO_k(DuXO%sEG0KWQq6a-k$Jhi`VA)7q|pt{~PjX(Ez z6iGxnH+mj1Yuu&fOPL4m-O;qG+y9`urNvoiG&Ou;>`f3-w=*4yqPX5?4QvDu1RxWw a=Klq#gmyLzh5Gb> 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 KMNUMnLSTZaGlpXT diff --git a/staticdata/icons/icon109_64_2.png b/staticdata/icons/icon109_64_2.png index 876929af59f83f5871d564119555b524f191d770..57d3548da24c11a1d786495523b9bd0bca1484e5 100644 GIT binary patch literal 750 zcmVV0Wlhlih_ayT2*yFGInpQ-syBIMg|9OPECys1P2E*dc9r(uwfcP$UnW;uioD3 z?*2~OT0hXr$~({hbNoBV0AT9t>wO3zlv290`rZRWd%LOJ)Y)9hd=TU=b6sMDRhmYs9tv?vNO#@05E!{sGZlcz{XPa~PB2QbcipiWlH z+NeNkwhq=TEiT_yDA+f4`|MLzl)P8885!5rYBk!8A2H7_`;1Q7spPN`D$8ho@e($U zL#HsySU)Y0=;&yKhew2ZMDc=06m!|$zTS@Vin3E~!L6K|<#w%jBvOLej&seW>{l%(X;EMY}N zUQP}=x;~@(ThG{u!rU>Ao8}A#LmkVqzLF$a834+_z(4_j{h&4@;b>venZ6$L^vv|s zQkFIaqa#)4Tx0C=38mUmQB*%pV-y*Is3k`RiN&}(Q?0!R(LNRcioF$oY#z>okUHbhi# zL{X8Z2r?+(fTKf^u_B6v0a3B*1Q|rsac~qHmPur-8Q;8l@6DUvANPK1pS{oBXYYO1 zx&V;;g9XA&SP6g(p;#2*=f#MPi)Ua50Sxc}18e}`aI>>Q7WhU2nF4&+jBJ?`_!qsp z4j}paD$_rV!2tiCl(|_VF#u4QjOX(B*<2YH$v8b%oF%tU$(Xh@P0lb%&LUZYGFFpw z@+@0?_L*f5IrB1vJQ>S#&f;b8cV}o=_hCs$|GJ-ARc>v%@$zSl&FIdda6Uz_9&dgda5+tXH875p)hK-XG zi{a1DP3Mcn%rFi&jU(bQ*qIqw9N}^RX3zXt6nSkKvLZX!I5{{lZ7prSDAa#l{F{>Z zc9vd*f9@GXANa%eSALld0I;TIwb}ZIZD|z%UF!i*yZwjFU@riQvc7c=eQ_STd|pz- z;w)z?tK8gNO97v2DKF^n`kxMeLtlK)Qoh~qM8wF>;&Ay4 z=AVc79|!(*9u^V&B)*6*lto0#rc5AAmbF{R6Nm+wLWV&2pPKj&!~Ue%xt59A_z}>S zSOTRX8bE#?04OREAPIY9E70$K3&uwS`OS;bnV6mX&w~DaSGY|6$QC4jj$=neGPn{^ z&g`1}S^_j607XCp>OdRl0~5dmw!jg%01w~;0zoK<1aV+7;DQv80Yo4d6o9p$7?gso zU?->sb)XS6gEnv&bb({wG&lz?fy-b7+yPQB4xWH1@CwX85QK%u5EW8~bRa{>9I}O2 zkQ?L!1w#=~9FzzpLqbRb6+r8tQm7oNhU%ea=v(M0bQ-z<4MVq}QD_qS6?z9FFbSr? zTCfpp1+!pJI0%k}7s1K!GB_VDg15kxa07f0?u1Xnm*5dt3O|9T5r7a8I--j(5f;Km zLXmhR2@xTykP@TC$XgT!MMW`COq2`C9~Fh-qL!gnp*EwcQ3p_+ zs6NzH)F^5S^$|@*Yog83&gcMiEIJvTi!Mf2pqtPg=(Fe%^f>wz27{qvj4_TFe@q-E z6|(}f8M7PHjyZ)H#*AU6u~@7+)*S1K4aIV>Vr((C3VRTH5_<(Zj(vk8;&gDfIA2^m zPKYbSRp451CvaDA6Sx_?65bH+j1R^0@XPUK_(psWeh5E~pCKp{j0vuUNJ1)MEuoUo zMmS5jOL##f67`5q#Bid3xQ19sJVZQC93{RbQAlPaHYtH5A#EY;C!HeQBE2A!$wp)k zay(f~-a>9BpCR8TzfqtnSSkc4@Dx@n)F^Z+Tv2$Yh*vaJ^i*7|n6Fr&ctmkX@u?DC z$w-N<#8FzMRHJlM>4ws@GF90|IaE1Ad9!kh@&)Bb6fDJv;zQw4iYWUiXDDM-gsM+v zQ@PZ2)JE!A>NpKUGo}U5QfZ~MZ)k(GDHV!}ol3Myo=T0%aTO^Yp&QWy=;`z_`eFKY z`a4xERZmsE>L%4T)hnv6)#j*qsPWZG)Y{cX)ZVEx)P2;`)VHa3so&E;X_#q*YvgL| z(KxH|bPjEf%N*{Uk~xRx+}4CO%`_u4S7`3j9MGKB($@0R%F?RRI-~Veo38DlovOV< z`-JwS4pqlZN1(Gq=cLYKh6=-zkLZ@rEqJ6vJJH{f4iNjE!Q9HW+moJu+4^4lvF)ZZ*DZ zLN;+XS!U8;a?KQD$}&we-EDf=3^ubjOEIf48#0H@9n1yhyUm9!&=yV>LW>5A8%z?@ zlbOS8WsX|XErTr!ExRnASs7TxTWz!IxB6&pZ=G)4Xnn_qViRanXwzf!tF4(W*S5y? z+FbHn-?^*jcF%ooXKu&0+hcdro@yUrzrnuO{)2;~gUF%HVbamSG10Ns@dk^=3S(_% zop(Yzc{#0iI_C7&*}+-teAxLH7p6;^ON+~+dB*ej^BU)kx$3!cTZVb0Xx4mvs zcU^amdxQG}4}A}wN0Y~dr>SSE=RwbBUe;bBuMV%*Y-jdL_9<_~+t0hid(emC6XjFw zbKh6bH`%w{0a^jvfaZXyK*zw9fqg-wpantIK@Wn>fV8I2F~=-fTgudr?_nHF76Ya z2X6;&lJCkd=T9WLCY2{WN_I`&o;;c2o>GzWRKONg3!bO?r`DyuP76)jpY|y|CcQla zmywupR7eq~3Hvg&GxIWsv&^%Kv!u(Mm+f3OB?=NXWkcDEvb)7J+0WE~#6+@QGMeL- zQhTd=lZbfxFY`c=@XrK@^Z>#r_a zJ-)_o&4IOqwP|aAD6}ptFMPQ!W?fH_R?(WGvGsoITZV0)e^+=6ZO?$0o?WWq-yLr2> z?D5#sR;N{0TK8_RVDHU(zxvJwqlSuon0-0>9yUfd_J7U#y17ZCskG_Ce&K%UfrtZr z&5q5@Et)N5t#GTPb@E`s!OP!xf79K@Y^!glx0fCQha`s{f1CL2^}|7jdylY=w0&pz zU2O-oqofn+T;4g=mC_~cj_V#i8hEs~$EBy^d&}?lAJaWnb6n+k*$Kjlq7$D^=AWEC zm38Xr>EzR6y-RxUoQXYituMT9@NCf8^XGieo$2@NKY8Bu{ILtp7mi+JUF^E#aH(^^ zexTzA`yV<69R@px9EZ9uJ6-M>o;Q5riu;w*SG}*EyB2Wm(#ZUg;pqt>?FMZqM9Va~FNLGD$lbNT*KP&%S`^@CocfWZ2GB6c8HU3=m{L`|I+Sd?{wJo{Z|>UW?q-PQGavbE$eOnyO?(qGr8}v?<+r;e(3oa^zrVej8C6_ z1NVgU`=rcVIRF3xe@R3^RCt`Vl21sJaU8~<-@Esno9|2=%Z>SJt}SJXuhyZ9&{Eu` zkR&LG3_3(26k%P=L+@$QrBVrM&>`p$7KvbgNpvv_rI~Jq<`g4)x2b9S*W2*b?d?!R zkwGARjt^fx&*Aw3{{uk~sG*@DS`Y+kt1j{{A@TWqbbo(;8jNU)#3XD=J(U+uG0g1Ag4;eT15Z zV-P1t6t%KW$}GhQ_$RJSPfuNzBxxA{=mU+7_M?Z7wA9ts9vXk+;}#b}a(F$P*70>z z8DE7BO%9PiFJ}gBMj@C>D$5W}VkCRF1Hm%5+v(?pmT39w4k&uXm)wufI?3|+0 z=r9(Tf`9Ba^lTRCSq?IW{2XwFT*1o9>PaZrPmD(6!SYI8_>xR&SC=Ar`9)Ujvf4P$ zz%ylc<0ULxpY@o=Oq9#fO!glie=dZ!!QYrR%