@@ -94,12 +94,11 @@ app.include_router(tiler.router, prefix="/cog")
9494``` python
9595from dataclasses import dataclass, field
9696from typing import Tuple, List, Optional
97-
9897import rasterio
9998from starlette.responses import Response
10099from fastapi import Depends, FastAPI, Query
101- from titiler.core.factory import BaseTilerFactory , FactoryExtension, TilerFactory
102- from titiler.core.dependencies import RescalingParams
100+ from titiler.core.factory import TilerFactory , FactoryExtension
101+ from titiler.core.dependencies import ImageRenderingParams
103102from titiler.core.factory import TilerFactory
104103from titiler.core.resources.enums import ImageType
105104
@@ -111,8 +110,8 @@ class thumbnailExtension(FactoryExtension):
111110 # Set some options
112111 max_size: int = field(default = 128 )
113112
114- # Register method is mandatory and must take a BaseTilerFactory object as input
115- def register (self , factory : BaseTilerFactory ):
113+ # Register method is mandatory and must take a TilerFactory object as input
114+ def register (self , factory : TilerFactory ):
116115 """ Register endpoint to the tiler factory."""
117116
118117 # register an endpoint to the factory's router
@@ -132,18 +131,12 @@ class thumbnailExtension(FactoryExtension):
132131 def thumbnail (
133132 # we can reuse the factory dependency
134133 src_path : str = Depends(factory.path_dependency),
134+ reader_params = Depends(factory.reader_dependency),
135135 layer_params = Depends(factory.layer_dependency),
136136 dataset_params = Depends(factory.dataset_dependency),
137137 post_process = Depends(factory.process_dependency),
138- rescale : Optional[List[Tuple[float , ... ]]] = Depends(RescalingParams),
139- color_formula : Optional[str ] = Query(
140- None ,
141- title = " Color Formula" ,
142- description = " rio-color formula (info: https://github.com/mapbox/rio-color)" ,
143- ),
144138 colormap = Depends(factory.colormap_dependency),
145139 render_params = Depends(factory.render_dependency),
146- reader_params = Depends(factory.reader_dependency),
147140 env = Depends(factory.environment_dependency),
148141 ):
149142 with rasterio.Env(** env):
@@ -157,22 +150,18 @@ class thumbnailExtension(FactoryExtension):
157150 if post_process:
158151 image = post_process(image)
159152
160- if rescale:
161- image.rescale(rescale)
162-
163- if color_formula:
164- image.apply_color_formula(color_formula)
165-
166153 format = ImageType.jpeg if image.mask.all() else ImageType.png
167154
168- content = image.render(
169- img_format = format .driver,
155+ if post_process:
156+ image = post_process(image)
157+
158+ content, media_type = factory.render_func(
159+ image,
170160 colormap = colormap,
171- ** format .profile,
172161 ** render_params.as_dict(),
173162 )
174163
175- return Response(content, media_type = format .mediatype )
164+ return Response(content, media_type = media_type )
176165
177166# Use it
178167app = FastAPI()
0 commit comments