private PixelChange DrawPixel(int x, int y, byte color) { //зсув precalc та перевірка межі int offset = y * bmWidth + x; if (offset < 0 || offset >= bmData.Length) { return(null); } // якщо піксель однаковий if (bmData[offset] == color) { return(null); } // змініть піксель і відзначте зміни var change = new PixelChange(offset, bmData[offset], color); bmData[offset] = color; // оновити картинку var gfx = Graphics.FromImage(canvas); if (drawtext == true) { //var fontFamily = new FontFamily("Times New Roman"); //var font = new Font(fontFamily, 32, FontStyle.Regular, GraphicsUnit.Pixel); //var solidBrush = new SolidBrush(Color.FromArgb(255, 0, 0, 255)); //gfx.TextRenderingHint = TextRenderingHint.AntiAlias; //gfx.DrawString("Your Text Here", font, solidBrush, new PointF(x * zoom, y * zoom)); //drawtext = false; } gfx.FillRectangle(new SolidBrush(palette[color]), x * zoom, y * zoom, zoom - (showGrid.Checked ? 1 : 0), zoom - (showGrid.Checked ? 1 : 0)); return(change); }
public HistoryEvent(PixelChange singleChange) { changes = new HashSet <PixelChange>(); changes.Add(singleChange); }