Show / Hide Table of Contents

Class AdaptiveImagesController

Used primarily for serving images and handle requests from the CMS UI, for example when searching for images through an image provider.

Inheritance
object
ControllerBase
Controller
AdaptiveImagesController
Implements
IActionFilter
IAsyncActionFilter
IFilterMetadata
IDisposable
Inherited Members
Controller.View()
Controller.View(string)
Controller.View(object)
Controller.View(string, object)
Controller.PartialView()
Controller.PartialView(string)
Controller.PartialView(object)
Controller.PartialView(string, object)
Controller.ViewComponent(string)
Controller.ViewComponent(Type)
Controller.ViewComponent(string, object)
Controller.ViewComponent(Type, object)
Controller.Json(object)
Controller.Json(object, object)
Controller.OnActionExecuting(ActionExecutingContext)
Controller.OnActionExecuted(ActionExecutedContext)
Controller.OnActionExecutionAsync(ActionExecutingContext, ActionExecutionDelegate)
Controller.Dispose()
Controller.Dispose(bool)
Controller.ViewData
Controller.TempData
Controller.ViewBag
ControllerBase.StatusCode(int)
ControllerBase.StatusCode(int, object)
ControllerBase.Content(string)
ControllerBase.Content(string, string)
ControllerBase.Content(string, string, Encoding)
ControllerBase.Content(string, MediaTypeHeaderValue)
ControllerBase.NoContent()
ControllerBase.Ok()
ControllerBase.Ok(object)
ControllerBase.Redirect(string)
ControllerBase.RedirectPermanent(string)
ControllerBase.RedirectPreserveMethod(string)
ControllerBase.RedirectPermanentPreserveMethod(string)
ControllerBase.LocalRedirect(string)
ControllerBase.LocalRedirectPermanent(string)
ControllerBase.LocalRedirectPreserveMethod(string)
ControllerBase.LocalRedirectPermanentPreserveMethod(string)
ControllerBase.RedirectToAction()
ControllerBase.RedirectToAction(string)
ControllerBase.RedirectToAction(string, object)
ControllerBase.RedirectToAction(string, string)
ControllerBase.RedirectToAction(string, string, object)
ControllerBase.RedirectToAction(string, string, string)
ControllerBase.RedirectToAction(string, string, object, string)
ControllerBase.RedirectToActionPreserveMethod(string, string, object, string)
ControllerBase.RedirectToActionPermanent(string)
ControllerBase.RedirectToActionPermanent(string, object)
ControllerBase.RedirectToActionPermanent(string, string)
ControllerBase.RedirectToActionPermanent(string, string, string)
ControllerBase.RedirectToActionPermanent(string, string, object)
ControllerBase.RedirectToActionPermanent(string, string, object, string)
ControllerBase.RedirectToActionPermanentPreserveMethod(string, string, object, string)
ControllerBase.RedirectToRoute(string)
ControllerBase.RedirectToRoute(object)
ControllerBase.RedirectToRoute(string, object)
ControllerBase.RedirectToRoute(string, string)
ControllerBase.RedirectToRoute(string, object, string)
ControllerBase.RedirectToRoutePreserveMethod(string, object, string)
ControllerBase.RedirectToRoutePermanent(string)
ControllerBase.RedirectToRoutePermanent(object)
ControllerBase.RedirectToRoutePermanent(string, object)
ControllerBase.RedirectToRoutePermanent(string, string)
ControllerBase.RedirectToRoutePermanent(string, object, string)
ControllerBase.RedirectToRoutePermanentPreserveMethod(string, object, string)
ControllerBase.RedirectToPage(string)
ControllerBase.RedirectToPage(string, object)
ControllerBase.RedirectToPage(string, string)
ControllerBase.RedirectToPage(string, string, object)
ControllerBase.RedirectToPage(string, string, string)
ControllerBase.RedirectToPage(string, string, object, string)
ControllerBase.RedirectToPagePermanent(string)
ControllerBase.RedirectToPagePermanent(string, object)
ControllerBase.RedirectToPagePermanent(string, string)
ControllerBase.RedirectToPagePermanent(string, string, string)
ControllerBase.RedirectToPagePermanent(string, string, object, string)
ControllerBase.RedirectToPagePreserveMethod(string, string, object, string)
ControllerBase.RedirectToPagePermanentPreserveMethod(string, string, object, string)
ControllerBase.File(byte[], string)
ControllerBase.File(byte[], string, bool)
ControllerBase.File(byte[], string, string)
ControllerBase.File(byte[], string, string, bool)
ControllerBase.File(byte[], string, DateTimeOffset?, EntityTagHeaderValue)
ControllerBase.File(byte[], string, DateTimeOffset?, EntityTagHeaderValue, bool)
ControllerBase.File(byte[], string, string, DateTimeOffset?, EntityTagHeaderValue)
ControllerBase.File(byte[], string, string, DateTimeOffset?, EntityTagHeaderValue, bool)
ControllerBase.File(Stream, string)
ControllerBase.File(Stream, string, bool)
ControllerBase.File(Stream, string, string)
ControllerBase.File(Stream, string, string, bool)
ControllerBase.File(Stream, string, DateTimeOffset?, EntityTagHeaderValue)
ControllerBase.File(Stream, string, DateTimeOffset?, EntityTagHeaderValue, bool)
ControllerBase.File(Stream, string, string, DateTimeOffset?, EntityTagHeaderValue)
ControllerBase.File(Stream, string, string, DateTimeOffset?, EntityTagHeaderValue, bool)
ControllerBase.File(string, string)
ControllerBase.File(string, string, bool)
ControllerBase.File(string, string, string)
ControllerBase.File(string, string, string, bool)
ControllerBase.File(string, string, DateTimeOffset?, EntityTagHeaderValue)
ControllerBase.File(string, string, DateTimeOffset?, EntityTagHeaderValue, bool)
ControllerBase.File(string, string, string, DateTimeOffset?, EntityTagHeaderValue)
ControllerBase.File(string, string, string, DateTimeOffset?, EntityTagHeaderValue, bool)
ControllerBase.PhysicalFile(string, string)
ControllerBase.PhysicalFile(string, string, bool)
ControllerBase.PhysicalFile(string, string, string)
ControllerBase.PhysicalFile(string, string, string, bool)
ControllerBase.PhysicalFile(string, string, DateTimeOffset?, EntityTagHeaderValue)
ControllerBase.PhysicalFile(string, string, DateTimeOffset?, EntityTagHeaderValue, bool)
ControllerBase.PhysicalFile(string, string, string, DateTimeOffset?, EntityTagHeaderValue)
ControllerBase.PhysicalFile(string, string, string, DateTimeOffset?, EntityTagHeaderValue, bool)
ControllerBase.Unauthorized()
ControllerBase.Unauthorized(object)
ControllerBase.NotFound()
ControllerBase.NotFound(object)
ControllerBase.BadRequest()
ControllerBase.BadRequest(object)
ControllerBase.BadRequest(ModelStateDictionary)
ControllerBase.UnprocessableEntity()
ControllerBase.UnprocessableEntity(object)
ControllerBase.UnprocessableEntity(ModelStateDictionary)
ControllerBase.Conflict()
ControllerBase.Conflict(object)
ControllerBase.Conflict(ModelStateDictionary)
ControllerBase.Problem(string, string, int?, string, string)
ControllerBase.ValidationProblem(ValidationProblemDetails)
ControllerBase.ValidationProblem(ModelStateDictionary)
ControllerBase.ValidationProblem()
ControllerBase.ValidationProblem(string, string, int?, string, string, ModelStateDictionary)
ControllerBase.Created(string, object)
ControllerBase.Created(Uri, object)
ControllerBase.CreatedAtAction(string, object)
ControllerBase.CreatedAtAction(string, object, object)
ControllerBase.CreatedAtAction(string, string, object, object)
ControllerBase.CreatedAtRoute(string, object)
ControllerBase.CreatedAtRoute(object, object)
ControllerBase.CreatedAtRoute(string, object, object)
ControllerBase.Accepted()
ControllerBase.Accepted(object)
ControllerBase.Accepted(Uri)
ControllerBase.Accepted(string)
ControllerBase.Accepted(string, object)
ControllerBase.Accepted(Uri, object)
ControllerBase.AcceptedAtAction(string)
ControllerBase.AcceptedAtAction(string, string)
ControllerBase.AcceptedAtAction(string, object)
ControllerBase.AcceptedAtAction(string, string, object)
ControllerBase.AcceptedAtAction(string, object, object)
ControllerBase.AcceptedAtAction(string, string, object, object)
ControllerBase.AcceptedAtRoute(object)
ControllerBase.AcceptedAtRoute(string)
ControllerBase.AcceptedAtRoute(string, object)
ControllerBase.AcceptedAtRoute(object, object)
ControllerBase.AcceptedAtRoute(string, object, object)
ControllerBase.Challenge()
ControllerBase.Challenge(params string[])
ControllerBase.Challenge(AuthenticationProperties)
ControllerBase.Challenge(AuthenticationProperties, params string[])
ControllerBase.Forbid()
ControllerBase.Forbid(params string[])
ControllerBase.Forbid(AuthenticationProperties)
ControllerBase.Forbid(AuthenticationProperties, params string[])
ControllerBase.SignIn(ClaimsPrincipal)
ControllerBase.SignIn(ClaimsPrincipal, string)
ControllerBase.SignIn(ClaimsPrincipal, AuthenticationProperties)
ControllerBase.SignIn(ClaimsPrincipal, AuthenticationProperties, string)
ControllerBase.SignOut()
ControllerBase.SignOut(AuthenticationProperties)
ControllerBase.SignOut(params string[])
ControllerBase.SignOut(AuthenticationProperties, params string[])
ControllerBase.TryUpdateModelAsync<TModel>(TModel)
ControllerBase.TryUpdateModelAsync<TModel>(TModel, string)
ControllerBase.TryUpdateModelAsync<TModel>(TModel, string, IValueProvider)
ControllerBase.TryUpdateModelAsync<TModel>(TModel, string, params Expression<Func<TModel, object>>[])
ControllerBase.TryUpdateModelAsync<TModel>(TModel, string, Func<ModelMetadata, bool>)
ControllerBase.TryUpdateModelAsync<TModel>(TModel, string, IValueProvider, params Expression<Func<TModel, object>>[])
ControllerBase.TryUpdateModelAsync<TModel>(TModel, string, IValueProvider, Func<ModelMetadata, bool>)
ControllerBase.TryUpdateModelAsync(object, Type, string)
ControllerBase.TryUpdateModelAsync(object, Type, string, IValueProvider, Func<ModelMetadata, bool>)
ControllerBase.TryValidateModel(object)
ControllerBase.TryValidateModel(object, string)
ControllerBase.HttpContext
ControllerBase.Request
ControllerBase.Response
ControllerBase.RouteData
ControllerBase.ModelState
ControllerBase.ControllerContext
ControllerBase.MetadataProvider
ControllerBase.ModelBinderFactory
ControllerBase.Url
ControllerBase.ObjectValidator
ControllerBase.ProblemDetailsFactory
ControllerBase.User
object.Equals(object)
object.Equals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
object.ReferenceEquals(object, object)
object.ToString()
Namespace: AdaptiveImages.Controllers
Assembly: AdaptiveImages.dll
Syntax
[Authorize(Roles = "CmsAdmins, AdaptiveImagesAdmins, CmsEditors, AdaptiveImagesEditors")]
[Route("AdaptiveImages")]
public class AdaptiveImagesController : Controller, IActionFilter, IAsyncActionFilter, IFilterMetadata, IDisposable

