using System.Drawing;
using Microsoft.Maui.Storage;

namespace InABox.Avalonia.Platform
{
    public interface IImageTools : ILoggable
    {

        byte[] CreateVideoThumbnail(byte[] video, int maxwidth, int maxheight);
        
        byte[] CreateThumbnail(byte[] image, int maxwidth, int maxheight);
        
        // Goal - to return a properly rotated, scaled and compressed JPEG Image
        Task<FileResult> CapturePhotoAsync(int? compression, Size? constraints);
        Task<FileResult> PickPhotoAsync(int? compression, Size? constraints);

        byte[] RotateImage(byte[] image, float angle, int quality = 100);

        byte[] ScaleImage(byte[] image, Size? constraints, int quality = 100);
    }
}