Switch to webp

This commit is contained in:
Zoe Roux 2023-08-31 01:49:28 +02:00
parent 74c31a0f18
commit 7b2f44d19a
No known key found for this signature in database
2 changed files with 6 additions and 6 deletions

View File

@ -56,7 +56,7 @@ namespace Kyoo.Core.Controllers
private static async Task _WriteTo(SKBitmap bitmap, string path)
{
SKData data = bitmap.Encode(SKEncodedImageFormat.Jpeg, 18);
SKData data = bitmap.Encode(SKEncodedImageFormat.Webp, 18);
await using Stream reader = data.AsStream();
await using Stream file = File.Create(path);
await reader.CopyToAsync(file);
@ -80,13 +80,13 @@ namespace Kyoo.Core.Controllers
using SKBitmap original = SKBitmap.Decode(codec, info);
using SKBitmap high = original.Resize(new SKSizeI(original.Width, original.Height), SKFilterQuality.High);
await _WriteTo(high, $"{localPath}.{ImageQuality.High.ToString().ToLowerInvariant()}.jpg");
await _WriteTo(high, $"{localPath}.{ImageQuality.High.ToString().ToLowerInvariant()}.webp");
using SKBitmap medium = high.Resize(new SKSizeI((int)(high.Width / 1.5), (int)(high.Height / 1.5)), SKFilterQuality.Medium);
await _WriteTo(medium, $"{localPath}.{ImageQuality.Medium.ToString().ToLowerInvariant()}.jpg");
await _WriteTo(medium, $"{localPath}.{ImageQuality.Medium.ToString().ToLowerInvariant()}.webp");
using SKBitmap low = medium.Resize(new SKSizeI(medium.Width / 2, medium.Height / 2), SKFilterQuality.Low);
await _WriteTo(low, $"{localPath}.{ImageQuality.Low.ToString().ToLowerInvariant()}.jpg");
await _WriteTo(low, $"{localPath}.{ImageQuality.Low.ToString().ToLowerInvariant()}.webp");
image.Blurhash = Blurhasher.Encode(low, 4, 3);
}
@ -124,7 +124,7 @@ namespace Kyoo.Core.Controllers
public string GetImagePath<T>(T item, string image, ImageQuality quality)
where T : IThumbnails
{
return $"{_GetBaseImagePath(item, image)}.{quality.ToString().ToLowerInvariant()}.jpg";
return $"{_GetBaseImagePath(item, image)}.{quality.ToString().ToLowerInvariant()}.webp";
}
}
}

View File

@ -68,7 +68,7 @@ namespace Kyoo.Core.Api
string path = _thumbs.GetImagePath(resource, image, quality ?? ImageQuality.High);
if (path == null || !System.IO.File.Exists(path))
return NotFound();
return PhysicalFile(Path.GetFullPath(path), "image/jpeg", true);
return PhysicalFile(Path.GetFullPath(path), "image/webp", true);
}
/// <summary>