Constructors

AdaptiveImagesController(IAddonSettings, IContextModeResolver, IHttpContextAccessor, IImageCache)

Creates a new instance with required dependencies.

Declaration
public AdaptiveImagesController(IAddonSettings addonSettings, IContextModeResolver contextModeResolver, IHttpContextAccessor httpContextAccessor, IImageCache imageCache)
Parameters
Type Name Description
IAddonSettings addonSettings

For example used to determine default breakpoints.

IContextModeResolver contextModeResolver

Used to determine whether request is in context of edit mode.

IHttpContextAccessor httpContextAccessor

Used to get details about the current HTTP context.

IImageCache imageCache

The service used for caching images.

Methods

GetImageAsync(string, string, string, int?, int?, int?, int?, int?, int?, bool, int?, CancellationToken)

Serves an image, optionally cropped and/or scaled.

Declaration
[AllowAnonymous]
[Route("{providerName}/{*imageIdPath}")]
[HttpGet]
[HttpHead]
public Task<ActionResult> GetImageAsync(string providerName, string imageIdPath, string stamp, int? width = null, int? height = null, int? cropleft = null, int? croptop = null, int? cropright = null, int? cropbottom = null, bool thumbnail = false, int? quality = null, CancellationToken cancellationToken = default)
Parameters
Type Name Description
string providerName

