mirror of
https://github.com/4sval/FModel.git
synced 2026-09-25 02:29:21 -05:00
skbitmap migration
This commit is contained in:
@@ -607,7 +607,7 @@ namespace FModel.ViewModels
|
||||
if (Provider.TrySaveAsset(fullPath, out var data))
|
||||
{
|
||||
using var stream = new MemoryStream(data) {Position = 0};
|
||||
TabControl.SelectedTab.AddImage(fileName.SubstringBeforeLast("."), false, SKImage.FromBitmap(SKBitmap.Decode(stream)));
|
||||
TabControl.SelectedTab.AddImage(fileName.SubstringBeforeLast("."), false, SKBitmap.Decode(stream));
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -617,7 +617,15 @@ namespace FModel.ViewModels
|
||||
{
|
||||
using var stream = new MemoryStream(data) { Position = 0 };
|
||||
var svg = new SkiaSharp.Extended.Svg.SKSvg(new SKSize(512, 512));
|
||||
TabControl.SelectedTab.AddImage(fileName.SubstringBeforeLast("."), false, SKImage.FromPicture(svg.Load(stream), new SKSizeI(512, 512)));
|
||||
svg.Load(stream);
|
||||
|
||||
var bitmap = new SKBitmap(512, 512);
|
||||
using (var canvas = new SKCanvas(bitmap))
|
||||
using (var paint = new SKPaint { IsAntialias = true, FilterQuality = SKFilterQuality.Medium })
|
||||
{
|
||||
canvas.DrawPicture(svg.Picture, paint);
|
||||
}
|
||||
TabControl.SelectedTab.AddImage(fileName.SubstringBeforeLast("."), false, bitmap);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -310,7 +310,8 @@ namespace FModel.ViewModels
|
||||
private BitmapImage GetImageSource(SKBitmap bitmap)
|
||||
{
|
||||
if (bitmap == null) return null;
|
||||
using var stream = SKImage.FromBitmap(bitmap).Encode().AsStream();
|
||||
using var data = bitmap.Encode(SKEncodedImageFormat.Png, 100);
|
||||
using var stream = data.AsStream();
|
||||
var image = new BitmapImage();
|
||||
image.BeginInit();
|
||||
image.CacheOption = BitmapCacheOption.OnLoad;
|
||||
|
||||
@@ -419,12 +419,12 @@ namespace FModel.ViewModels
|
||||
}
|
||||
else if (parameters.Diffuse is UTexture2D diffuse)
|
||||
{
|
||||
m.AlbedoMap = new TextureModel(diffuse.Decode()?.Encode().AsStream());
|
||||
m.AlbedoMap = new TextureModel(diffuse.Decode()?.Encode(SKEncodedImageFormat.Png, 100).AsStream());
|
||||
}
|
||||
|
||||
if (parameters.Normal is UTexture2D normal)
|
||||
{
|
||||
m.NormalMap = new TextureModel(normal.Decode()?.Encode().AsStream());
|
||||
m.NormalMap = new TextureModel(normal.Decode()?.Encode(SKEncodedImageFormat.Png, 100).AsStream());
|
||||
}
|
||||
|
||||
if (parameters.Specular is UTexture2D specular)
|
||||
@@ -540,7 +540,7 @@ namespace FModel.ViewModels
|
||||
if (parameters.HasTopEmissiveTexture && parameters.Emissive is UTexture2D emissive && parameters.EmissiveColor is { A: > 0 } emissiveColor)
|
||||
{
|
||||
m.EmissiveColor = new Color4(emissiveColor.R, emissiveColor.G, emissiveColor.B, emissiveColor.A);
|
||||
m.EmissiveMap = new TextureModel(emissive.Decode()?.Encode().AsStream());
|
||||
m.EmissiveMap = new TextureModel(emissive.Decode()?.Encode(SKEncodedImageFormat.Png, 100).AsStream());
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using FModel.Extensions;
|
||||
using FModel.Framework;
|
||||
using FModel.Settings;
|
||||
@@ -25,7 +25,7 @@ namespace FModel.ViewModels
|
||||
public string ExportName { get; }
|
||||
public byte[] ImageBuffer { get; set; }
|
||||
|
||||
public TabImage(string name, bool rnn, SKImage img)
|
||||
public TabImage(string name, bool rnn, SKBitmap img)
|
||||
{
|
||||
ExportName = name;
|
||||
RenderNearestNeighbor = rnn;
|
||||
@@ -61,11 +61,11 @@ namespace FModel.ViewModels
|
||||
}
|
||||
}
|
||||
|
||||
private void SetImage(SKImage img)
|
||||
private void SetImage(SKBitmap bitmap)
|
||||
{
|
||||
_img = img;
|
||||
_bmp = bitmap;
|
||||
|
||||
using var data = _img.Encode(NoAlpha ? SKEncodedImageFormat.Jpeg : SKEncodedImageFormat.Png, 100);
|
||||
using var data = _bmp.Encode(NoAlpha ? SKEncodedImageFormat.Jpeg : SKEncodedImageFormat.Png, 100);
|
||||
using var stream = new MemoryStream(ImageBuffer = data.ToArray(), false);
|
||||
var image = new BitmapImage();
|
||||
image.BeginInit();
|
||||
@@ -76,8 +76,8 @@ namespace FModel.ViewModels
|
||||
Image = image;
|
||||
}
|
||||
|
||||
private SKImage _img;
|
||||
private void ResetImage() => SetImage(_img);
|
||||
private SKBitmap _bmp;
|
||||
private void ResetImage() => SetImage(_bmp);
|
||||
}
|
||||
|
||||
public class TabItem : ViewModel
|
||||
@@ -223,7 +223,7 @@ namespace FModel.ViewModels
|
||||
}
|
||||
|
||||
public void AddImage(UTexture2D texture) => AddImage(texture.Name, texture.bRenderNearestNeighbor, texture.Decode());
|
||||
public void AddImage(string name, bool rnn, SKImage img)
|
||||
public void AddImage(string name, bool rnn, SKBitmap img)
|
||||
{
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user