2016-07-11 3 views
0

Ich habe diesen Code, in dem ich versuche, die Farbe des Pixels (x, y) zu ändern. Ich möchte nur die Farbe von Color.White gegeben erhalten - die Farbe des Pixels (x, y)Fehler beim Ändern der Farbe von Pixeln in einem Bitmap-Bild mit C#

Bitmap mPlan; 
    for (int x=0; x < mPlanWidth; x++) 
      { 
       for (int y=0; y < mPlanHeight; y++) 
       { 
        if (mPlan.GetPixel(x, y) == Color.White) 
        mPlan.SetPixel(x, y, Color.White - mPlan.GetPixel(x, y)); 
       } 

      } 

Aber ich habe einen Fehler in der Ebene von Color.White - mPlan.GetPixel (x, y) die mich unmöglich Umwandlung von int zu Android.Graphics.Color

ich durch das Versuchte zu konvertieren alle Farben in int mit dem argB

mPlan.SetPixel(x, y, System.Drawing.Color.FromArgb(System.Drawing.Color.White.ToArgb()- mFloorPlan.GetPixel(x, y)) ); 

Aber die Methoden TpArgb gegeben sind nur erzählt Montage ly System.Drawing und SetPixel nehmen als dritter Parameter eine Farbe von Android.Graphics Also habe ich diesen Konflikt von Typen.

+0

Weil 'Color.White' ein Color-Objekt ist und' ... GetPixel (x, y) 'nicht. Das wäre so, als würde ich sagen, dass "object - 5" eigentlich eine ganze Zahl sein sollte. – Adam

+0

Ich weiß .. Ich möchte nur die Farbe von Color.White bekommen - die Farbe des Pixels (x, y) – dou

+0

Ich denke, meine Antwort tut das. Es funktioniert mit zwei Farben, ich habe es jedoch nicht mit einer Bitmap.Getpixel() getestet. – Adam

Antwort

0
Bitmap bc; 
Color color = new Color(); 
color.R = Color.White.R - bc.GetPixel(x, y).R; 
color.G = Color.White.G - bc.GetPixel(x, y).G; 
color.B = Color.White.B - bc.GetPixel(x, y).B; 
bc.SetPixel(x, y, color); 

Generieren Sie eine neue Farbe, indem Sie den RGB-Wert der neuen Farbe festlegen.

+0

Danke aber es funktioniert nicht Ich weiß nicht warum es mir einen int mit bc.GetPixel (x, y) gibt – dou

Verwandte Themen