Я пытаюсь преобразовать содержимое текстового файла в изображение с помощью C#, но я не могу это сделать. Я получаю раздражающую ошибку A generic error occurred in GDI+.
от System.Drawing
.Сохранение содержимого текстового файла как изображения
Вот мой фактический код:
public static Bitmap ConvertTextToImage(string txt, string fontname, int fontsize, Color bgcolor, Color fcolor, int width, int Height)
{
Bitmap bmp = new Bitmap(width, Height);
using (Graphics graphics = Graphics.FromImage(bmp))
{
Font font = new Font(fontname, fontsize);
graphics.FillRectangle(new SolidBrush(bgcolor), 0, 0, bmp.Width, bmp.Height);
graphics.DrawString(txt, font, new SolidBrush(fcolor), 0, 0);
graphics.Flush();
font.Dispose();
graphics.Dispose();
}
bmp.Save("C:\\" + Guid.NewGuid().ToString() + ".bmp");
Convert(bmp);
return bmp;
}
Таким образом, на линии bmp.Save("C:\\" + Guid.NewGuid().ToString() + ".bmp");
при попытке сохранить изображение, он приносит эту ошибку. Я читал сообщения и подобные вопросы и завернул все вокруг инструкции using
, как это было предложено в нескольких источниках, но я все еще ничего не вижу и не могу понять.
Я использую File.ReadAllText(path);
прочитать содержимое текстового файла, а затем я сделать обычный вызов к моему методу:
ConvertTextToImage(content, "Bookman Old Style", 10, Color.White, Color.Black, width, height);
Возможно, вы получите эту ошибку из-за попытки сохранить в корневой каталог C :. Попробуйте изменить путь к файлу в методе Save() на что-то вроде C: \ Temp \ .bmp. Это связано с разрешением/UAC, которое не позволяет писать напрямую в корневой каталог –
Я пробовал это, но у меня по-прежнему появляется такая же общая ошибка ... Я также попытался сохранить в текущий каталог проекта то же самое. Я думаю, что здесь не причина. – lapadets
Я только что проверил ваш код. Запись в C: \ throws общая ошибка, запись в C: \ Temp \ прошла успешно. Ваш код работает так, как есть. –