2010-11-09 8 views
2

Это не работает:Как установить пиксель в растровый рисунок на белый цвет?

Color col; 
objBitmap = new Bitmap(Resource1.im); 
col = Color.FromName("White"); 
// Perform an operation on the Color value here. 
objBitmap.SetPixel(x, y, col); 

Когда я загрузить изображение в элемент управления изображение коробки, он по-прежнему черный (пиксель, который должен быть белым).

EDIT:

Это, как я загрузить растровое изображение в элемент управления коробкой изображения после редактирования:

objBitmap.Save(Resource1.im.ToString()); 

this.pictureBox2.Image = ResizeBitmap(Resource1.im, 100, 100); 

objBitmap.Dispose(); 
+0

Ваш вызов 'Save' является _totally_ неправильным. – SLaks

ответ

3

Вы, вероятно, показывает неправильный Bitmap в PictureBox.

В окне просмотра отладчика щелкните правой кнопкой мыши на objBitmap и на somePictureBox.Image и нажмите Сделать идентификатор объекта.
Если у двух объектов разные идентификаторы, вы видите неправильное изображение.

EDIT: Bitmap.Save принимает имя файла.
Ваш код создает файл с именем Bitmap в текущем каталоге.
Изменить его на pictureBox2.Image = ResizeBitmap(objBitmap, 100, 100);

Файлы ResX только для чтения; вы не можете изменить сохраненный битмап во время выполнения.
Вместо этого вы можете поместить измененное изображение в статическое поле Bitmap. (И убедитесь, что не выбрасывайте его до тех пор, пока он не нужен больше)


Note, кстати, что вы можете написать

Color col = Color.White; 
+0

Возможно, я неправильно загружаю растровое изображение в окно изображения. Проверьте мой обновленный ответ. –

1

Вы проверили, что столбец устанавливается в? В частности, какой альфа-компонент установлен? Т.е. Возможно, вы добавляете прозрачный белый цвет?

+1

Альфа-компонент установлен в значение 255. В чем он должен быть установлен? –

+1

255 полностью непрозрачен. – SLaks

+1

Что имеет смысл: почему Microsoft установила его прозрачным? Как насчет других компонентов? Все ли они равны нулю (= черный) или все 255 (= белый)? – winwaed

2

Не уверен, что это хорошая идея изменить Bitmap, что является своего рода ресурсом. Я бы Clone это было безопасно. При этом я не мог воспроизвести проблему.

Bitmap objBitmap = (Bitmap)Resource1.im.Clone(); 
+0

Я сделал это. Благодарю. –

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