diff --git a/Jellyfin.Api/Controllers/ImageController.cs b/Jellyfin.Api/Controllers/ImageController.cs
index 1322d77e96..f89601d17b 100644
--- a/Jellyfin.Api/Controllers/ImageController.cs
+++ b/Jellyfin.Api/Controllers/ImageController.cs
@@ -330,7 +330,6 @@ namespace Jellyfin.Api.Controllers
/// Optional. Apply a background color for transparent images.
/// Optional. Apply a foreground layer on top of the image.
/// Image index.
- /// Enable or disable image enhancers such as cover art.
/// Image stream returned.
/// Item not found.
///
@@ -341,6 +340,8 @@ namespace Jellyfin.Api.Controllers
[HttpHead("/Items/{itemId}/Images/{imageType}")]
[HttpGet("/Items/{itemId}/Images/{imageType}/{imageIndex?}")]
[HttpHead("/Items/{itemId}/Images/{imageType}/{imageIndex?}")]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status404NotFound)]
public async Task GetItemImage(
[FromRoute] Guid itemId,
[FromRoute] ImageType imageType,
@@ -349,17 +350,16 @@ namespace Jellyfin.Api.Controllers
[FromQuery] int? width,
[FromQuery] int? height,
[FromQuery] int? quality,
- [FromQuery] string tag,
+ [FromQuery] string? tag,
[FromQuery] bool? cropWhitespace,
- [FromQuery] string format,
- [FromQuery] bool addPlayedIndicator,
+ [FromQuery] string? format,
+ [FromQuery] bool? addPlayedIndicator,
[FromQuery] double? percentPlayed,
[FromQuery] int? unplayedCount,
[FromQuery] int? blur,
- [FromQuery] string backgroundColor,
- [FromQuery] string foregroundLayer,
- [FromRoute] int? imageIndex = null,
- [FromQuery] bool enableImageEnhancers = true)
+ [FromQuery] string? backgroundColor,
+ [FromQuery] string? foregroundLayer,
+ [FromRoute] int? imageIndex = null)
{
var item = _libraryManager.GetItemById(itemId);
if (item == null)
@@ -385,7 +385,6 @@ namespace Jellyfin.Api.Controllers
blur,
backgroundColor,
foregroundLayer,
- enableImageEnhancers,
item,
Request.Method.Equals(HttpMethods.Head, StringComparison.OrdinalIgnoreCase))
.ConfigureAwait(false);
@@ -396,7 +395,84 @@ namespace Jellyfin.Api.Controllers
///
/// Item id.
/// Image type.
+ /// The maximum image width to return.
+ /// The maximum image height to return.
+ /// The fixed image width to return.
+ /// The fixed image height to return.
+ /// Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.
+ /// Optional. Supply the cache tag from the item object to receive strong caching headers.
+ /// Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.
+ /// Determines the output format of the image - original,gif,jpg,png.
+ /// Optional. Add a played indicator.
+ /// Optional. Percent to render for the percent played overlay.
+ /// Optional. Unplayed count overlay to render.
+ /// Optional. Blur image.
+ /// Optional. Apply a background color for transparent images.
+ /// Optional. Apply a foreground layer on top of the image.
/// Image index.
+ /// Image stream returned.
+ /// Item not found.
+ ///
+ /// A containing the file stream on success,
+ /// or a if item not found.
+ ///
+ [HttpGet("/Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount}")]
+ [HttpHead("/Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount}")]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status404NotFound)]
+ public async Task GetItemImage2(
+ [FromRoute] Guid itemId,
+ [FromRoute] ImageType imageType,
+ [FromRoute] int? maxWidth,
+ [FromRoute] int? maxHeight,
+ [FromQuery] int? width,
+ [FromQuery] int? height,
+ [FromQuery] int? quality,
+ [FromRoute] string tag,
+ [FromQuery] bool? cropWhitespace,
+ [FromRoute] string format,
+ [FromQuery] bool? addPlayedIndicator,
+ [FromRoute] double? percentPlayed,
+ [FromRoute] int? unplayedCount,
+ [FromQuery] int? blur,
+ [FromQuery] string? backgroundColor,
+ [FromQuery] string? foregroundLayer,
+ [FromRoute] int? imageIndex = null)
+ {
+ var item = _libraryManager.GetItemById(itemId);
+ if (item == null)
+ {
+ return NotFound();
+ }
+
+ return await GetImageInternal(
+ itemId,
+ imageType,
+ imageIndex,
+ tag,
+ format,
+ maxWidth,
+ maxHeight,
+ percentPlayed,
+ unplayedCount,
+ width,
+ height,
+ quality,
+ cropWhitespace,
+ addPlayedIndicator,
+ blur,
+ backgroundColor,
+ foregroundLayer,
+ item,
+ Request.Method.Equals(HttpMethods.Head, StringComparison.OrdinalIgnoreCase))
+ .ConfigureAwait(false);
+ }
+
+ ///
+ /// Get artist image by name.
+ ///
+ /// Artist name.
+ /// Image type.
/// Optional. Supply the cache tag from the item object to receive strong caching headers.
/// Determines the output format of the image - original,gif,jpg,png.
/// The maximum image width to return.
@@ -411,19 +487,20 @@ namespace Jellyfin.Api.Controllers
/// Optional. Blur image.
/// Optional. Apply a background color for transparent images.
/// Optional. Apply a foreground layer on top of the image.
- /// Enable or disable image enhancers such as cover art.
+ /// Image index.
/// Image stream returned.
/// Item not found.
///
/// A containing the file stream on success,
/// or a if item not found.
///
- [HttpGet("/Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount}")]
- [HttpHead("/Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount}")]
- public ActionResult