mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-25 02:10:16 +00:00
修复SaveAsImage保存的图片在PC和手机上不一致的问题
This commit is contained in:
@@ -1290,8 +1290,7 @@ namespace XCharts.Runtime
|
|||||||
return null;
|
return null;
|
||||||
|
|
||||||
var clampedExportScale = Mathf.Max(1f, exportScale);
|
var clampedExportScale = Mathf.Max(1f, exportScale);
|
||||||
var scaleFactor = canvas.scaleFactor <= 0 ? 1f : canvas.scaleFactor;
|
var outputScaleFactor = clampedExportScale;
|
||||||
var outputScaleFactor = scaleFactor * clampedExportScale;
|
|
||||||
var width = Mathf.Max(1, Mathf.CeilToInt(rectTransform.rect.width * outputScaleFactor));
|
var width = Mathf.Max(1, Mathf.CeilToInt(rectTransform.rect.width * outputScaleFactor));
|
||||||
var height = Mathf.Max(1, Mathf.CeilToInt(rectTransform.rect.height * outputScaleFactor));
|
var height = Mathf.Max(1, Mathf.CeilToInt(rectTransform.rect.height * outputScaleFactor));
|
||||||
var chart = rectTransform.GetComponent<BaseChart>();
|
var chart = rectTransform.GetComponent<BaseChart>();
|
||||||
@@ -1404,8 +1403,8 @@ namespace XCharts.Runtime
|
|||||||
// so the saved image has original width/height but higher quality.
|
// so the saved image has original width/height but higher quality.
|
||||||
if (clampedExportScale > 1f)
|
if (clampedExportScale > 1f)
|
||||||
{
|
{
|
||||||
var targetWidth = Mathf.Max(1, Mathf.CeilToInt(rectTransform.rect.width * scaleFactor));
|
var targetWidth = Mathf.Max(1, Mathf.CeilToInt(rectTransform.rect.width));
|
||||||
var targetHeight = Mathf.Max(1, Mathf.CeilToInt(rectTransform.rect.height * scaleFactor));
|
var targetHeight = Mathf.Max(1, Mathf.CeilToInt(rectTransform.rect.height));
|
||||||
|
|
||||||
var smallRT = RenderTexture.GetTemporary(targetWidth, targetHeight, 0, rt.format);
|
var smallRT = RenderTexture.GetTemporary(targetWidth, targetHeight, 0, rt.format);
|
||||||
Graphics.Blit(rt, smallRT);
|
Graphics.Blit(rt, smallRT);
|
||||||
@@ -1416,7 +1415,7 @@ namespace XCharts.Runtime
|
|||||||
tex.Apply();
|
tex.Apply();
|
||||||
RenderTexture.ReleaseTemporary(smallRT);
|
RenderTexture.ReleaseTemporary(smallRT);
|
||||||
|
|
||||||
var cornerRadiiFinal = GetChartCornerRadius(chart, rectTransform.rect.width, rectTransform.rect.height, scaleFactor);
|
var cornerRadiiFinal = GetChartCornerRadius(chart, rectTransform.rect.width, rectTransform.rect.height, 1f);
|
||||||
ApplyRoundedCornerClip(tex, cornerRadiiFinal);
|
ApplyRoundedCornerClip(tex, cornerRadiiFinal);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user