import io
from tornado.web import Application, RequestHandler
from tornado.ioloop import IOLoop
from openslide import OpenSlide
from openslide.deepzoom import DeepZoomGenerator
from PIL import Image, ImageOps
class SlideHandler(RequestHandler):
def initialize(self, slide):
tile_size = 256 # 每个瓦片的大小
overlap = 0 # 瓦片之间的重叠像素
limit_bounds = False # 是否限制瓦片在图像边界内
self.dz = DeepZoomGenerator(slide, tile_size=tile_size, overlap=overlap, limit_bounds=limit_bounds)
def get(self, z, x, y):
z = int(z)
x = int(x)
y = int(y)
tile_size = 256
try:
# 获取指定层级的瓦片
tile = self.dz.get_tile(z, (x, y))
# 获取原始图像的宽度和高度
original_width, original_height = tile.size
# 如果图像已经是256x256,不需要填充
if original_width == tile_size and original_height == tile_size:
padded_tile = tile
else:
# 创建一个新的256x256的黑色背景图像
padded_tile = Image.new("RGB", (tile_size, tile_size), color=(0, 0, 0))
# 将原图像粘贴到新的黑色背景图像上
padded_tile.paste(tile, (0, 0))
# tile = tile.convert("RGB")
# tile = ImageOps.pad(tile, (tile_size, tile_size), color="black", centering=(0, 0))
# 将瓦片图像转换为JPEG格式并返回
output = io.BytesIO()
tile = padded_tile
tile.save(output, format="JPEG")
self.set_header("Content-Type", "image/jpeg")
self.write(output.getvalue())
except ValueError:
# 请求超出图像边界,返回404错误
self.send_error(404)
def make_app():
slide = OpenSlide('test.svs') # 加载SVS文件
return Application([
(r"/tiles/([0-9]+)/([0-9]+)/([0-9]+)", SlideHandler, dict(slide=slide)),
])
if __name__ == "__main__":
app = make_app()
app.listen(8888)
IOLoop.current().start()

魂归大海
- 粉丝: 129
最新资源
- 【单相半波PWM逆变器】在电压源变流器中使用IGBT 二极管模块的作用及使用Powergui FFT工具对PWM波形进行谐波分析研究附Simulink仿真.rar
- 【电力系统潮流】牛顿-拉夫逊(NRPF)算法求潮流,包括变压器分接、Q限制和快速解耦功率流方法【IEEE14节点】附Matlab代码.rar
- 【动态频谱感知与分配】模拟了一种适用于认知无线电应用的动态频谱分配系统附Matlab代码.rar
- 【电液伺服执行器与PI控制器】带有PI控制器的电液伺服执行器的模拟研究附Simulink仿真.rar
- 【电力系统状态估计与PMU(相量测量单元)】使用WLS和PMU来估计系统的电压幅值和角度还将这些值与使用Newton-Raphson方法获得的状态进行比较附Matlab代码.rar
- 【风力涡轮发电机】用于电磁暂态(EMT)研究的第四类(即全变流器)风力发电机系统的通用模型研究附Simulink仿真.rar
- 【负荷预测】基于VMD-SSA-LSTM光伏功率预测附Matlab代码.rar
- 【高创新!高热点!】基于蚂蚁算法、A算法、RRT算法的三维无人机路径规划比较与研究附Matlab代码.rar
- 【光伏功率预测】基于EMD-PCA-LSTM的光伏功率预测模型附Matlab代码.rar
- 【火电机组、风能、储能】高比例风电电力系统储能运行及配置分析附Matlab代码.rar
- 【故障识别】基于CNN-SVM卷积神经网络结合支持向量机的数据分类预测研究附Matlab代码.rar
- 【计算天线的Q和DQ的物理界限】计算了由非磁性材料组成、并且由各种几何形状所限定的线偏振天线的Q和DQ的物理界限附Matlab代码.rar
- 【机会约束】【N-1故障】使用随机方法进行最佳PMU位置确定附Matlab代码.rar
- 【继电保护】小电流接地系统故障仿真-中性点不接地与经消弧线圈接地仿真模型附Simulink仿真.rar
- 【卡尔曼滤波跟踪】跟踪目标的轨迹,并将滤波器输出与原始轨迹进行比较附Matlab代码.rar
- 【卡尔曼滤波跟踪】跟踪以恒定或变化速度移动的物体附Matlab代码.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


