mirror of
https://github.com/LorisYounger/VPet.ModMaker.git
synced 2024-08-30 18:22:21 +00:00
修复 保存图像会降低分辨率的问题
This commit is contained in:
parent
a91d7e2835
commit
4e9ed4630c
@ -79,14 +79,21 @@ public static class Extensions
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="image">图片资源</param>
|
/// <param name="image">图片资源</param>
|
||||||
/// <param name="path">路径</param>
|
/// <param name="path">路径</param>
|
||||||
public static void SaveToPng(this BitmapSource image, string path)
|
public static void SaveToPng(this BitmapImage image, string path)
|
||||||
{
|
{
|
||||||
if (image is null)
|
if (image is null)
|
||||||
return;
|
return;
|
||||||
if (path.EndsWith(".png") is false)
|
if (path.EndsWith(".png") is false)
|
||||||
path += ".png";
|
path += ".png";
|
||||||
var encoder = new PngBitmapEncoder();
|
var encoder = new PngBitmapEncoder();
|
||||||
encoder.Frames.Add(BitmapFrame.Create(image));
|
var stream = image.StreamSource;
|
||||||
|
// 保存位置
|
||||||
|
var position = stream.Position;
|
||||||
|
// 必须要重置位置, 否则EndInit将出错
|
||||||
|
stream.Seek(0, SeekOrigin.Begin);
|
||||||
|
encoder.Frames.Add(BitmapFrame.Create(image.StreamSource));
|
||||||
|
// 恢复位置
|
||||||
|
stream.Seek(position, SeekOrigin.Begin);
|
||||||
using var fs = new FileStream(path, FileMode.Create);
|
using var fs = new FileStream(path, FileMode.Create);
|
||||||
encoder.Save(fs);
|
encoder.Save(fs);
|
||||||
}
|
}
|
||||||
|
@ -53,11 +53,8 @@ public static class Utils
|
|||||||
bitmapImage.BeginInit();
|
bitmapImage.BeginInit();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var ms = new MemoryStream();
|
var bytes = File.ReadAllBytes(imagePath);
|
||||||
using var sr = new StreamReader(imagePath);
|
bitmapImage.StreamSource = new MemoryStream(bytes);
|
||||||
sr.BaseStream.CopyTo(ms);
|
|
||||||
bitmapImage.StreamSource = ms;
|
|
||||||
bitmapImage.DecodePixelWidth = DecodePixelWidth;
|
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user