我用GDI+做带有透明度的画笔,实现后出现“青蛙卵”现象,目前有方法解决,但是速度不流畅,会滞后,希望有高人能把青蛙卵解决了 ,同时速度又不受影响的。下面贴了代码 只是实现带透明度功能。需要解决有透明度时,不会出现青蛙卵,速度也不受影响。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;namespace Alpha_Pen
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        Point startPoint,secondPoint;
        bool drawMove;
        Pen pen;
        Bitmap bit;
        Graphics g;
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                startPoint = new Point(e.X, e.Y);
                drawMove = true;
            }
        }        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            if (drawMove)
            {
                pen = new Pen(Color.FromArgb(128,255,0,0),20);
                pen.StartCap = LineCap.Round;
                pen.LineJoin = LineJoin.Round;
                pen.EndCap = LineCap.Round;
                secondPoint = new Point(e.X,e.Y);  
            
                g.DrawLine(pen,startPoint.X,startPoint.Y,secondPoint.X,secondPoint.Y);
                startPoint = secondPoint;
                pictureBox1.Invalidate();
                
            }                                
        }        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            drawMove = false;
        }        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            if (bit != null)
            {
                e.Graphics.DrawImage(bit, 0, 0);
            }        }        private void Form1_Load(object sender, EventArgs e)
        {
            pictureBox1.Width = 1920;
            pictureBox1.Height = 1080;
            bit= new Bitmap(pictureBox1.Width, pictureBox1.Height);
            g = Graphics.FromImage(bit);
                   }
    }
}