【第一张RIA全域高清度地图】



  • 月圆之夜,我总算是把这个东西折腾出来了。
    共计拼接图片16129张(127*127),每张图片大小为128*128像素,最终文件像素高达16256*16256,大小为29.4MB。
    原来的地图大小:
    d3a0cfeb-62b8-46e0-a80a-009c375ed8d4-image.png
    新地图大小:
    4d1672cd-08c9-4610-bbf4-d24198279a6f-image.png
    按照72dpi计算,全图可以换算为约5m*5m:
    ec5e04f3-b648-4a20-8454-8465683714c1-image.png
    全屏状态下甚至只能显示3%:
    1058bc2f-217e-424d-aeb9-17c23b3c8580-image.png

    细节展示:

    • 主城:
      a1191369-eb49-4e0d-9f41-752ec77e9605-image.png
    • 文岛:
      db887447-4e05-4c62-b65f-c307e4f5551b-image.png
    • 猫神社:
      a40ee6e8-620a-4255-85c5-82a1246e506f-image.png

    以上。
    (代码部分会在后续回帖中展示。)



  • 爬虫部分:
    图片放缩大小不同,后缀会有所改变,建议用Chrome F12开发者工具确定规律之后再行爬取:
    (使用库:re & urllib.request)

    import re
    import urllib.request
    from urllib.request import urlretrieve
    n=0
    for y in range(252,-253,-1):
        if y%4==0:
            for x in range(-252,253):
                if x%4==0:
                    n=n+1
                    '''
                    if 16130<=n:
                    分段爬取部分,可以进行多线程/多电脑运行。
                    '''
                    url=str("https://ria.sakura-realm.studio:3215/tiles/world/flat/-1_1/zz_")+str(x)+"_"+str(y)+".jpg"
                    urlretrieve(url,str("/Users/zhuozhiyongde/Desktop/Photo/"+str(n)+".jpg"))
                    '''
                    if n%400==0:
                        print(url)
                        print("Now",n)
                    进度检测部分
                    '''
    


  • @Arthals 单台设备单线程爬取速度大约在2.67张/s(实测400张/150s)。


  • 泼墨挥毫

    还是一如既往的优雅、创新与精密。
    献上纯澈的赞美!
    无情的点赞机器,使命必达!



  • 拼接部分:
    (使用库:PIL & OS)

    import PIL.Image as Image
    import os
    IMAGES_PATH = '/Users/zhuozhiyongde/Desktop/Photo/' 
    IMAGES_FORMAT = ['.jpg']  
    image_SIZE = 128 
    IMAGE_ROW = 127
    IMAGE_COLUMN = 127
    IMAGE_SAVE_PATH = '/Users/zhuozhiyongde/Desktop/final.jpg'
    image_names=[]
    for i in range(16129):
        image_names.append(str(str(i+1)+".jpg"))
    def image_compose():
        to_image = Image.new('RGB', (IMAGE_COLUMN *image_SIZE, IMAGE_ROW * image_SIZE))
        for y in range(1, IMAGE_ROW + 1):
            for x in range(1, IMAGE_COLUMN + 1):
                from_image = Image.open(IMAGES_PATH + image_names[IMAGE_COLUMN * (y - 1) + x - 1]).resize(
                    (image_SIZE, image_SIZE),Image.ANTIALIAS)
                to_image.paste(from_image, ((x - 1) * image_SIZE, (y - 1) * image_SIZE))
        return to_image.save(IMAGE_SAVE_PATH)
    image_compose()
    
    


  • sdl,tql,wsl


  • Zth国家地理 轨交社 泼墨挥毫

    辛苦了……!


 

推荐话题

最近话题

琼ICP备18003777号-1