如何用numpy调整图片尺寸适配表格单元格,解决imread权限报错问题
图片自适应棋盘单元格尺寸解决方法
你当前写死了OffsetImage的zoom参数为固定值0.01,不会随棋盘边长n的变化动态调整,自然没法适配不同大小的棋盘。
你可以根据棋盘的总显示尺寸和单元格数量动态计算缩放比例,修改对应代码段如下:
# 先获取imshow返回的对象,方便获取显示范围 im = plt.imshow(tablero, cmap='gray') # 动态计算zoom值:n越大,每个单元格占比越小,zoom也要对应缩小 # 基础缩放值你可以根据自己的图片原始大小微调,这里按n=8时zoom=0.01反推基础值 base_zoom = 0.08 zoom = base_zoom / n # 读入图片后替换原来的OffsetImage行 imagebox = OffsetImage(reina, zoom=zoom)
另外注意ndarray类型没有thumbnail方法,你用PIL读图片再调用thumbnail才有效,用matplotlib的mpimg读出来的numpy数组调用这个方法会报错,要提前处理好图片的原始尺寸。
Errno 13 Permission报错解决方法
你当前传入mpimg.imread的路径是文件夹路径C:\\Users\\hirof\\OneDrive\\Documentos\\Python_logica_2\\Proyecto,不是具体的PNG文件路径,系统会尝试读取文件夹本身,自然会报权限错误,和文件权限无关,不需要修改chmod配置。
你把路径补全到具体的png文件即可,比如:
reina = mpimg.imread("C:\\Users\\hirof\\OneDrive\\Documentos\\Python_logica_2\\Proyecto\\reina.png", format = "png")
替换成你实际的图片文件名即可正常读取。
内容的提问来源于stack exchange,提问作者hirof
相关产品推荐
相关产品推荐

