CSharp - 在照片上,像素搜索器

  显示原文与译文双语对照的内容

我有一些照片,我想做一些有趣的事情。

例如,我把这个pohto混合在一起,我想把照片分成像素,检查每个像素的颜色。

是否存在任何库,我可以使用它来分析这样的照片并循环访问每个像素。

时间: 作者:

你可以使用 Image.FromFile 加载图像。 如果它们很小,你可以在循环中调用 Bitmap.GetPixel 。 如果他们是大的,不止一些像素,那么它将会很慢,然后你应该使用 Bitmap.LockBits,。 所有链接都有样本。可以使用 Dictionary 集合构建直方图,因为类似的像素会稍微不同,因此,你的收藏会变得非常的庞大,因此你的收藏可能会变得非常庞大。

然后将图像加载到位图中,然后使用 GetPixel方法处理位图,后者返回一个颜色对象


 private void GetPixel_Example(PaintEventArgs e)
 {

//Create a Bitmap object from an image file.
 Bitmap myBitmap = new Bitmap("Grapes.jpg");
 int width = myBitmap.Width;
 int height = myBitmap.Height;


//Get the color of a pixel within myBitmap.

 for (int widthIndex = 0;widthIndex <width;widthIndex++) 
 {
 for (int heightIndex = 0;heightIndex <height;heightIndex ++) 
 {
 Color pixelColor = myBitmap.GetPixel(widthIndex, heightIndex);
//add to dictionary
 }
 }
//Fill a rectangle with pixelColor.
 SolidBrush pixelBrush = new SolidBrush(pixelColor);
 e.Graphics.FillRectangle(pixelBrush, 0, 0, 100, 100);
 }

你可以用字典来储存颜色和数量。

作者:
...