< Summary

Information
Class: Anichron.Worker.Ingestion.Proxy.FullPreviewGenerator
Assembly: Anichron.Worker
File(s): /home/runner/work/anichron/anichron/src/Anichron.Worker/Ingestion/Proxy/ImageProxyGenerators.cs
Tag: 228_36821334185
Line coverage
100%
Covered lines: 4
Uncovered lines: 0
Coverable lines: 4
Total lines: 40
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
get_FileName()100%11100%
get_ProxyType()100%11100%
GenerateAsync(...)100%11100%

File(s)

/home/runner/work/anichron/anichron/src/Anichron.Worker/Ingestion/Proxy/ImageProxyGenerators.cs

#LineLine coverage
 1using Anichron.Core.Domain;
 2using SixLabors.ImageSharp;
 3using SixLabors.ImageSharp.PixelFormats;
 4using System.Text;
 5
 6namespace Anichron.Worker.Ingestion.Proxy;
 7
 8internal interface IImageProxyGenerator
 9{
 10    string FileName { get; }
 11    ProxyType ProxyType { get; }
 12    Task<byte[]> GenerateAsync(Image<Rgba32> image, CancellationToken ct);
 13}
 14
 15internal sealed class ThumbnailGenerator(IImageProcessor imageProcessor) : IImageProxyGenerator
 16{
 17    public string FileName => "thumbnail.jpg";
 18    public ProxyType ProxyType => ProxyType.Thumbnail;
 19    public Task<byte[]> GenerateAsync(Image<Rgba32> image, CancellationToken ct)
 20        => imageProcessor.CreateThumbnailAsync(image, ct);
 21}
 22
 2323internal sealed class FullPreviewGenerator(IImageProcessor imageProcessor) : IImageProxyGenerator
 24{
 1825    public string FileName => "preview.jpg";
 1826    public ProxyType ProxyType => ProxyType.FullPreview;
 27    public Task<byte[]> GenerateAsync(Image<Rgba32> image, CancellationToken ct)
 1828        => imageProcessor.CreateFullPreviewAsync(image, ct);
 29}
 30
 31internal sealed class BlurhashGenerator(IImageProcessor imageProcessor) : IImageProxyGenerator
 32{
 33    public string FileName => "blurhash.txt";
 34    public ProxyType ProxyType => ProxyType.BlurHash;
 35    public async Task<byte[]> GenerateAsync(Image<Rgba32> image, CancellationToken ct)
 36    {
 37        var hash = await imageProcessor.ComputeBlurhashAsync(image, ct);
 38        return Encoding.UTF8.GetBytes(hash);
 39    }
 40}