diff --git a/.gitignore b/.gitignore index fffc64d..8af90e1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ __pycache__ *.swp +*.err +*.png \ No newline at end of file diff --git a/googlesteal/__init__.py b/googlesteal/__init__.py index f77a02f..29b9e24 100644 --- a/googlesteal/__init__.py +++ b/googlesteal/__init__.py @@ -23,68 +23,11 @@ def google_normalize(url): parts = url.split("=") - return f"{parts[0]}=x%i-y%i-z%i" + return f"{parts[0]}=w16000" except: return False -def google_getmaxzoom(schema): - ''' - Takes a normalized string from google_normalize() and returns the maximum - zoom level available. - - :param schema: normalized URL format output by google_normalize() - :return: int value of largest available zoom level - ''' - - l = 0 - - while True: - try: - url = schema % (0, 0, l+1) - with urllib.request.urlopen(url) as res: - assert res.getcode() == 200 - l += 1 - except: - return l - -def google_export(schema): - ''' - Takes a normalized string from google_normalize() and returns a list of - lists of lists containing all images fit for passing into stitch(). - - :param schema: normalized URL format output by google_normalize() - :return: list of lists of lists of PIL.Image() objects for multistitch() - ''' - - maxzoom = google_getmaxzoom(schema) - output = [] - - y = 0 - - while True: - r_array = [] - x = 0 - - while True: - try: - res = urllib.request.urlopen(schema % (x, y, maxzoom)) - assert res.getcode() == 200 - fo = io.BytesIO(res.read()) - img = PIL.Image.open(fo) - r_array.append(img) - x += 1 - except Exception: - break - - if not r_array: - break - - output.append(r_array) - y += 1 - - return output - def google_to_equirectangular(url, rotation=[0,0,0], resolution=[3840,1920]): ''' Takes the URL of any image in a google panorama and returns a finished @@ -98,8 +41,8 @@ def google_to_equirectangular(url, rotation=[0,0,0], resolution=[3840,1920]): raise ValueError(f"{url} does not seem to be a valid Google URL." % url) schema = google_normalize(url) - images = google_export(schema) - - return stitch(images) + res = urllib.request.urlopen(schema) + assert res.getcode() == 200 + return PIL.Image.open(io.BytesIO(res.read())) process_url = google_to_equirectangular