The image provider the image comes from.

string imageIdPath

The image id, optionally with second URL segment for a filename.

string stamp

Hash used to validate parameters, essentially to validate that image URL was generated on the server.

int? width

Desired width in pixels of the final image.

int? height

Desired height in pixels of the final image.

int? cropleft

Number of pixels to crop from the left of the image.

int? croptop

Number of pixels to crop from the top of the image.

int? cropright

The right-most crop X-coordinate. A value of 600 means the leftmost 600 pixels of the original image will remain, assuming a 'cropleft' value of 0.

int? cropbottom

The bottom crop Y-coordinate. A value of 600 means the top 600 pixels of the original image will remain, assuming a 'croptop' value of 0.

bool thumbnail

Whether the resulting image is intended for thumbnail use. Depending on the image provider this may affect image quality.

int? quality

A value of 0-100 to explicitly specify quality, i.e. level of compression.

CancellationToken cancellationToken
Returns
Type Description
Task<ActionResult>

Binary data for the image.

Remarks

This endpoint does not require authentication.

Exceptions
Type Condition
AdaptiveImagesException

Search(SearchParameters)

Searches for images through an image provider.

Declaration
[ResponseCache(Duration = 300)]
[Route("search")]
[HttpPost]
public Task<ActionResult> Search(AdaptiveImagesController.SearchParameters parameters)
Parameters
Type Name Description
AdaptiveImagesController.SearchParameters parameters

