Don't use ImageSharp for texture processing

- returned to System.Drawing
(ImageSharp is a good lib, but too slow for such app, IMO)
This commit is contained in:
VaDiM
2021-11-24 15:43:53 +02:00
parent 9cbe91decb
commit 571ea2da4a
6 changed files with 6039 additions and 70 deletions

View File

@ -1,38 +1,31 @@
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Formats.Bmp;
using SixLabors.ImageSharp.Formats.Tga;
using System.Drawing;
using System.IO;
using TGASharpLib;
namespace AssetStudio
{
public static class ImageExtensions
{
public static MemoryStream ConvertToStream(this Image image, ImageFormat imageFormat)
public static MemoryStream ConvertToStream(this Bitmap image, ImageFormat imageFormat)
{
var outputStream = new MemoryStream();
switch (imageFormat)
{
case ImageFormat.Jpeg:
image.SaveAsJpeg(outputStream);
image.Save(outputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
case ImageFormat.Png:
image.SaveAsPng(outputStream);
image.Save(outputStream, System.Drawing.Imaging.ImageFormat.Png);
break;
case ImageFormat.Bmp:
image.Save(outputStream, new BmpEncoder
{
BitsPerPixel = BmpBitsPerPixel.Pixel32,
SupportTransparency = true
});
image.Save(outputStream, System.Drawing.Imaging.ImageFormat.Bmp);
break;
case ImageFormat.Tga:
image.Save(outputStream, new TgaEncoder
{
BitsPerPixel = TgaBitsPerPixel.Pixel32,
Compression = TgaCompression.None
});
var tga = new TGA(image);
tga.Save(outputStream);
break;
}
image.Dispose();
return outputStream;
}
}