Итак, из ваших комментариев кажется, что вам нужно получить только список точек, которые представляют черную линию.Это достаточно просто, поэтому этот пример просто захватывает черные пиксели и сохраняет их координаты {x, y}.Если вам нужно что-то более сложное, вы можете добавить его поверх этого.
using System.Drawing;
...
List<Point> GetBlackPixels( Bitmap bmp )
{
var points = new List<Point>();
for( int y = 0; y < bmp.Height; ++y )
{
for( int x = 0; x < bmp.Width; ++x )
{
if( bmp.GetPixel( x, y ) == Color.Black )
{
points.Add( new Point( x, y );
}
}
}
}
Обратите внимание, что GetPixel
относительно медленно.Это не значит, что он не подходит для вашего варианта использования , это просто означает, что на больших изображениях вам может понадобиться что-то быстрее.Если это так, вызовите LockBits на Bitmap
и получите указатель непосредственно на память.
Помните, однако, прежде чем идти по этому пути, сначала используйте более простую версию (которую я опубликовал).GDI + может подойти вам.
И снова, этот код просто соответствует вашим заявленным требованиям.Это сохранит только те точки, которые действительно черные.Вам может потребоваться, а может и не понадобиться добавлять больше кода, если у вас есть более сложный сценарий, который вы не описали в своем вопросе.