2010-02-24 3 views
3

У меня есть объект растрового изображения и нарисовать некоторые кривые на нем методом setpixel. когда я сохраняю это растровое изображение как файл jpg, фон моего изображения не является белой поверхностью. фон прозрачен. в чем проблема? Как я могу решить эту проблему?Вопрос о сохранении bitmap в .NET

ответ

6

Позвоните Graphics.Clear(Color.White), прежде чем рисовать растровое изображение. Если вы уже не имеете экземпляр System.Drawing.Graphics для точечного рисунка, вот как получить:

Graphics g = Graphics.FromImage(bitmap); 

Очистить растровое:

g.Clear(Color.White); 

И, конечно же, не забудьте позвонить Dispose() когда вы сделали с графикой.

g.Dispose(); 
0

Вы уверены, что хотите сохранить изображение в формате JPEG? AFAIK, JPEG не поддерживает прозрачность, поэтому, возможно, вы сохраняете изображение как GIF или PNG с расширением «.jpg», и ваш зритель игнорирует расширение.

В любом случае решение Zach должно заполнить ваше растровое изображение сплошным фоном, прежде чем вы начнете рисовать.

+0

Да, я сохраняю файл jpg или bmp. –

+0

И ваш фон * прозрачный * ??? Как это может быть? Ни форматы BMP, ни JPG не поддерживают прозрачность ... –

+0

Когда вы создаете 'System.Drawing.Bitmap', по умолчанию все его пиксели прозрачны. Когда вы сохраняете битмап в формате, который не поддерживает прозрачность, прозрачные пиксели обычно заканчиваются черным. –

Смежные вопросы