You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
736 B
35 lines
736 B
5 years ago
|
using System;
|
||
|
using System.Linq;
|
||
|
using System.Threading;
|
||
|
using System.Threading.Tasks;
|
||
|
using Tools;
|
||
|
using System.IO;
|
||
|
|
||
|
using ImageMagick;
|
||
|
|
||
|
namespace ndview
|
||
|
{
|
||
|
public class ThumbnailGenerator
|
||
|
{
|
||
|
public readonly int Width,Height;
|
||
|
public ThumbnailGenerator(int width) : this(width,0){}
|
||
|
public ThumbnailGenerator(int width, int height)
|
||
|
{
|
||
|
(Width, Height) = (width, height);
|
||
|
}
|
||
|
|
||
|
public Task Thumbnail(Stream from, Stream to, CancellationToken token=default)
|
||
|
=> Task.Run(()=> {
|
||
|
using var image= new MagickImage();
|
||
|
image.Read(from);
|
||
|
token.ThrowIfCancellationRequested();
|
||
|
image.Resize(200, 0);
|
||
|
|
||
|
token.ThrowIfCancellationRequested();
|
||
|
image.Write(to);
|
||
|
token.ThrowIfCancellationRequested();
|
||
|
|
||
|
});
|
||
|
}
|
||
|
}
|