{"id":2361,"date":"2019-07-20T14:09:24","date_gmt":"2019-07-20T12:09:24","guid":{"rendered":"https:\/\/pythonprogramming.altervista.org\/?p=2361"},"modified":"2019-07-20T14:23:56","modified_gmt":"2019-07-20T12:23:56","slug":"make-covers-with-pil","status":"publish","type":"post","link":"https:\/\/pythonprogramming.altervista.org\/make-covers-with-pil\/","title":{"rendered":"Make covers with PIL"},"content":{"rendered":"<h2>Changes on the code to make covers<\/h2>\n<p>I made an updated version of the code to make cover images with Python. I made this in jupyter lab (that is why I put speak.imgb to see the image in the notebook itself.<\/p>\n<h3>The styles dictionary<\/h3>\n<p>In this dictionary I&#8217;ve collected the data to adjust the position of the text and image in the image so that they looks good to me. Having this dictionary with each key resambling the size of the image, helps me to use the code for different size of the covers without having too much work changing the absolute position of them. It shoulb be a nice implementation to make the position of the element relative to the different sizes of the images, but this can also make future possible adaptations that can involve also pasting 2 or 3 images together and more, so I think I will leave the absolute position with the chance to add more styles in a next future. So, I think now it is quite intuive the use of the code and the mantainance should be pretty easy.<\/p>\n<h2>image_vertical_adjustment<\/h2>\n<p>This variable is to make the image at the center go a little up or down, depending on the height of the image. So 4 will put the image higher than 5.<\/p>\n<h3>ratio<\/h3>\n<p>The ratio variable now can use decimal number now for more precise resizing respecting always the width and height ratio.<\/p>\n<p>&nbsp;<\/p>\n<div>\n<pre class=\"lang:default decode:true\">from PIL import Image, ImageFont, ImageDraw\r\nimport os\r\n\r\nclass App:\r\n    \"\"\"num_img is to allow to put 2 images on the cover\r\n    size = {size,title_font,subtitle_font,pos1,pos2}\r\n    img_vertical adjustment makes the image (central) go down when 4 becomes 5\r\n    \"\"\"\r\n    def __init__(self, title=\"\", subtitle=\"\", image=\"\", bg=\"\",ratio=2,\r\n                 size={}, num_img=1,\r\n                filename=\"image\", num=1,\r\n                image_vertical_adjustment=4):\r\n        self.size = size[\"size\"]\r\n        self.bg = bg\r\n        self.img = image\r\n        self.shrink_ratio = ratio # use this in case you need to resize the image in the middle\r\n        self.font = \"arial\", size[\"font1\"]\r\n        self.title = title\r\n        self.subtitle = subtitle\r\n        self.filename = \"output\\\\\" + filename + str(num) + \"_cover.png\" # do not need to change this\r\n        self.fnt = ImageFont.truetype(self.font[0], self.font[1])\r\n        self.fnt2 = ImageFont.truetype(\"arial\", size[\"font2\"])\r\n        self.imgb = Image.new(\"RGB\", (self.size), color=self.bg)\r\n        self.num_img = num_img\r\n        self.pos1 = size['pos1']\r\n        self.pos2 = size['pos2']\r\n        self.image_vertical_adjustment = image_vertical_adjustment\r\n        print(\"Use create_image() method to see the picture.\")\r\n        print(f\"You find the file in {self.filename}\")\r\n\r\n\r\n    def shrink(self, link, ratio=2):\r\n        \"\"\"Returns an image that is half of the original if ratio=2\"\"\"\r\n        img = Image.open(link)\r\n        w,h = img.size\r\n        w = int(w \/\/ ratio) # 2 is 50%\r\n        h = int(h \/\/ ratio)\r\n        img = img.resize((w,h), Image.ANTIALIAS)\r\n        return img\r\n        \r\n    def middle(self, img, m=2):\r\n        \"\"\"Return the coordinates to place the image in the middle\"\"\"\r\n        return self.size[0] \/\/ m - img.size[0] \/\/ m, self.size[1] \/\/ 2 - img.size[1] \/\/  self.image_vertical_adjustment\r\n\r\n    def create_image(self):\r\n        self.draw = ImageDraw.Draw(self.imgb)\r\n        self.title = self.title\r\n        self.subtitle = self.subtitle\r\n        self.draw.text(self.pos1, self.title, font=self.fnt)\r\n        self.draw.text(self.pos2, self.subtitle, font=self.fnt2)\r\n        if self.num_img == 1:\r\n           self.img_middle = self.shrink(self.img, self.shrink_ratio)\r\n           self.half4 = (self.middle(self.img_middle,2))\r\n           self.imgb.paste(self.img_middle, self.half4, self.img_middle)\r\n           self.imgb.save(self.filename)\r\n\r\n     # DIFFERENT STYLES DEPENDING ON THE SIZE OF THE COVER    \r\n    \r\nstyles_by_size = {\r\n    \"280x200\" : {\r\n                \"size\" :(280, 200),\r\n                \"font1\" : 24,\r\n                \"font2\" : 14,\r\n                \"pos1\" : (20,20),\r\n                \"pos2\" : (20,50)\r\n            },\r\n\r\n    \"600x400\" : {\r\n            \"size\" :(600, 400),\r\n            \"font1\" : 72,\r\n            \"font2\" : 36,\r\n            \"pos1\" : (48,30),\r\n            \"pos2\" : (48,80)\r\n    }\r\n}\r\n    \r\nspeak = App(\r\n        title=\"Pythonprogramming\",\r\n        subtitle=\"Examples in Python\",\r\n        image= \"py.png\",\r\n        bg= \"navy\",\r\n        ratio=1.2,\r\n        size = styles_by_size[\"280x200\"],\r\n        num_img = 1,\r\n        filename = \"myblog\",\r\n        num = 2,\r\n        image_vertical_adjustment = 4\r\n        )\r\n\r\nspeak.create_image()\r\nspeak.imgb\r\nspeak.show()<\/pre>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"output_wrapper\">\n<div class=\"output\">\n<div class=\"output_area\">\n<div><\/div>\n<div class=\"prompt output_prompt\">Out[50]:<\/div>\n<div class=\"output_png output_subarea output_execute_result\"><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAADICAIAAAC8pWlAAAA600lEQVR4nO19eYAU1bX+d25Vdff0LAwzwzCsgoDsm4AgbjzjhhGXSESjJqgxavAZjYlLJGIW\/b1sLtEk7vpEo8YtJrg9jWhERIUgoCDKDsM6MPtML1X3\/P6orrW7ZwboAbTrG+iprrtWzf3qLPfWuQTchgABAuwfxMHuQIAAXwcERAoQIAcIiBQgQA4QEClAgBwgIFKAADlAQKQAAXKAgEgBAuQAAZECBMgBAiIFCJADBEQKECAHCIgUIEAOEBApQIAcICBSgAA5QECkAAFygIBIAQLkAAGRAgTIAQIiBQiQAwREChAgBwiIFCBADhAQKUCAHCAgUoAAOUBApAABcoCASAEC5AABkQIEyAH2l0gDB5Yxz\/H9k3JOa+stmzdf949\/XPDtbw8j2utqBw0qe+mlGV26hO0zV199FPOcv\/\/9\/P3scIADjCuvHM88Z9687xzsjnQu1M6olAiRiNq7d0nv3iXTph3x5JPLL774pY4XD4WUzz6bpWmC9oGCAQIcDOSMSP3737NhQ539NRJR+\/UrvfHGY2bOHHPRRaPeeGPtk08u72BVQpCmBTrn1wT337\/4\/vsXH+xedDo6a7zGYvrnn9dccsnL77yzAcAPfjCukxoKEOBQQKc\/+F9+eTWAYcO6AbjmmonMc1asuCo9289\/fjzznIcfPvO++05vbb3FPFlbeyPznDFjqtw5+\/bt8vDDZ1ZX\/zgWm71u3Y9+\/\/tT3KaUiZEjKx9\/\/OxNm65LJH5eU3PDK6985\/TTB7kzmBbX7NnH9+lT8uijZ1VX\/zgeT9VWVlbgy3bbbVNMm23Pnhvr629atOj73\/3uaLfWee21k5jn\/OQnk6+4YtyWLT9ubLx5\/vzv9e3bpYOdMXHCCYfNm\/ed7dt\/0tz8s0WLvn\/eecPHj+\/JPOedd2a22woRzj57yIsvztiy5cfx+Oympp+tXDnrzjtPraoq8l3LTTcd279\/6RNPnLNjx09aWm5ZtuzKSy4ZA0BR6Prrj165clYsNnvbtusfeOCM0tJITsr6bKQO3vkO3pNDB51iI7kRjWoADEMCePrpFX\/4wykjRlQOH97ts892ubNdcMFIAHPnLhszpuq99zYdd1xfAO+\/v1nXZVNTws42ZEjF0qVXlJZGPv10Z319fPDg8uuvP\/q00waOH\/9gLKabeWbOHPPgg9M0TezZ07p48dZevYpPP33Q6acP+vOfP54161V3o0OGVHzyyZVdukS+\/HJ3TU3LyJHdr7\/+6KlTB44b59QG4Igjyj\/88PLS0siyZdvDYXXixF4TJ\/Y66aTDZ878u5RsZ5s+fdjEib3Wr69bv75uwICyrVsbO96ZWbMm3Hvv6UTYvLlhxYqdI0dWPvvs9Hnzvki\/nxlbeeKJcy66aBSAtWtr\/\/OfbT17Fg8dWjF0aMV55w0fPfovu3e32sVHj+5+883HhsPqp5\/u7N69cNSo7o8+elZBgXbqqQPOPHPwhg11K1fuGjOm6gc\/GDdsWLfjjnvM3fT+lPWhI3e+4\/fkUEDnSiRVFd\/61lAAS5ZsA7BrV8sbb6wFMGPGCHe2sWOrhg6t2LSp\/t\/\/3njPPR+ecspc8\/wZZ\/x1ypTH16zZY+ccPLh88+aGIUPuGz36\/mHD\/nTccY\/FYvrw4d0uvHCkmWHChJ4PP3ympolf\/OLdqqrfT578yGGH3T19+t9aWpI\/\/OGEa66Z6G73wgtHrltXO3z4n4YO\/dPo0fdPnvxIc3Ny2LBu5qC0ccEFI5qbE2PH3j927APDhv3plFPmNjYmLr541KWXjnVnmzix1913Lxow4J5Ro\/4yYsSfdV12sDMjR1bec89UZr7yynl9+941adLDvXrd+fe\/f37GGUek39L0VqZPH3bRRaPq6+OTJz8ycOAfjz76kcMOu\/vEE\/+3uTnZq1exr5Pnnz9i5cpd\/frdPX78g3373vXII0sB3Hvv1BNO6Dd16lP9+99z5JEPnHji\/xoGH3ts36OO6pWrsj60e+f36p4cCugUIhGhuDh0zDF9XnxxxrhxPQDcc88iM2nu3GUAZswY7s5viqMnn1zOnFaXF1Lyt7717Jdfpqi1cOHmuXOXAzj66D7mmdmzj1cUevLJ5bfd9k4yKc2TL7yw6tprXwfw858fHw4rdm2GwdOn\/2316t3m10WLtpgekWOO6eNrd\/r0vy1btsM8fvPNdddf\/waAn\/3sOHeeRMKYPftt8xIaGuId78zPfnacotC99370wANLzDx1dbELLnhh7dra9DuQ3sqoUd2rqxvvvPODDz7YYmebP3+DeauHDu3mLs6Miy56cfv2JvP4979fCEAI+uUv33399TVmnnfe2bBo0RYAPqV6f8r60O6d36t7ciggZ0Rav\/5H7nmkhoabFyy4dNq0IwDcfvt7piAC8PLLqxsa4kccUX7kkT3MM0Q4\/\/wRAExKtI1PP925bp3nVq5cuQtARUUUQCiknHTS4QD+\/OePfQUff\/yThoZ4RUV04sTe9snPPtu5cWO9O9vq1TUA3Co+gI8+qv7ww2r3mblzl8fjRv\/+pabtZ2LFip3NzUn7awc7o6pi6tRBAB5++D\/uPLGY\/uijS9PvgK8VALfeOr937zt\/+ct3fTnNS4tEPNr76tU17rG4cWOdefDmm2vd2Uy2FBeHclXWh7bv\/N7ek0MBnSKRmNHUlPjii91z5y6fMuXx2bPftpNiMf3551fCJZSOO+6wPn1KFi\/e+vnnNe3WbJoEbpgWlDlcevcuMU2ypUu3+7Ilk3LFip0Ajjii3D5ZXe2vrbVVB6Cqntvy8cdbfdliMf3LL3cDGDiwzD5pDiAbHexMr17FXbqEdV2aTwQ3PvnEXzC9FTeKi0NHHtnjvPOGz5lzwrx535k9+3gAQnjm4rZsafD1xDyoqWlxn9d1CcA3j7c\/ZX1o+87v7T05FNBZ80htYO7c5ZdeOnbGjBE33vgWgAsu6Kg4AhCPG22kmk9BXZduV4ENk3IFBc4lJxKZa\/MNgtra1vQ8Zm1uh6Gv0Q52prw8apZ1+y1MmJqbDxlrO\/XUATfeeOyUKf3sjkvJNTUthYWaL6dPmtloV6nez7I+tH3n9\/aeHArodK9dOt59d8OmTfWHHdZl0qTeH39cPX36MF2Xzzzz6f7XbI5OVRUFBar5hHPDHPRuF1YHYQoWH0pKwkh7GO9DZ5qbE2YTikKG4Rk3RUVtaUc2Lr\/8yAcfnAbgk0+2L1y4edWqmlWrdi1evHXWrKNuv\/3EjtRwqGH\/78mBx0FYQMCMp55aAeDMMwdPntynoiL6xhtrd+5s3v+aN22qN4fs2LE9fEmhkDJiRKWZZ2+rdRtCJqJRbdCgcgCrVmVVRzvYmXXramMxXQjyeQUAmHnahqLQHXd8A8Add7w3duwDs2a9et99H\/3rX+vr6+Pduxe2f22HJPbznhwUHJyVOKZD6YwzjjCnJp94Ypk71Rboe7vULpmUb721DsBVV433JX33u6OLikI1NS0ffLB5b3t74on9e\/cu8dWmaWLp0u1taLMd7EwyKV97bQ2AmTPHuPMoCn33u6Pb7VtlZaHpaHn6aY9Ij0a1M88cjDR77yuB\/bwnBwUH5y6vWlWzZMm2kSMrL754dEND\/B\/\/WO1OTSQM05C1Fwd0HLff\/m\/D4IsuGnXbbVPsBXvnnDPk7rtPA\/A\/\/7PApyp0BKGQ8uKLM2wunX76oN\/97mQAP\/\/5222W62hnbr\/931Lyj3400Z7ziUa1hx46c+TI9p++u3e3mjrkrFkT7CYGDOj6z39e0K9fKbLopYc+9ueeHBQctMeVKZR69Sp+7rmV6Qb08uU7AMyfP\/Pdd2e2PSPhw4cfVv\/gB\/\/UdTlnzgnbt\/9k4cLLNmy49sUXZxQWavffv\/jOOz\/Yh66uX183cmTl2rXXfPTR5atXX\/3KK98pKgrddts7r7zyZU46s2TJtp\/+9E1VFY88cuamTdctXHjZtm3XX3LJmP\/8ZxssJ1g2JBLG\/\/zPAgBXXjm+uvr6Dz64bPXqq9esuWbixN5\/+tPH2KeH0aGA\/bknBwUHjUhPP\/2peTtMRvnwve+9tGDBpkhEPf74w44+und6hjbw6KNLx49\/8Mknl7e26uPG9QiFlH\/8Y\/XUqU9dddUr++BfArB8+Y5jj310\/vwNQ4dWlJdHX399zcknz\/3FL\/zzNvvTmTvv\/GDq1Kf+9a\/1JSXhMWOqVq7cdfbZz5hzJi0tmX1lNm6\/\/b1zz\/3bggWbiDBmTBUz7rpr0dCh911\/\/Rvmso\/Bg8vbruHQxP7ckwMPAm47KA1XVhZWV\/+4urqxf\/+79218HwBcffVR99479eWXV5999jMHvvWbbz72jju+8dBD\/\/nBD\/554Fs\/NHHI3pODJpEuvniUqorHHlt6yLLogOG11y5cuvSKKVP6+c6fcsoAHMJTkJ2Kr9w9OdBEqqoqCoeVKVP6\/exnx8XjxoMPLjnAHTgE8fnnNWPGVP32tyf37FlsngmHlTlzTpgypd+ePa3PPffZwe3eQcFX7p4c6AnZe++dOn36MPN4zpx3tm3LuuAlf\/Cb37x\/9tlDJkzouX79j1av3h2P6wMHlpWWRpqaEhdd9OKuXVnnfL\/G+MrdkwNNpA8+2HLSSYfHYvr99y\/+1a86ZK9\/7bF9e9Po0fdfddX4b397eP\/+pZGIWl3d+NRTK+65Z5G9zj3f8JW7JwfN2RAgwNcJX71p7wABDkEERAoQIAcIiBQgQA4QEClAgBwgIFKno7y8YMiQioPdiwCdi\/0l0pYtP06P\/e2LwtOp6N27hHmOudJ531BaGmGe0\/GxXlNzg32licTPV62a5QtO5MNbb3130qTeACoqonvVUICvEHIwj3TddW\/cffei\/a\/nYKGuLkb0i70qctVVr5hheDVNnHrqwBdfnFFb25rtbfmCgq\/kiwwB9gqdpdpddtnYeHx2nz4lALp1izY03GxG5TzjjCMWLLh09+4bWltvef\/9S80XHs1H9XnnDd+w4dqWllueeupbw4Z1W7Dg0paWW95775JevYrtPJddNnbLlh\/X19\/0yCNnuqMvmOjRo+j5589ravrZ5s3X3XnnqXaGK68cv27djxobb\/7448vNOHtu2BLJbGLWrAkbNlwbi81+442LzKbbQDIp58374l\/\/WnfOOUMfeeTM11670E66\/fYT5837zjvvzBw8uPyxx856+OEzzfNnnTX4s89+2NJyy5tvXtyjRyoS6mGHdXnhhfP27LmxpuaGe++dasZy2Yf+BDhY6CwiPfLI0gULNt1007EAbrnl+MWLtz722Ce9e5c8\/\/x5d975QY8efxg27E+appivSZv47\/8+avLkR44++uHp04e99dZ3b7jhzf79745GtZtvdsLH3XDDMaed9uTYsQ+MG9fzvvtO9zX6wgszGhvj\/frdfcIJj0+Y0POuu04DMGpU99\/+9uTp0\/9WUfHbe+758K9\/Pbdr1wiy43vfG\/ONb\/zvkCH39exZfOutJ3TkYlVVNDUlnnnm05NOOry8PBV39+yzhzz77KdTpjy+evXuSy55+fvf\/4d5\/txzh02b9vSAAfeUl0d\/\/esTAUQi6vz5M2MxfciQ+44\/\/rEpU\/r94Q+n7E9\/Ahx45IBId911qttA0vVbzfNXXDHvO98Zed11k2bOHGMuet+ypSES+fWLL65KJIz16+uef36lOzj1HXe8t3Vr47JlO1as2PnSS6sWLty8Y0fzyy+vHjrUMSpuvPEtM7TdT3\/6fxddNModJef44w8bPbr7FVfMq6lpWbeu9rrr3rj88iMjEfWww7oAaG5OxOPGk08uj0R+XVsba+NyfvWrd9eurd2woe7xxz+ZMKGtcKEAunQJz5w55sQT+z\/77Kdvv71+z57Wc88dBmDgwLIBA8rMuOc+3Hrr\/HXrardta5o7d5kZzmHatCPKywuuuGLezp3NK1fu+tGPXr\/iivF2fKK96k+Ag4VOtJHWrNnzu98tvPPOU2+9db4ddrikJHz++SNGjeo+dGjFpEm93cFDNm9OhU2LxXQ7hFoiYYTDTifNKJ4APvlkeyikDBhQtmdPKirQsGHdolEtHp\/t7sPhh3d98811H31UvWrV1YsXb\/3nP1c\/9tgnvvhsPthhGJqbk9l2l\/nLX775l798E0A8bqxZs2fWrFfNt2VfeGHVjBnDH3xwyTnnDHnttS8zxo6yo680NiZM5XPo0G6rV++2Q5wvXrxVUWjQoHKzJx3pT4CDjs5dtGqaQHZQ1aqqoo8\/vnzr1sZXXvny9dfXjBvXY9q0wXZm9\/vD2V5SSiZT8dAURfiKqKpYs2bPoEH3ppc6+eQnjj66z7RpR1x88ehrrpk4efIjbSx8tOMeInuUQ9vZ4MMzz3w6f\/73KisLzz57yL33fpSxrDtWm1l\/PO55094M6ago1PH+BDjo6MQn3NSpA2fMGP7Tn7551llDzj57CIBzzx2qKGLy5Ed++ct35837okeP4r0dGKNGdTcPxo6tampKrF3r8OHzz2v69+\/qC\/djghkLF26++eZ\/DRv2p5aWpPlyWGfgvfc2btvW9MMfThg9uuqf\/1xttd7Oq4urVtUMHlxuR2wbP76nYbB764AAhz46i0hFRaH77z\/jj3\/88Pe\/X\/jQQ0vuu+\/04uJQbW2stDRy5JE9olHtssvGXnrp2L2NcfPb357cv3\/poEFlv\/nNyQ8+uMQdePXtt9cvX77jscfO6tOnpFev4rvvPm3TpuvCYeXii0dt2HDtiBGVoZBy3HF9KysLzQAanQFmPPfcZ7fcctyrr35pxyVtbk727FncRizsV1\/9srq68f77z6isLBw2rNtdd5369NMr9iGQZYCDiByodnfddepdd53qPvPAA0sSCUNKNqN+\/\/Snb06dOuiOO75x7bWvH3ts3zfeuNgw5Pvvb7788n889NCZ6duEtYG33lo3f\/7MkpLwY48tvemmt9xJUvLZZz\/zxz9OXbXqasOQCxduPuWUuaaDYeDAsldfvbB798JNm+p\/+MNX3Ls25BzPPPPptddOevZZJ8rc\/fcvvuuuU488sseVV87LWETX5bRpf7333tM3bLi2sTE+d+5yd7T0AF8JfGXeR6qoiO7a9dOhQ\/\/UkVj7BxFDh1Z88MH3q6p+nzFId4CvKw5C7O+vKzRNhMPqDTcc89hjSwMW5RsCd2rOMGhQ+Y4dPxk4sKyDIe8CfJ3wlVHtAgQ4lBFIpAABcoCASAEC5AABkQIEyAECr93BBgFga4UHAYzUUqDUsQ\/s\/CeAwWSdCXAwERDpwINTNCEiQEoJNlcRSUCkiJWFRWZxQAIEGGYtAEiQXYI5RcYDdDUBAAREOlBggE3mMCQzwDZhElqBUtBVFSqFSiKKIgCOlheCyF66axIEDBDFG1r1WBKEeGPSiHOiWeqt0kgqgGJxTBIJhgCzRaeAVJ2OgEidD7LEBDNDAIkuvQqKexQWdi8u6FoYioaUkAgVaSRIi2ikCLAMF5exSaTUilcGswQTI9HSZCTjACdak5wwEjFdxg0jIVsbYrE9La21zQ2bGuNNBYC5ClFYZjAHdOpUBETqPDARMUuwBOKRLtRtcPeKId1LenTRIkIJqWqkQNFCUhpsSCmTYJaGzpJB1FK32xRHnGKg\/SMhhCAwU7gwgkIqEAIgUhRpGEYiZiTieqvRsrtl2yfb9qzeY+ghIEQkmAMWdS6CCdnOAANMglkaQk2W9S\/pM7531eg+QlVIKERCGjpLgw3DkJangABmYk5xhwAPi+DwipmZYTKUGcySAMkg0+wSJIR5unlXffWHm2tW7dHjBUSCWQmctJ2HgEidAUmCWSa79FQHnjy859i+IMhEgk37iCVMXpBDEO+PZRrZqp1LOrHttmOG6wuAFLdSuiARkdBCe9bt2PDWusZtBkhDwKVOQ0CknIMBHeCqUSWjzh0X7dY13lBPBAgyx77NgjT+mOdNFlkEYnZcDWzJKFeyN6+rLDODpZRqqMBIJNe8tnrnikZQGBAI1LxOQPB8yi2YSAKy+\/DiMReMD3cpiNXXkkIQyM4itqQQexnhZg2DbY8FnK9ekQU4dQAAQ5BIxltI8KCpQ7qPKQYnARnMOnUGAiLlFMQMI1JiDD9rVCga1RNxRVUA02hiAimKIpkkAAihCPLZP7Apwdasq\/2iuot9nnxe8wlwKAoGWJCQSZ2h9z9lULdhEXDSFJgH6IbkDQIi5RIkABb9ju1f1L00mYgLSjkNwCyE0A1ZX1eryFiIE0aiua6hgYkEka2TwTVllG4umRW5v\/lI6J51ciZnwSSIpS4I\/U\/qH61EIJQ6A4H7O3cgYoNDUb1ySA8IASlhiRwQxRIJNO2YOqxyVL9uIVWpbWxZsn73ovU7lGhZWFMM3QCRz9ltc8IWRu5v5rH5y\/l0ZfUokCCp60q0oN+UPque2wgozBTMLOUQAZFyBSZBbFDZgLLCbkVGPEbkGEES4NoNv7jwuGPGDLMLnAf877x3Hvn3BlFcqSjE0quX+YSNy9vgSfA7GNxVuOoCgST0ZFGPwi79I3XrAAE4cb4C7C8C1S5nMB\/vhRWRSGmZ1PXUmlKWRFS7bcPsGcccM2ZYUjcMKaWUumEkdfm9M6acOaYykWgBRMrbwDZjOI1FfoPK8dpZbjrL\/WAe2IRKVSt1Qy0orBheAejBWtfcIiBSzsAsgWS4OGz6HMxRTEDSkBP6Fk8ZP8KQUlMVRQghhKooigAzLj51UjFaYokEwedpSHkSPJpeulvClkJWfpfTzsU829UnZaQ0FCoymGWg2eUQAZFyBCKWTJQMFUakkUy9FsEgIVqaGyeP6MfMivDcbSGEZO5eXtajJMSGHaAvk5vO5eH2uCXSdDn2JtjyyzwmYqknwsVatCIEIAjbmkMERMo1UmtE2fEcSBmNZI0OCaA4GobHCef+5vIqZHbTuUWWI8SQ0aACmA0loqpR86WLNl7WCLB3CIiUWxBk6j0JIKVKhQsKl63dmi1sdzyR+HJbnWQmy2OQxU3n9z8487Npzr3sBhVLnZVQVIuqAYtyi4BIuUSKBylnAYNZMmuaunD1ti07amC5E0zohlQEvbbwk2YZiYRC0lqDZ7kOOJObzl5L51X82M+iTAaVeV6SUIRQAAp0uxwiIFJuwZZ2BVvNEsytWsUdT77R0tJKLqiK+HD55w+8vgKhQpBt3zi+g0xSxTzvrGVwuxM8ksjjifBIOAAsAlmUYwTzSLmHtS6brGEsC4sKl+1OXPq7p6+dPqVfVRkRDEMu+mz9A6\/9J6ZVhFRFGtaScKBNqbJ3brpUfwBPFnZRKkCOEBCp0+DoWmBdLy7uslMvvPqhd7oVisKCcG1Dc11SKy3rpbE0WeTzHeTETQf4VbuAQ52EgEi5hgT8\/jQGIKWhCepW1VuXXCdZKe1awWwYegY3nUefs1c5ZHLTWWWzuukyGlQuYRUgVwiIlHOk3AxgSvee6ckkmSa\/noEjzgrudDvH0RjdlbqETGYWuZx4toElQRSsDsoxAmdDLkGu9Ws+O8ceyDJlOxFbS8PdvHH\/d3wPVj53texKtLJn0eVcFZq2W84vPEBApNzCCrbAHjsHrjHvkypplgw8vGrbTefjVRtuOu\/ZQLXLOQLVLrdgSGkYhiGZ2PAMcv9cEAGSJblFFuCod\/b8LINJER1z09lSC94sNnm85QPkDgGRcgvSoqGC0m6KokLYi4VgDmgJptRkbCpsUIpWDuH8fgJmlkZSb230JcIq53XTeZrLKPpSYYuCsA25RkCkHCE1caSt+demrf\/ZJfWktbbaNnJsHxuDnBSPP9pzyACBOVqu9D2+P4iQWnrE3h+3tGO7qNc95\/I7mHpnYCblGgGR2kUq1HB7C2rMpWtaw5Zkw5Yc7nvJscrmvsezNb3rngty2zqug3Q3ne3is\/tqcZqIFKUDnbA9kamCgUDzIyBSRjBgL0aTLMEQHTMrOmOEkaObOc5uF3XaddP5qOdxaUDXO9JnAqQQhqqQbgjT65iz6\/taICBSZpAAS4NZBQwtahR0KQgVhdSw6jVIUsgwwZlyF7gUO\/9vhjeHVcznCOBIecTKbJ+DXTDDlKvTjtuj7v6xM8k+PRPjxzHrkrIre1LSnjrethNr1gkpI0IYREJKEXDJjYBIPrC5oQNLCLW12+Du3Yb0K6wIF1UWFZSWaIXFzKa3DW4PmMvud+lULp+16V4gSGkW9Fgx7HVMW65tqy5p6MnWRrD0aGxuo8jvhkh307lYRtIhoTRO+6\/Eg092g4xBZGeFwcaO5i\/W878XJd59P\/H0SwQUCCGkVIPpExsBkdyQIAOsg2J9J\/TpPX5USe+u0bJuejxmJOO6nkjsqXGe6S4dy7+GwCYJLPPCFD7SGuAez5vHhwdmhiQXYxgQiiuQiqti+zNtosnbJbOIK4vtCGlu4cTuRr0poWZnBAMhlYYOU4dOiF5+YcuMs\/Rb\/l\/zZ6sjRGDWArlkIiCSDQnSwXpxlTbszEkVg3spmiYTsZba3QAgQAxz8yJmK\/gwrIe7ywp3SRRbwaJUKcFgsqhASE0WwUpOxeMiNvMRgZmdYEReepo1e1gEq0WPYHLyOb22IQRCYRJxqEpbfGDJekvCaIyHw3TWOeGjJyQu+EHr2+9DUcgwgnjiQHALLEgiCdZ7j6s45pr\/6j6sL0EmW1ukIYUqhGJ77bweMI9QgHkGSPc\/e20Vv87lt3O8yOCm8+Zzew48Doasndx7ELGqUDhEbEi9IV5ZJV58FFMmtxiGFMJI73QeIiASAElkMOu9x5ePvWiSFgkbyThLQwgyI99b2dI8YHB8Y6509sgO3xQq4HxLpWamjkc7g48JlrbmFVUd6uReg61\/EmAiqApkS7JLhfL0X7h\/32YpIYLXBAMiASAhmbnn2K5jLpzMkq25VHIMdrc\/wLGKLF9yFv3KJTY8HgjHA+2hKLuqdVfnlyr2oeNAyCb63J3ct1tj7pLGln+CGZBgFgKyOV7VR71nTiISShK15fTLE+Q5kcztwKi0T2jkuWMFkTR0CI9Vwg5bLNeA15UAZ1jbWe0PiyDWQHRI580Ld4Me3vgo6tMIvS6INjq5t1Sy+WNSkaXpzLTEoCSC3pQ86XTl\/LMaDUMoCue5gpfXRDLNea3AGHL6kEiXkmQsTkLAO7Bdpgccg8Q7oAHfcPe0kqbp+SwZV2Muf5511LabrsOd3DtYFLIEmkUnW81jIibDKAjzFRcb3SuaDYNFXg+l\/CaS6S\/rPry8avSAZEuLUIVrtHodXBk9YKkUOGPX9enYKi4qOPW5x72bQ94zvqLZ3XTtdLLDYHPCKgOLHGqlNrMQAsn6xKRJYvyoBLPIc+0ur4nEEqGo3v+EgTKRYOE1JSyatOMB80oUv61iq3RWhZn44B7\/3u+OVHE65KZrrt10WeSP\/6TZFJNgYoaKGdNimtZkGHmt3eUtkRjEgF4+oKS8f49kIi4oNVhS4ggdslW84isTixypYlXrI5OPIZmlitMP9lXcXic7djOk3yhqg04pxU+CpSJYNibO+Cb36RlHallvnnIpb4kEsARilSN66XpCWKPUGaRsjX7rYW9\/sx0JgIc1XkOGHU666OY3qOzRz5bjwZJhTjVOfalPVye5rU5mBXlXI7gtItOdIMFuB4NMHaf4ZmdjEsw6d+0mxo9Mwg4wm5fIWyIxwFoBqoZXwdCZUvF7Xfa+S6eyvsE5ZdaRWSK5lC+7kCVdXKXsqj0iyUmzTqdxooOdzAxBhh4zYrojvzij8JHek3BS3f+YhZDcmjzjJAPI4csjXz3kK5GIAJQdXqZFQimtKM0DZlPG5TFwDdP9dNPB3aDViM0rj47oLt3hTmYGCyIZb9VbDZMqXbsCzMJNkhSL4FAI7HWFew+IScopExOamsxbvQ55SyQCA6LrYeWpBW5p3oL0p7vHTcdePsBbMF2q2IduNrgb8htUHrami75UXdk7mRkMkDB0aSQIICI5ZriEYVjX4hZKXn3Pn+oQjwBI2bvKGH5EDGDKVy7lKZFAAERp3zJSVBh2TEe3lpUyQlIj2JEqtjLmHv0Z3XQuXqYZVD7SOuqg23WQWfSl9cDfyayQgFDVZKPeWpMAJCM+ZjjDkIKkV7WzIr+yxSInVaZJJwkpifjosQkgfwdUXl43MTOHCvXCiiKLGc6H4ymwSOEhkc0UK5v9hHYcDJ4as0oV1\/BP1ZY9v8Mu26rxd7Ij1w0QidY9sWRzCJC9qvShAxmGucBHehcEWQ4GeCmUul7pXuvAhoRKE8ckAfNF4nwUSvn4GoX58kJRVVhoxIYOZpAVEcGtNrkFga3LebUr37D3Wi4ZWAGrEZcC6Rl4WVjnrsDTrYxqZDYIEslYa\/26RhCD+fyzRLRQwNws0NHWXGpo6sA1RevXJxmAZFYUmjBaBwwQ5efTOR+v2XT+RksjQhPWVqrsGqAZ7BzLBPFYNG6pAtij2zsWXbnsql0KpL8hJ7+LXi7CtdXJdsBMqtq6q6VubbOqJBWhf+tUhkYsXdoaXIxyeyA8LJKebGABhmGUleqH92kwDIi8XOKQn0QiQJT07KIVRN37qfjsHHgTskgVR4Q5h+z+7WXRXrjpMpI2eyfbh9Djia0f7BSk6Dqd+83YmCPBcd0jf9qfk7UUP7AnpyEjmtGzSgfy9JXZfCQSAQBFK4qEGgEbFkvYGaBuNc3rNIBHqpgHls3vKuOyrOz\/HoMK7mKeFlKj0\/riE32Au4uuBtsGSxaatv3jnc3bQEJ0KYlfeylHSxROGCTgLOtOZ1FmOsF1UoIkpCws5OED44CSnxIp\/2wkgpRS0VgJa2wkpCSh2KpTVtumrQHtFhpmYhY7x6GJh6mOHGK2+OiSR+7m3BxzKmgHzExqQeHOZVt3ftIkSDUM+ePLk+OOUZMNCVWBVwqZPXGvW0WmaSW3pscESF1qhcqwgYa5WTuMLH35+iIfJRKYhaKTSl4p5OhVHtXMUdrc49YZ2s5wd0pmHOM2A7w087fqJpqTz0tYu1ttXqRkMJGiEXj7ks3V7+3SFE2ycsZJLTf9RChxXYUkvxSyYwxlEU1uvc5JlVICIaqqNOybk2\/IO4lExMxcUK5FilSpJ23T2JEK5rf9dNNZee2qLT4wS3aY6xdffnHFlhxwaJdO2gwXCSFICUdYGq11jds\/2F23NqYoWtLACZNqH79HD5EwDJ0UpFECfonkNOQWWW4BZRqZEiy7RA0hDEPmo5GUd0QCkNJVrB1YUuvsvAPUJR08bHLLEa\/7wTPIvLxiZrCULCULUlSNiEBEQrG4BCZzcgtg6dL+2F2Txe72WAQiIfTmhqZt9Y2b63ctrzdaNEUohoEpR9c+97BRXq5wXFcUeCnh5onrgH3ZXDfFdSAA6LK8lIqjsfqmAiLmPIvTn59EIhJgWH\/tzG46ry7l1bLg+u0kpLHLYhGDWVFDIlxgxFtaaur1OBsxPdGUZGJyrZl2VDYJpNYXuAnD5mYSbey2RwQYMtGQjNXFG7c067ECRRBDGtK45pLYnBu4rFQgoZOwqk81kS6UsjDHvkVu4llyMmkgaeSlsZCvRBKRkoJQgSYNnVimAsi5\/G1wCQEvTXwGlT\/Z72BgBpFQNTaMuo27a9fVNu9oiTfGZFKVSaHHdF9cfrMH3tjE5E1Ny+JF6ko4AgAIAUlDKsMHtfz6Rv2s0yQpMOKGoiCNGGkSiTOmWrpcmkQiSOgoLabKMn1DdYRSE9x5hPwkEglNIU0BWxul2PBKpCwscj21U4XSWcRgJkWThr571fbqD6tjtVJvZUYICAEaAEDLONr2ZwSyuWwHSUAqihw1NPb9C4zp56Cyu0CLLuOsKJlESlbmmKnSuWCfIAKsVMCQxYVGRVd9QzURcb5NJ+UhkQgw4o2tyeZ4qCgCQ7cinDqEsD72wU1njUUmJRRu2Lpnw\/xN9RtaCYpMRfdNRCLcpUQXhP0bamxtJOM+JwGjsDBR1c04fiJPPwMjB7NaIADojQmFWCjZ5E\/6QUaLqG1ND9Iwg5vnI\/KQSAxIvTVpJHSCMMhSr\/xuOp+u10E3nflDpIjqpZs3vr1Jb1WJhGQtpDVPHCePGkdHDsP4sSIUatNf0E7\/kRrHEt4BLQno159QEELSgG5AZyQMllJVyLZkOsAc9lablgG+4qlboahSU\/NMpbOQh0QCABBxKgQxO9vn+V3QcKlrPuXNwyJ7IhVgSCJVbHxn3eaFu0SqCeOcqYkLp9PZpylKj0I0JZAw9lGBI8v0St8SxjppxHRuTQoyL5EBtlwLaTxxBEs25sCr2mV1RTAYAg316o7dGpB3LjvkI5EYAEkDrNsvtFHKDQ03PXwLDpw0pD7tRUDslJKshEPr3vlyy8I9qhrWdaOqMnb3L3HWNDXSNcR18cTmRkURRPs20mwHhtkH91tDAEkzVVGySBI7f4oP3vUKntRMTPOYRh4xmDpQRF2T2LFbte5MfnEp74jEIIDi9breopNQIMHCYQz8z3nrsevX5RwW2eNLSlbD4a2fbNyyYKuiFOi6ftSYlgf+oIyZUMAtiURNTFMRCpve4X0YZCZbXGOarIFO1phO+fKdHlkX4FXJMpo6GeSVW4VrU9NL3TYWJDVVtu79tX0NkHdEAgAIPUZ60jCnRAmUPiwyuelstQYeFpnizGA1pDXtqN3y3jZAM4zE8MGJV57RKrprRmNCgEOhfX5Cpz377ZOOuIB3oMOabfIJE7sIvBLGe+CpJ5OA8qeCAYRo527R0BQNaTKRzLvZpPwjEkMoQhrhWH3c4\/hy+APrEetwCOxksfJ7XHxCFTJpbF6wOVavCMUoCMefuFerqAoZzUlFof3QczKO70y6WQaepMsQuIqnZ4MrZ9vM8VUIYoaOPfX5ux9m\/hEpRQFKNLUayZggWPtYuowiF4esIcb2CcegcrIxSK3dsL1mVZ0gVRr065uUIydFuCmhtLmBV3sdtT0E8Khqzvi2DoA0wSLB9tonn24mAcrEKxe1PD469qem0VJRmRv15atDAOenBzwfiQQwIBu3N+rxVqGoMAz7VXOvRud2N3iVOfsjNaSIDX37f7YRNIYYO6L1+xeqMm7Q\/gqi9CHbxoDOsOAgTXOzi8s2nQ3IlJpV02PJpKClmddv1gCDOe\/0OuTraxQAuHFbU7I1SSQsYeSXSO7c5oFrSLsJB5CI1bfUbWhSFIVZXHu5Ei3XOC5pX+4u23FMs7Ao00G2VOfYt0eLLzWtHvaebKMV81hDXZOyaHkRICW3c4VfS+SjRDJ9zy27EjLOKBFgBnkXuJm5nA+bZm42Od4qUkTtujoYqs7KwP7xYyZAEOS+LZPZP1vFU9ypx52almF\/nHiu443V2rZdpYpChpGPZlJeSiSAhJBGpLWuxTGE3DLG7aZzCOV8cedgCSJq2FgvoADqsUcZfQdpsilJez2c7Ge89I7vvZEMZnFbnmQUO36J1zHhljGVGWAi5rgx\/8MoIJiVnPyBvnLITyKlJkT3rNstnbV2Fj8sAwnWU9p+nLNzbH1nMEsoasvuFgkFSI4ZyVp5JKmDxN4wyQ5Ob7bppkRHVTK0meoTLOkRIb2VZ2ZgxlQJAhE\/\/39lAEmJ\/HTc5aNqB5hMkLUb98Aw2NyNxHLO+cRQ9reMzEMmQYmGJqlLyYIoVlHGiOl7YR1ltPLtEe+bVLWN\/vZdET7neLthGOCVhO26IiyZzEwqln0WWf5FiRmCssNX\/rVCfkokmOOjsbpRjyXN15EAmx1muksWue0leA+ZiZREU4vUzU2\/iUDYC62u\/U0mOyyRvNmADKltaWsyax\/8J01pZt4cZgPQ8LdXu0oZylsWIY+JRICQurZ7zW6CYg4RTiW5DpzHvUUdh2o2eJ\/uIqdtMok29bE2ucHebGCvm64D3PBV3gYDU3ckRTyGTOj86nulgLb3ZuHXB3lLJBOh7St2QAg\/iRzlzc0mW5mxv1k\/ex3uI+OzX2bmhseSaVOw7E\/q3hEvdWwYjELljTeKV28stDiWp2TKYyIRAaJ+U23jtl1CUaVkr\/UD64lrnvKwiL08csU\/aBe+TSbdK7g7PPrbcQNkj5batlroHLQbLzKVwWAoEfHS211bY4VC7OOa9q8H8pZIBAYRGfHQ1iXbRKiAzYlEhyg2W8zfDsXgcMzM5nm1LzsyjkXXxpKpk+5NJt07RLjdeu4tKL1FnHrsytk5mXkrS9v0kl7XeabKUwcAoOvQCsWni5W3FhbnrSCykbdEAkAMwazVrN7duHmHGgqb70m7PA7sWASOjLLZ5Wh9HUBHVKZMToJ90NbaqNzlJMiq13VEIgEwV+xFxNOvdNm8o1xTpczLcHY28plIAIMExeqUrUurIRSyCGJZSuaHW9Oz5ZG3Ft+J9GY6xA34x\/TeEq+t0Q+HJO1rfXBNK8GbmoI0oEXFisXqE\/+oJJKGzNN5WBv5TSSAWYDE1iU1Oz7dqEYKnIViLuq4hpeZ5GRIDbW2eNSB+PRZJUMHuNH+\/hHt1pNOb7cTT7p89K6rEkTgu56o3LKjqyJIyvydQTKRrxOyKZiWkiL10Lq3NoULtS59K\/V4HMLijSmNXKLJo9Q5NlMWJnkWTcNFSLeUQNrg9uWEhzl2qvMPWYq7U9PnZylrKxnq8V+WWiSefanosZd6CYJu5PkoAgKJBICZiChWS6v+vqp+y24lHGaZsrldxpDJF+ebyy2RTiN2jHjnWHp9ABmdBJYQcHJ6nQRubwGz85nBFZHRUWGXgtcVkVa5U4\/n4sxzVKgsXazN+tVhRGFmDcjf9\/lsBM8SAMSsEhmxOu2z5z474ptHdB1Uybou2ZC6QeYO6OTT9JBilel58OwI5BIUHlED1wM+o0RCpuj1EjD3cEqXSOnF25BI2eRVNolkXyaYzb1CQUQiBGhiyZLweT\/ut7uumIg47ylkIiCSCWIWRGqiEStf+Lz76D09xnYv6FoQihZJPSmlAUlSGu7Rm8Vh5xqjDiXcA91etIa0gQ7Xp23xA8wknDcLrXrY7HWqFSf+iatz5MpmFiFXcbJa8R2k6rHuiwJSCSCEBeLGjt3a03\/vOvue3s2xAiGElIEsSiEgkg3BDEDIpLJtcePOZTsrR5R36VcSLgmpBSor0MIagSSDXMRglpR62dStJLchGeA5k8F28hZnBpCKX2qbOrZEktKJHOQinr9dH3M8UtEnKj0XIQSam2l3Lek6bdwZ\/mRV0YN\/q\/x8fVdTOEkpAtPARkAkN0Tqk9hIFmxb2rptaUuoSA8VhYQqtCKNrEe6M2oBEBkJw4ir1rM5m2Malv0Dl24mrVCPabwyUwUl43zZjYW6HoLzpqDVtGfkp21e4f8u007LrHkBAIrC9Y3Klh1aPEEr10aBQoCFEFLm9SKGjAiIlA4CExAiwSAkmtREk0mwtvZzJIRSv23mZJ3JcfMKXtb5Xl5gMCTLuS+VAsWdcq0dBQsyFIUNaQqiAH4ERMoGTpkzZnDwdt8bZ0o90aU9FUOZmJPubPDpV3BSrc9IOJlIxoDcTHqaLn9B1BHFjNl0NkCyktRz0v7XEwGRssGiTWpst6PJELn3hmjTVslgmWQ0olIHCsnf3Vyr603kr9yNbCfZnQ5IXaK4hF96vfT1BT0UhY183Rcs5wiIlHOwNWnjCiuXVbVLN\/rhIZ6EquDq78eBuNe+8i7kcbREeFPhTWUkJHqFa3YZry\/ooQg2jPYkbYCOISBSzpFR\/mRyNviFElwnXTEcWRrNBhFSE6m2U5ulszkFWU48WBnYCauf8uxJBhDXEW5KJuJ2iwFyg4BIOYe9JgAeyeDQSWYymdLllSNtFMWe53HRxqzAHVbf3kcsY1h9RQIQBgsh9i4wS4AOICBSZyDd5rFPtu3ES99k0pvB7YpgHz85TbXzKoqpg\/0I\/xogOwIi5Rwy01BGmjoHP68ypKavGIKLOfCskzC1QTNsAhvuQD9O\/QE6DQGROgGcLkPgcCajEw\/ZXBHwUsvtivDKH6GA4pxoYTaE0KBGYVBq7ivLcqYAOURApFwjszsbjmqXgTm2i09mIExbIss6JuitexLoKaJHkxKW8e1o\/CQSkaQUQAazPwcCAZE6AeyOfICO7fvgixCETPIqY8xHgGQ8ZuhF56sVZ6jRPqSEjES9bP6iadNdUWOtokX3JjZLgH1EMB+Xc+xD0Kw2i7Arg2f1EAMM4mQ8nij8VvTw68JdjlC0AiEULVIWLp8UHvS7FuMwlsn0maKAWDlHQKTOQBuUsJjT9uqhzKsikEY8sN6aQN\/Cw68iIrDhIqQRKuqr9b0+EWc\/cQS04M+eawR3NLdgcr8bm5Ub8J7c1\/0jWAKCi48XQgNLkGJF3yaQAnCkYnICFW4iCcHcImsbhcXPALlBQKScgQgsRTwOEBFb07I+GsBiDjIxJ7PiZxPPRyeTrkShbqnm03rELEX0cDMbAJbQFFC9vnVnCJDBqxA5ROBsyA2YoWlIJiMbtwoI9ytJpjSQjpLWkRVxZob0Fa4eV4RZVrIRS9WQgUuCEzVQUwtqGUQC9U1U3xiyXmQMuJQbBBIpVzB3oaVPP1djO2KqCjbSJRIyyJwMEglZHRV+iQTIJJqWumq2wAaAZONqoW+x\/8qSGWHatC287IsSAPm5R2UnISBSziAlEcl3FhWtWk0oEEZqnLrlj2xLnbO9c27ipbPIKQuAiZRQfEnLjrdBCgBwEqyDdZAipd66+dGwFrfFDhEY+HB54dadXUIaB6\/o5RDBrcwZpCRVETW1xXNfLCBpCJHdSZDVFQGvKyJT1FWnrARLCFVTm+WW37Rs\/z8pGaSBVJCabN3ZvPYPBYl3FUUzu8cSpIq67fznZyoBQw\/eRMopAhspl9B1EmTcN7fL1BNaT\/6G5FaDRPoCcPsVCde7En6OwcscOPzxGFoAS1IiheH61s2\/iDUuoMKRpBRzvJob3o\/oK7Rw2AoECQAiQnc\/2W3pqq5EyPNQ3TkHAbcd7D58rUAkmZP9ejV89Ped3bqDW3VS4HUS+NjS7rqHjCtc\/c1CwIjXG1KFKIBeHwoXQC1IvaEEGBJKsfLmW9FpswYl9aiUkcDNkFsE8j3HYCZBtKG6ZPqsspodkgqENNiK8OhyWzsWURtan2eTSbP6bM1CQgmVhQqKQyEKFVZASbFIGmDJSqGyeIl26ezD4okoc6CG5B4BkXIOkqwqQvz7o7KTv1f+wSIhihRSOJE0A6b61stlsZc8GdzEawMM1iENMEHqYMkSySSJCFGROvdvxSfNHLhlR6kQKrMSiKOcI1DtOgMMQBGGIWV5aeOtV++5bEZjYTcha5OGZFUwCbiUvSyqnZPqfhejY81LJA2EQkAXdf0q8ZenKn7\/eA9GgSBNshmKKCBSjhEQqfPARLoZIHzaf+2a+e36b53SgkLBDTrrkohJkGei1u+7Mw\/aCqaXoUkJg6GqQJnWvEX\/6ytl9zzZ47M15USSWQHUgEKdhIBInQomkoqQukHhUN2Uo5q\/fXrz+ac3FpYBSQmDISXYZUEJUPoL5Nmqdil6ZIbgFgSFoNLWjfTQi93e+HfpB8u6AmFVYd2wl+EF6BQERDoAYFU1dN0AhKq09u\/dcupxjdNPbhw3orWoUEIAKsGQkBIGS50lmCyJxICwIpiYLDCneVUCqRZzAOjMBu+uF2++V\/TEP8tXfFlSvTMKFAghCYqR8nQHLOpEBEQ6MGAiCMFGSlPTiZJlJbFvHF1\/\/LiW4yY0VXZNFEWNwgJJhQo0QJfmJBMkQwcI0KxIruZBq5Fs4cZm0diifLExvHRV9LX3uixaXhKLh4GQGU9IUYSUCFamHhgERDqgIHOfpZS+loqJDPCAPruHHN7cv1d85KBYtzK9oqse0lgyCsOya2lS12l7TUghIuJte5R4q\/LFxtC6au2zLws\/XRNtbu0CiNT0LkQq\/AkjEEEHEgGRDjwcs4eIiUAkDQOWDSMAqGprNMKGREnU6Nk9kUxi7eaoEFIRqGsstCpJ7fOnCMEgZt8OEQGLDiiCubkDD2eIMxMzA4ogJgECC2EAnEiGG5oI4OYWsa3GzJsSX5pqEDEzMUOywozABDoUEBDpoMPc64FSu8YYgKUBmm8ImtH5pSVtknpu9qQIkFsERDoUYStpQUS6rwqCJUIBAuQAAZECBMgBAiIFCJADBEQKECAHCIgUIEAOEBApQIAcICBSgAA5QECkAAFygIBIAQLkAP8fHDVL0vkwMTwAAAAASUVORK5CYII=\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div><\/div>\n<h2>Other article about the evolution of this code<\/h2>\n<p><a href=\"https:\/\/pythonprogramming.altervista.org\/create-a-cover-for-youtube-with-pil\/\">create a cover image with PIL<\/a><\/p>\n<p><a href=\"https:\/\/pythonprogramming.altervista.org\/tkinter-python-app-to-resize-images-part-1\/\">tkinter app to resize images<\/a><\/p>\n<p><a href=\"https:\/\/pythonprogramming.altervista.org\/trasform-code-to-create-a-cover-image-into-a-class-pyhton-and-pil\/\">transfrom code of cover maker app into a class<\/a><\/p>\n<div><\/div>\n","protected":false},"excerpt":{"rendered":"This time we make different styles for our images made with PIL.\n<a class=\"moretag\" href=\"https:\/\/pythonprogramming.altervista.org\/make-covers-with-pil\/\"> [...]<\/a>","protected":false},"author":1,"featured_media":2385,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-2361","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-examples"],"avopt_banners_inside_post":true,"avopt_banners_on_page":true,"av_copy_from":"","av_sharing_message":"","av_sharing_allowed":false,"av_sharing_on":{"fb":[],"tw":[]},"av_allow_affiliate_banner":false,"av_allow_affiliate_multi_banner":false,"av_show_affiliation_buy_button":false,"av_post_rating":true,"av_have_post_rating_value":false,"av_is_artificial_intelligence_content":false,"_links":{"self":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts\/2361","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/comments?post=2361"}],"version-history":[{"count":7,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts\/2361\/revisions"}],"predecessor-version":[{"id":2386,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts\/2361\/revisions\/2386"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/media\/2385"}],"wp:attachment":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/media?parent=2361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/categories?post=2361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/tags?post=2361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}