鉴于目标(并忽略所需的 Graphic.DrawRectangle),您最好的选择是使用 SVG。SVG 格式实际上是一个描述您想要的图像的 XML 文件,因此您可以在服务器端生成它并将其缓存为文本(在 clint 或服务器上),SVG 也使用矢量图形(顾名思义*)至极允许任意分辨率。
*:SVG代表可缩放矢量图形。
我向您推荐3w.org 上有关 SVG 的本教程,以帮助您入门。
以下是 SVG 的示例:
HTML 中的内联 SVG
索引.html
<!DOCTYPE html>
<html>
<head>
<title>SVG test</title>
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<rect x="10" y="10" width="50" height="30" />
</svg>
</body>
</html>
img 元素中的 SVG
矩形.svg
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<rect x="10" y="10" width="50" height="30" />
</svg>
索引.htm
<!DOCTYPE html>
<html>
<head>
<title>SVG test</title>
</head>
<body>
<img src="rectangle.svg" alt="rectangle" />
</body>
</html>
我推荐第二个选项(单独的文件)。请注意,这是工作草案,得到很好的支持。所以,检查浏览器兼容性。
您可能不希望直接输出 SVG 文本,在这种情况下,请检查在 .NET/C# 中绘制 SVG?在这里,在 StackOverflow。