Код: Выделить всё
System.Drawing
Код: Выделить всё
System.Drawing.Common
Код: Выделить всё
using System.Drawing;
using System.Drawing.Imaging;
byte[] imageBytes = record.Image;
using (var ms = new MemoryStream(imageBytes))
using (var image = Image.FromStream(ms))
{
image.Save("Files/image_sysdraw.jpg", ImageFormat.Jpeg);
}
< /code>
Результат: изображение хранится, но выглядит совершенно черно -серым. < /p>
SixLabors.ImageSharp
Код: Выделить всё
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Formats.Jpeg;
byte[] imageBytes = record.Image;
using (var ms = new MemoryStream(imageBytes))
using (var image = Image.Load(ms))
{
image.SaveAsJpeg("Files/image_imagesharp.jpg");
}
< /code>
Результат: тот же результат - в основном серым или поврежденным изображением. < /p>
skiasharp: < /p>
using SkiaSharp;
byte[] imageBytes = record.Image;
using (var ms = new MemoryStream(imageBytes))
using (var skStream = new SKManagedStream(ms))
using (var skBitmap = SKBitmap.Decode(skStream))
{
using var image = SKImage.FromBitmap(skBitmap);
using var data = image.Encode(SKEncodedImageFormat.Jpeg, 100);
using var fs = File.OpenWrite("Files/image_skiasharp.jpg");
data.SaveTo(fs);
}
< /code>
Результат: либо полностью зеленый, либо пусто.using ImageMagick;
byte[] imageBytes = record.Image;
using (var image = new MagickImage(imageBytes))
{
image.Format = MagickFormat.Jpeg;
image.Write("Files/image_magick.jpg");
}
< /code>
Дополнительная информация: < /p>
[list]
[*] sql server type type: varbinary (max) < /code> < /p>
< /li>
/>0xffd8ffe000104a4649460001010000010001...
< /li>
Это начинается с FFD8, что указывает на то, что это действительный заголовок JPEG. Появляется правильно! < /p>
< /li>
Это означает, что сами данные не повреждены, но преобразование через C# проблематично. < /p>
< /li>
< /ul>
[b], что я хочу < /strong> < /p>
varbinary (max)
[*] Бонус: Сохраните его в Projectroot \ files \ image.jpg (не под bin \ debug \ net5.0 ).
[/list]
[/b]
). Приложение консоли
[*] Данные, хранящиеся в SQL Server 2019
Подробнее здесь: https://stackoverflow.com/questions/797 ... net-core-b