diff --git a/composite.py b/composite.py index 6cbe44e..be5387f 100644 --- a/composite.py +++ b/composite.py @@ -23,12 +23,7 @@ Overviewer. It defaults to the PIL paste function when the custom alpha-over extension cannot be found. """ -extension_alpha_over = None -try: - from c_overviewer import alpha_over as _extension_alpha_over - extension_alpha_over = _extension_alpha_over -except ImportError: - pass +from c_overviewer import alpha_over as extension_alpha_over def alpha_over(dest, src, pos_or_rect=(0, 0), mask=None): """Composite src over dest, using mask as the alpha channel (if @@ -40,12 +35,4 @@ def alpha_over(dest, src, pos_or_rect=(0, 0), mask=None): mask = src global extension_alpha_over - if extension_alpha_over is not None: - # extension ALWAYS expects rects, so convert if needed - if len(pos_or_rect) == 2: - pos_or_rect = (pos_or_rect[0], pos_or_rect[1], src.size[0], src.size[1]) - extension_alpha_over(dest, src, pos_or_rect, mask) - else: - # fallback - dest.paste(src, pos_or_rect, mask) - + return extension_alpha_over(dest, src, pos_or_rect, mask) diff --git a/gmap.py b/gmap.py index 57edb0c..13a24c9 100755 --- a/gmap.py +++ b/gmap.py @@ -27,11 +27,19 @@ import re import multiprocessing import time import logging -import optimizeimages -import composite logging.basicConfig(level=logging.INFO,format="%(asctime)s [%(levelname)s] %(message)s") +# make sure the c_overviewer extension is available +try: + import c_overviewer +except ImportError: + print "You need to compile the c_overviewer module to run Minecraft Overviewer." + print "Run `python setup.py build`, or see the README for details." + sys.exit(1) + +import optimizeimages +import composite import world import quadtree diff --git a/src/composite.c b/src/composite.c index 4b58403..1cfdf7c 100644 --- a/src/composite.c +++ b/src/composite.c @@ -223,6 +223,7 @@ alpha_over_wrap(PyObject *self, PyObject *args) /* destination position read */ if (!PyArg_ParseTuple(pos, "iiii", &dx, &dy, &xsize, &ysize)) { /* try again, but this time try to read a point */ + PyErr_Clear(); xsize = 0; ysize = 0; if (!PyArg_ParseTuple(pos, "ii", &dx, &dy)) {