В момента кодирам прост манипулатор на изображения с C# Bitmaps und Graphics. Използвам costum transparent elemt и работи добре. в моя Draw-Method актуализирам контролата, като рисувам, за да задам изображение:
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;" за да зададете, че пикселът трябва да бъде заменен. Но след това прозрачността се унищожава. И резултатът е същият. Нищо изтрито. Някакви решения?