我想在特定图像上写3个文字。 localhost没有任何问题。 但在服务器上,我尝试了一切,但没有任何改变。 总是说:GDI +中发生了一般性错误。
如果我一步一步地在图像上写文字,我得到同样的错误。添加第一个文本后,由于第一个文本在图像上进行处理,因此无法在图像上添加第二个和第三个文本。
要点:
首先,我想在img1和Dispose上添加text1。 其次我想在img1和Dispose上添加text2。 第三,我想在img1和Dispose上添加text3。
using (Bitmap bitmapMasterImage = new Bitmap(stringMasterImageName))
{
using (Graphics graphicsMasterImage = Graphics.FromImage(bitmapMasterImage))
{
graphicsMasterImage.DrawString(stringText1, new Font("Arial", 20, FontStyle.Bold), new SolidBrush(colorStringColor), new Point(233, 134), stringformatWriteTextFormat);
graphicsMasterImage.DrawString(stringText2, new Font("Arial", 20, FontStyle.Bold), new SolidBrush(colorStringColor), new Point(233, 210), stringformatWriteTextFormat);
graphicsMasterImage.DrawString(stringText3, new Font("Arial", 20, FontStyle.Bold), new SolidBrush(colorStringColor), new Point(233, 300), stringformatWriteTextFormat);
}
Response.Clear();
Response.ContentType = "image/jpeg";
using (MemoryStream stream = new MemoryStream())
{
bitmapMasterImage.Save(stream, ImageFormat.Jpeg);
bitmapMasterImage.Save(stringOutPutFileName);
stream.WriteTo(Response.OutputStream);
}
}
谢谢
答案 0 :(得分:0)
此消息通常在
时出现答案 1 :(得分:0)
检查以确保路径在服务器上的设置方式相同(即stringMasterImageName)。此外,这可能是许可/安全问题。 Look here
答案 2 :(得分:0)
尝试关闭画笔流
using (var brush = new SolidBrush(colorStringColor))
{
...
}
或者使用内置画笔,不需要关闭它们。
graphicsMasterImage.DrawString(stringText1, font, Brushes.Black, new Point(233, 134), stringformatWriteTextFormat);