What to search for and through which image provider.

Returns
Type Description
Task<ActionResult>

Search result as JSON.

Exceptions
Type Condition
NotSupportedException

Upload(IFormFile, ImageProviderAsset?, string[]?)

Used to upload an image to an image provider.

Declaration
[HttpPost]
[Route("upload")]
public Task<ActionResult> Upload(IFormFile imagefile, ImageProviderAsset? metadata = null, string[]? providerOptions = null)
Parameters
Type Name Description
IFormFile imagefile
ImageProviderAsset metadata
string[] providerOptions
Returns
Type Description
Task<ActionResult>

Image metadata as JSON.

Remarks

Specified image provider must support uploads.

Exceptions
Type Condition
ArgumentException
NotSupportedException
Exception

Implements

IActionFilter
IAsyncActionFilter
IFilterMetadata
IDisposable

Extension Methods

ImageExtensions.GetCultureSpecificImageAttribute<TContent, TProperty>(TContent, Expression<Func<TContent, TProperty>>)
ImageExtensions.GetImageConstraints<TParent>(TParent, string)
ImageExtensions.GetImageConstraints<TParent, TProperty>(TParent, Expression<Func<TParent, TProperty>>)
ImageExtensions.GetImageRenderSettings<TParent, TProperty>(TParent, Expression<Func<TParent, TProperty>>)
ImageExtensions.GetImageRenderSettings<TParent, TProperty>(TParent, Expression<Func<TParent, TProperty>>, FormFactor)
ImageExtensions.GetProportionsConstraint<TParent>(TParent, string)
ImageExtensions.GetProportionsConstraint<TParent>(TParent, string, FormFactor)
ImageExtensions.GetProportionsConstraint<TParent, TProperty>(TParent, Expression<Func<TParent, TProperty>>)
ImageExtensions.GetRequiredImageAttribute<TContent, TProperty>(TContent, Expression<Func<TContent, TProperty>>)
ImageExtensions.GetSizeConstraint<TContent, TProperty>(TContent, Expression<Func<TContent, TProperty>>)
☀
☾
In this article
Back to top
Documentation applies to: Adaptive Images 2.x
☀
☾