import geopandas as gpd import matplotlib.pyplot as plt from shapely.wkt import loads from PIL import Image # 调整尺寸 def resizeImage(filePath): # 打开原始图片 original_image = Image.open(filePath) # 调整图片尺寸到 256x256 resized_image = original_image.resize((256, 256)) filePath = filePath.replace('tb', 'tb_256') # 保存调整后的图片 resized_image.save(filePath) # resizeImage('img/tb/6401812024070108270001change.png') # # 矢量保存为 PNG 图片 # def savePng(fileName, ewkt): # # 新的 WKT 数据字符串 # # 创建一个 GeoDataFrame # polygon = loads(ewkt.split(';')[1]) # 解析 WKT # gdf = gpd.GeoDataFrame(geometry=[polygon]) # # 绘制 # fig, ax = plt.subplots(figsize=(10, 10)) # # 绘制多边形,外部填充为黑色,内部(洞)为白色 # gdf.plot(ax=ax, edgecolor='black', facecolor='black') # # 设定中间洞为白色 # ax.fill(*polygon.exterior.xy, color='black') # 填充外部为黑色 # for interior in polygon.interiors: # ax.fill(*interior.xy, color='white') # 填充内部(洞)为白色 # # 设置坐标轴范围 # ax.set_xlim(gdf.total_bounds[[0, 2]]) # ax.set_ylim(gdf.total_bounds[[1, 3]]) # # 去掉坐标轴 # ax.axis('off') # # 保存为 PNG 图片 # filePath = 'img/tb/'+fileName+'.png' # plt.savefig(filePath, dpi=300, # bbox_inches='tight', pad_inches=0) # plt.close() # resizeImage(filePath) def savePng(fileName, ewkt): # 解析 WKT 数据字符串 geometry = loads(ewkt.split(';')[1]) # 解析 WKT gdf = gpd.GeoDataFrame(geometry=[geometry]) # 创建绘图 fig, ax = plt.subplots(figsize=(10, 10)) # 如果是 Polygon,处理其外部和内部 if geometry.geom_type == 'Polygon': ax.fill(*geometry.exterior.xy, color='black') # 填充外部为黑色 for interior in geometry.interiors: ax.fill(*interior.xy, color='white') # 填充内部(洞)为白色 # 如果是 MultiPolygon,遍历每个 Polygon elif geometry.geom_type == 'MultiPolygon': for poly in geometry.geoms: # 使用 geometry.geoms 进行迭代 ax.fill(*poly.exterior.xy, color='black') # 填充外部为黑色 for interior in poly.interiors: ax.fill(*interior.xy, color='white') # 填充内部(洞)为白色 # 设置坐标轴范围 ax.set_xlim(gdf.total_bounds[[0, 2]]) ax.set_ylim(gdf.total_bounds[[1, 3]]) # 去掉坐标轴 ax.axis('off') # 保存为 PNG 图片 filePath = 'img/tb/' + fileName + '.png' plt.savefig(filePath, dpi=300, bbox_inches='tight', pad_inches=0) plt.close() # 调用 resizeImage 函数来调整图片大小 resizeImage(filePath) # ewkt = "SRID=3857;POLYGON((13522050.0 3666550.0, 13522050.0 3657500.0, 13512100.0 3657500.0, 13512100.0 3666550.0, 13522050.0 3666550.0), (13516300.0 3662300.0, 13517350.0 3662300.0, 13517350.0 3663150.0, 13516300.0 3663150.0, 13516300.0 3662300.0))" # savePng('111',ewkt)