1

我想在特定图像上写 3 个文本。本地主机上没有任何问题。但是在服务器上,我尝试了一切,但没有任何改变。总是说: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);
                }
            }

谢谢你

4

3 回答 3

0

尝试关闭画笔流

using (var brush = new SolidBrush(colorStringColor))
{
   ...         
}

或者使用内置刷子,这些不需要关闭。

graphicsMasterImage.DrawString(stringText1, font, Brushes.Black, new Point(233, 134), stringformatWriteTextFormat);
于 2012-10-09T14:32:26.347 回答
0

此消息通常出现在

  • 您没有保存文件的写入权限
  • 路径不存在
  • 该文件正在使用中
于 2012-10-09T13:23:28.400 回答
0

检查以确保服务器上的路径设置方式相同(即 stringMasterImageName)。此外,这可能是权限/安全问题。 看这里

于 2012-10-09T13:26:01.490 回答