Browse Source

Add GetImageSize to PngDataHelper

pull/165/head
JT 1 year ago
parent
commit
1d784b3b3f
  1. 27
      StabilityMatrix.Avalonia/Helpers/PngDataHelper.cs

27
StabilityMatrix.Avalonia/Helpers/PngDataHelper.cs

@ -3,6 +3,7 @@ using System.IO;
using System.Linq;
using System.Text;
using System.Text.Json;
using Avalonia;
using Force.Crc32;
using StabilityMatrix.Avalonia.Models;
using StabilityMatrix.Core.Models;
@ -84,6 +85,32 @@ public static class PngDataHelper
return finalImage.ToArray();
}
public static Size GetImageSize(byte[] inputImage)
{
var imageWidthBytes = inputImage[0x10..0x14];
var imageHeightBytes = inputImage[0x14..0x18];
var imageWidth = BitConverter.ToInt32(imageWidthBytes.Reverse().ToArray());
var imageHeight = BitConverter.ToInt32(imageHeightBytes.Reverse().ToArray());
return new Size(imageWidth, imageHeight);
}
public static Size GetImageSize(BinaryReader reader)
{
var oldPosition = reader.BaseStream.Position;
reader.BaseStream.Position = 0x10;
var imageWidthBytes = reader.ReadBytes(4);
var imageHeightBytes = reader.ReadBytes(4);
var imageWidth = BitConverter.ToInt32(imageWidthBytes.Reverse().ToArray());
var imageHeight = BitConverter.ToInt32(imageHeightBytes.Reverse().ToArray());
reader.BaseStream.Position = oldPosition;
return new Size(imageWidth, imageHeight);
}
private static byte[] BuildTextChunk(string key, string value)
{
var textData = $"{key}\0{value}";

Loading…
Cancel
Save