Свойство MaskColor
в VB 6.0 используется для удаления цвета фона Image
. Как я могу сделать то же самое на С#?
Что эквивалентно свойству MaskColor VB6.0 в C#
comment
Ссылка на документы VB6 для полноты. msdn.microsoft.com/en-us/library /aa239018(v=vs.60).aspx
- person MarkJ   schedule 24.02.2012
Ответы (2)
Вы можете использовать MakeTransparent(Color color) для растрового изображения. пример:
//convert the red color in the image into transparent.
((Bitmap)BackgroundImage).MakeTransparent(Color.Red);
person
Jalal Said
schedule
20.08.2011
Я думал, что для этого требуется, чтобы нижний левый пиксель был цветом, на который вы нацеливались. Мне нравится, когда я узнаю что-то новое здесь!
- person Nathan Ratcliff; 20.08.2011
@Dev Добро пожаловать, не забудьте пометить этот ответ как принятый ответ, если он правильно отвечает на ваш вопрос, чтобы другие знали, как на самом деле была решена ваша проблема
- person Jalal Said; 20.08.2011
Я не думаю, что есть прямой аналог.
В прошлом я заставлял это работать, используя класс ColorMap для сопоставления цвета моего фона с Color.Transparent. Затем я создаю объект ImageAttributes, вызываю функцию SetRemapTable() и передаю ей свой ColorMap. Затем вы перерисовываете изображение, передавая ImageAttributes методу DrawImage.
Редактировать:
Джалал опубликовал гораздо более простой способ получения сплошного цвета. Я внимательно изучил код, в котором использовал описанный выше метод, я сопоставил более одного оттенка одного и того же основного цвета с прозрачным.
person
Nathan Ratcliff
schedule
20.08.2011
Вау, это очень длинный ход ;)
- person Jalal Said; 20.08.2011
Прошло несколько лет, но я вспомнил, как делал это, и код до сих пор у меня. Оказывается, я сопоставлял более одного оттенка цвета с прозрачным. Ваш способ явно лучше для одного сплошного цвета.
- person Nathan Ratcliff; 20.08.2011
+1, хотя это полезно, я не знаю о производительности здесь, но вы можете вызывать метод
MakeTrasparent
несколько раз для каждого цвета, который вы хотите сделать прозрачным в одном и том же растровом изображении
- person Jalal Said; 20.08.2011
Было бы интересно посмотреть, что делает MakeTransparent. Я могу изучить это, когда завтра проснусь :)
- person Nathan Ratcliff; 20.08.2011