修复SaveAsImage保存图片时不支持透明度的问题 (#337)

This commit is contained in:
monitor1394
2025-02-09 20:21:42 +08:00
parent 9fc75c78d7
commit 214b84c71d
3 changed files with 6 additions and 5 deletions

View File

@@ -79,6 +79,7 @@ slug: /changelog
## master ## master
* (2025.02.09) 修复`SaveAsImage`保存图片时不支持透明度的问题 (#337)
* (2025.02.05) 增加`GraphChart`可单独设置`data`样式的支持 * (2025.02.05) 增加`GraphChart`可单独设置`data`样式的支持
* (2025.02.05) 重构`SerieSymbol``sizeFunction`参数 * (2025.02.05) 重构`SerieSymbol``sizeFunction`参数
* (2025.01.23) 修复`Treemap``Label`不显示的问题 * (2025.01.23) 修复`Treemap``Label`不显示的问题

View File

@@ -21,9 +21,9 @@ namespace XCharts.Example
} }
} }
float SymbolSize(List<double> data) float SymbolSize(float defaultSize, SerieData serieData)
{ {
return (float) (Math.Sqrt(data[2]) / 6e2); return defaultSize;
} }
} }
} }

View File

@@ -1059,12 +1059,12 @@ namespace XCharts.Runtime
{ {
var cam = canvas.renderMode == RenderMode.ScreenSpaceOverlay ? null : canvas.worldCamera; var cam = canvas.renderMode == RenderMode.ScreenSpaceOverlay ? null : canvas.worldCamera;
var pos = RectTransformUtility.WorldToScreenPoint(cam, rectTransform.position); var pos = RectTransformUtility.WorldToScreenPoint(cam, rectTransform.position);
var width = rectTransform.rect.width * canvas.scaleFactor; var width = (int)(rectTransform.rect.width * canvas.scaleFactor);
var height = rectTransform.rect.height * canvas.scaleFactor; var height = (int)(rectTransform.rect.height * canvas.scaleFactor);
var posX = pos.x + rectTransform.rect.xMin * canvas.scaleFactor; var posX = pos.x + rectTransform.rect.xMin * canvas.scaleFactor;
var posY = pos.y + rectTransform.rect.yMin * canvas.scaleFactor; var posY = pos.y + rectTransform.rect.yMin * canvas.scaleFactor;
var rect = new Rect(posX, posY, width, height); var rect = new Rect(posX, posY, width, height);
var tex = new Texture2D((int)width, (int)height, TextureFormat.RGBA32, false); var tex = new Texture2D(width, height, TextureFormat.ARGB32, false);
tex.ReadPixels(rect, 0, 0); tex.ReadPixels(rect, 0, 0);
tex.Apply(); tex.Apply();
byte[] bytes; byte[] bytes;