В настоящее время я кодирую простой манипулятор изображений с C# Bitmaps und Graphics. Я использую прозрачный элемент костюма, и он отлично работает. в моем методе рисования я обновляю элемент управления, рисуя, чтобы установить изображение:
ImageAttributes attr = new ImageAttributes();
attr.SetColorKey(this.transpKey, this.transpKey);
Rectangle dstRect = new Rectangle(0, 0, this.image.Width, this.image.Height);
e.Graphics.DrawImage(this.image, dstRect, 0, 0, this.image.Width, this.image.Height, GraphicsUnit.Pixel, attr);
e.Graphics.Dispose();
Теперь мне нужна функция для стирания некоторых пикселей. Используя форму и рисунок на BackgroindImage, я могу «стереть» пиксели с помощью TransparencyKey-Prperty. Но это свойство не существует в моем контроле над костюмом. Вот почему я использовал «attr.SetColorKey (this.transpKey, this.transpKey);», но есть проблема. Это просто делает пиксель прозрачным, а лежащие в его основе пиксели будут видны.
Кто-нибудь знает, как заставить C# заменять пиксели вместо того, чтобы оставлять их? Или кто-нибудь знает решение моей проблемы?
Большое спасибо, что читаете, думаете и, возможно, помогаете.
// Редактировать: ОК, теперь я узнал, что могу использовать "e.Graphics.CompositingMode = CompositingMode.SourceCopy;" установить, что пиксель должен быть заменен. Но после этого прозрачность разрушается. И результат тот же. Ничего не стерто. Любые решения?