public MyPic(Bitmap bIn, bool forBlackWhite) { this.Size = bIn.Size; this.pTreshold = MyPicPixelInfoEnum.e3_mid; PixelInfoArray = new MyPicPixelInfoEnum[(Size.Width * Size.Height) + 1]; for (int y = 0; y < Size.Height; y++) { for (int x = 0; x < Size.Width; x++) { Color c = bIn.GetPixel(x, y); int rgbTot = (int)c.R + (int)c.G + (int)c.B; float rgbF = (float)rgbTot / 255 / 3; float b = c.GetBrightness(); MyPicPixelInfoEnum e; switch (c.A) { case 255: // no transparenty e = BrightnessToEnum(rgbF); PixelInfoArray[toIndex(x, y)] = e; break; case 0: // full transparenty PixelInfoArray[toIndex(x, y)] = MyPicPixelInfoEnum.e7; break; default: throw new ArgumentException("Alpha"); } } } }
public MyPic(Bitmap bIn) { this.Size = bIn.Size; this.pTreshold = MyPicPixelInfoEnum.e3_mid; this.PixelInfoArray = new MyPicPixelInfoEnum[(Size.Width * Size.Height) + 1]; for (int y = 0; y < Size.Height; y++) { for (int x = 0; x < Size.Width; x++) { float b = bIn.GetPixel(x, y).GetBrightness(); int max = (int)MyPic.MyPicPixelInfoEnum._e_end; int curI = 0; float curF = 0.0f; float step = 1 / (float)max; while (true) { if (b <= curF) { // set and end PixelInfoArray[toIndex(x, y)] = (MyPicPixelInfoEnum)curI; break; } curI++; curF += step; } } } }
public PixelInfo getPixel(int x, int y) { MyPicPixelInfoEnum v = PixelInfoArray[toIndex(x, y)]; if (v == MyPicPixelInfoEnum.Processed) { return(PixelInfo.Processed); } PixelInfo r = (v <= pTreshold) ? PixelInfo.Black : PixelInfo.White; return(r); }
public void ToFile_allTreshlds(string fileNoExtension) { MyPicPixelInfoEnum backup = pTreshold; pTreshold = MyPicPixelInfoEnum.e0; while (pTreshold < MyPicPixelInfoEnum._e_end) { ToFile(fileNoExtension + pTreshold.ToString()); pTreshold++; } pTreshold = backup; }
public void setPixel(int x, int y, PixelInfo val) { MyPicPixelInfoEnum eOldVal = PixelInfoArray[toIndex(x, y)]; switch (val) { case PixelInfo.Black: PixelInfoArray[toIndex(x, y)] = MyPicPixelInfoEnum.e0; break; case PixelInfo.White: PixelInfoArray[toIndex(x, y)] = MyPicPixelInfoEnum._e_end - 1; break; case PixelInfo.Processed: PixelInfoArray[toIndex(x, y)] = MyPicPixelInfoEnum.Processed; break; } }
public MyPic(ObjectPoints objectPoints) { this.Size = objectPoints.Rect.Size; this.pTreshold = MyPicPixelInfoEnum.e3_mid; this.PixelInfoArray = new MyPicPixelInfoEnum[(Size.Width * Size.Height) + 1]; foreach (Point p1 in objectPoints.Points) { Point p00 = new Point(p1.X - objectPoints.XLeft, p1.Y - objectPoints.YTop); int arrayPos = p00.X + (p00.Y * this.Size.Width); this.PixelInfoArray[arrayPos] = MyPicPixelInfoEnum.e7; } }
public MyPic(Size Size, PixelInfo backgroundColor) { this.Size = Size; this.pTreshold = MyPicPixelInfoEnum.e3_mid; PixelInfoArray = new MyPicPixelInfoEnum[(Size.Width * Size.Height) + 1]; SlowDown slowDown = new SlowDown(); for (int y = 0; y < Size.Height; y++) { for (int x = 0; x < Size.Width; x++) { slowDown.Next(); setPixel(x, y, backgroundColor); } } }
public MyPic(Size Size) { this.Size = Size; this.pTreshold = MyPicPixelInfoEnum.e3_mid; PixelInfoArray = new MyPicPixelInfoEnum[(Size.Width * Size.Height) + 1]; }
public void setPixel2(int x, int y, MyPicPixelInfoEnum val) { PixelInfoArray[toIndex(x, y)] = val; }
public MyPicPixelInfoEnum getPixel2(int x, int y) { MyPicPixelInfoEnum v = PixelInfoArray[toIndex(x, y)]; return(v); }