我有以下内容:
我需要在图像中动态设置这些,然后将其存储为PNG文件。所有这些都发生在一个Web服务中,它会发回某种流。
我希望能够用CSS设计这个样式,因为在图片中添加一些CSS效果会很不错。如果那是不可能的,那也很好。
到目前为止,我已经考虑过使用Bitmap
类,然后动态插入我的东西。这绝对是一种方法,但我真的更喜欢一些像CSS这样设计友好的方式。
首选方法是什么?有经验吗?
答案 0 :(得分:2)
Bitmap bmp = new Bitmap(500, 500);
using (Graphics g = Graphics.FromImage(bmp)) {
g.Clear(Color.Black);
// ...
}
然后,您可以致电Image.Save
(bmp.Save(...)
)将图片保存到磁盘,甚至是MemoryStream
。
答案 1 :(得分:1)
Angelo Geels的答案将让您在代码中创建动态位图。如果您需要更多的灵活性,那么您可能希望使用SVG格式,如果您绝对需要该格式,可能会将其呈现为PNG文件。
SVG是一种基于XML的图像格式,您可以在其中定义应该绘制到其中的视口和形状。它是基于矢量的,因此图像可以按比例放大和缩小到任何大小。
编写一个ASP.Net Http Handler应该很容易,它根据用户输入输出一些带有一些动态内容的SVG xml文件。更简单的选择是提供设计人员创建的静态SVG文件,但是您也可以提供静态PNG文件。
如果你想使用SVG方法的灵活性,但仍然需要输出PNG,那么你可以使用SVG.Net library读取SVG文件,然后使用SvgDocument.Draw方法将图像绘制到位图然后可以将其写为PNG文件的对象。