示例#1
0
        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);
 }