首先,我需要在加載到PictureBox控件的單色輸入圖像上製作一些顏色塗鴉(下面的圖片來自M. Yang關於靜止圖像着色的文章)。在PictureBox中畫線
我想用這個來得到的效果:
private void PictureBoxOnMouseDown(Object sender, MouseEventArgs e)
{
if((e.Button & MouseButtons.Left) == MouseButtons.Left)
{
this.MouseInitialPosition = e.Location;
}
}
private void PictureBoxOnMouseMove(Object sender, MouseEventArgs e)
{
if((e.Button & MouseButtons.Left) == MouseButtons.Left)
{
this.MouseLastPosition = e.Location;
}
this._PictureBox.Invalidate();
}
private void PictureBoxOnPaint(Object sender, PaintEventArgs e)
{
using(var pen = new Pen(Color.Red, 3.0F))
{
e.Graphics.DrawLine(pen, this.MouseInitialPosition, this.MouseLastPosition);
}
}
但是,這讓我不太我一直在等待:
我可以不要放幾條線。線路不存儲;
我用行覆蓋行;
二。我需要從我已經繪製的圖像中獲取所有像素,並以某種方式對其進行過濾(即,提取特定的像素)。如何將線條/塗鴉存儲到圖像上然後有效地讀取圖像?
在拖動,你會產生很多鼠標移動事件。在此代碼中,所有這些事件都會導致添加一行。經過一次拖拽後,您將在線條集合中獲得很多線條,而每條線條需要一條線條。執行此操作的正確方法是在每次移動鼠標後添加該行,但在drag = mouse up事件結束時添加該行。 – 2015-12-30 13:04:16
@HaraldDutch,OP詢問有關塗鴉而不是線條。 – 2015-12-30 20:53:58