diff --git a/adacher.py b/adacher.py
index ffc34bd7865daadd674f36fe32ee5f54c0e70feb..d3574f570cde64333607997b128af5a535f1ac74 100755
--- a/adacher.py
+++ b/adacher.py
@@ -3,6 +3,7 @@
 import argparse
 import math
 import tempfile
+import sys
 
 from PIL import Image
 from PIL import ImageFont
@@ -14,7 +15,7 @@ parser = argparse.ArgumentParser(
         description='Generate beautiful adachers')
 
 parser.add_argument('text')
-parser.add_argument('--imgBase', type=str, default="adachi_white.png")
+parser.add_argument('--imgBase', type=str, default="adachi")
 parser.add_argument('--nobox', action='store_true', default=False)
 parser.add_argument('--nowrap', action='store_true', default=False)
 parser.add_argument('--boxtop', type=float, default=0.65)
@@ -24,12 +25,23 @@ parser.add_argument('--textHoriMargin', type=int, default=10)
 parser.add_argument('--fontPath', type=str, default="comic.ttf")
 parser.add_argument('--textCol', type=str, default="ff0000")
 parser.add_argument('--boxCol', type=str, default="ffffff")
+parser.add_argument('--bgCol', type=str, default="ffffff")
 parser.add_argument('--align', type=str, default="center")
 args = parser.parse_args()
 
-args.imgBase = "adachi_white.png"
 args.fontPath = "comic.ttf"
 
+imgBases = {
+    "adachi": "adachi_white.png",
+    "adacher": "adacher.png"
+}
+
+if (args.imgBase in imgBases):
+    args.imgBase = imgBases[args.imgBase]
+else:
+    print("Wrong base image")
+    sys.exit(1)
+
 withBox = not args.nobox
 withWrap = not args.nowrap
 
@@ -37,6 +49,7 @@ def hexToCol(st):
     return tuple(int(st[i:i+2], 16) for i in (0, 2, 4))
 textCol = hexToCol(args.textCol)
 boxCol = hexToCol(args.boxCol)
+bgCol = hexToCol(args.bgCol)
 
 
 ##### Function to calculate font size and line breaks
@@ -89,21 +102,19 @@ def growFontToBox(draw, fontPath, text, width, height, wrap=False):
 
     return newText, newSize
 
-
-img = Image.open(args.imgBase)
-width,height = img.size
-
+imgBase = Image.open(args.imgBase)
 
 ##### Add white box
-boxTop = args.boxtop * img.size[1]
-boxHeight = args.boxheight * img.size[1]
+boxTop = args.boxtop * imgBase.size[1]
+boxHeight = args.boxheight * imgBase.size[1]
 boxBot = math.floor(boxTop + boxHeight)
-if args.boxtop + args.boxheight != 1:
-    tmp = Image.new("RGB", (width, boxBot))
-    tmp.paste(img, (0,0))
-    img = tmp
+
+img = Image.new("RGBA", (imgBase.size[0], boxBot))
+width,height = img.size
 
 draw = ImageDraw.Draw(img)
+draw.rectangle([0, 0, width, boxBot], bgCol)
+img.alpha_composite(imgBase)
 draw.rectangle([0, boxTop, width, boxBot], boxCol)
 
 newText, fontsize = growFontToBox(draw, args.fontPath, args.text, img.size[0] - 2*args.textHoriMargin, boxHeight - 2*args.textVertMargin, withWrap)