Some fixes for image converters

This commit is contained in:
VaDiM
2026-04-20 03:39:38 +03:00
parent 456bc63e96
commit c728d0349d
3 changed files with 25 additions and 17 deletions
+13 -13
View File
@@ -28,8 +28,8 @@ namespace AssetStudio
private float downscaleMultiplier;
private SpriteSettings settingsRaw;
private bool keepSpriteSize;
private int resultWidth;
private int resultHeight;
private int resultWidth = -1;
private int resultHeight = -1;
private bool canConvert;
public readonly Texture2D m_Texture2D;
@@ -51,11 +51,7 @@ namespace AssetStudio
textureRectOffset = spriteAtlasData.textureRectOffset;
downscaleMultiplier = spriteAtlasData.downscaleMultiplier;
settingsRaw = spriteAtlasData.settingsRaw;
SetResultSpriteSize();
if (resultWidth > 0 && resultHeight > 0)
{
canConvert = true;
}
canConvert = SetResultSpriteSize();
}
}
if (!canConvert && m_Sprite.m_RD.texture.TryGet(out m_Texture2D))
@@ -65,22 +61,26 @@ namespace AssetStudio
textureRectOffset = m_Sprite.m_RD.textureRectOffset;
downscaleMultiplier = m_Sprite.m_RD.downscaleMultiplier;
settingsRaw = m_Sprite.m_RD.settingsRaw;
SetResultSpriteSize();
if (resultWidth > 0 && resultHeight > 0)
{
canConvert = true;
}
canConvert = SetResultSpriteSize();
}
}
private void SetResultSpriteSize()
private bool SetResultSpriteSize()
{
if (sprite.m_Rect.width <= 0 || textureRect.width <= 0 || sprite.m_Rect.height <= 0 || textureRect.height <= 0)
{
(resultWidth, resultHeight) = (0, 0);
return false;
}
resultWidth = keepSpriteSize
? (int)MathF.Round(sprite.m_Rect.width)
: (int)MathF.Round(textureRect.width);
resultHeight = keepSpriteSize
? (int)MathF.Round(sprite.m_Rect.height)
: (int)MathF.Round(textureRect.height);
return true;
}
public bool TryConvertToImage(out Image<Bgra32> spriteImage, SpriteMaskMode maskMode)
+1 -1
View File
@@ -22,7 +22,7 @@ namespace AssetStudio
private int gobsPerBlock;
private Size blockSize;
public int OutputDataSize => outputDataSize;
public int GetImageDataSize() => outputDataSize;
public Texture2DConverter(Texture2D m_Texture2D)
{