added a nice error if c_overviewer is missing, simplified composite.py
now that c_overviewer is required, we don't need to have a PIL paste() fallback. The next step is to remove composite.py entirely!
This commit is contained in:
17
composite.py
17
composite.py
@@ -23,12 +23,7 @@ Overviewer. It defaults to the PIL paste function when the custom
|
|||||||
alpha-over extension cannot be found.
|
alpha-over extension cannot be found.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
extension_alpha_over = None
|
from c_overviewer import alpha_over as extension_alpha_over
|
||||||
try:
|
|
||||||
from c_overviewer import alpha_over as _extension_alpha_over
|
|
||||||
extension_alpha_over = _extension_alpha_over
|
|
||||||
except ImportError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def alpha_over(dest, src, pos_or_rect=(0, 0), mask=None):
|
def alpha_over(dest, src, pos_or_rect=(0, 0), mask=None):
|
||||||
"""Composite src over dest, using mask as the alpha channel (if
|
"""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
|
mask = src
|
||||||
|
|
||||||
global extension_alpha_over
|
global extension_alpha_over
|
||||||
if extension_alpha_over is not None:
|
return extension_alpha_over(dest, src, pos_or_rect, mask)
|
||||||
# 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)
|
|
||||||
|
|
||||||
|
|||||||
12
gmap.py
12
gmap.py
@@ -27,11 +27,19 @@ import re
|
|||||||
import multiprocessing
|
import multiprocessing
|
||||||
import time
|
import time
|
||||||
import logging
|
import logging
|
||||||
import optimizeimages
|
|
||||||
import composite
|
|
||||||
|
|
||||||
logging.basicConfig(level=logging.INFO,format="%(asctime)s [%(levelname)s] %(message)s")
|
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 world
|
||||||
import quadtree
|
import quadtree
|
||||||
|
|
||||||
|
|||||||
@@ -223,6 +223,7 @@ alpha_over_wrap(PyObject *self, PyObject *args)
|
|||||||
/* destination position read */
|
/* destination position read */
|
||||||
if (!PyArg_ParseTuple(pos, "iiii", &dx, &dy, &xsize, &ysize)) {
|
if (!PyArg_ParseTuple(pos, "iiii", &dx, &dy, &xsize, &ysize)) {
|
||||||
/* try again, but this time try to read a point */
|
/* try again, but this time try to read a point */
|
||||||
|
PyErr_Clear();
|
||||||
xsize = 0;
|
xsize = 0;
|
||||||
ysize = 0;
|
ysize = 0;
|
||||||
if (!PyArg_ParseTuple(pos, "ii", &dx, &dy)) {
|
if (!PyArg_ParseTuple(pos, "ii", &dx, &dy)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user